Guides
MCP
Connect Claude Code, Codex, Cursor or VS Code to the Browlix MCP server and use every API operation as a tool.
The Browlix MCP server exposes the API v1 catalog as tools, with the same permissions, limits, idempotency and audit as HTTP.
-
Endpoint:
https://browlix.com/api/public/mcp -
Transport: Streamable HTTP, stateless — every
POSTcarries the API key, so reconnecting is just the next request. -
Protocol revisions (newest first):
-
2026-07-28— modern (per-request metadata,server/discover, no handshake) -
2025-11-25,2025-06-18,2025-03-26— legacy (initializehandshake)
A client that speaks 2026-07-28 sends the revision and its capabilities with every request (MCP-Protocol-Version, Mcp-Method, Mcp-Name headers mirror the body) and may call server/discover first; there is no handshake. A client on an older revision starts with initialize and gets its own revision back when it is listed, otherwise the newest legacy one. An unknown revision is refused with error -32022 and the supported list.
Connect a client
Put the key in an environment variable or the client's secret prompt — never in a config file.
export BROWLIX_API_KEY="bxk_…"
claude mcp add --transport http --scope user browlix https://browlix.com/api/public/mcp \
--header 'Authorization: Bearer ${BROWLIX_API_KEY}'Cursor reads ~/.cursor/mcp.json; VS Code reads .vscode/mcp.json in the workspace. The web app shows the same snippets under Settings → API keys.
Tools
- One tool per operation, named after its id with underscores:
sessions.start→sessions_start. Inputs are the path, query and body fields side by side. tools/listreturns only the tools the key may use right now.- Read tools are marked read-only; tools that remove or end something are marked destructive.
docs_searchanddocs_fetchread these docs for any valid key.- Every tool publishes an
outputSchema(from revision2025-06-18), and a successful call returns the same JSON as HTTP instructuredContentand as text. Fields can be added at any time — ignore the ones you do not know. - With
2026-07-28,tools/listis cacheable for 5 minutes per key (cacheScope: private).
Writes and lost replies
Write tools accept a command_id. If the agent omits it, the server generates one and returns it in the result. After a disconnect, call receipts_get with that id instead of calling the write again.
Errors and feedback
Failures come back as tool results with isError: true and the same error.code as HTTP. For failures Browlix could improve (UNKNOWN, VALIDATION_FAILED, CONFLICT, UNSUPPORTED…) the result adds a hint about feedback_submit — see Feedback from agents.
Clients checked
Each row was run against the Browlix MCP server; a client that could not be exercised says so.
| Client | Version | Protocol | Result | Checked | Notes |
|---|---|---|---|---|---|
| Claude Code | 2.1.311 | 2026-07-28 | works | 2026-10-27 | server/discover, then tools/list (claude mcp list → Connected) |
| @modelcontextprotocol/client (TypeScript SDK v2) | 2.4.0 | 2026-07-28 | works | 2026-10-27 | pinned and auto negotiation; list, call, typed error, outputSchema validated by the client |
| @modelcontextprotocol/sdk (TypeScript) | 1.32.2 | 2025-11-25 | works | 2026-10-27 | initialize handshake; outputSchema validated by the client |
| @modelcontextprotocol/sdk (TypeScript) | 1.17.5 | 2025-06-18 | works | 2026-10-27 | initialize handshake; outputSchema validated by the client |
| @modelcontextprotocol/sdk (TypeScript) | 1.11.5 | 2025-03-26 | works | 2026-10-27 | no MCP-Protocol-Version header; tool list without outputSchema |
| Codex CLI | 0.164.0 | — | config only | 2026-10-27 | codex mcp add … --bearer-token-env-var accepted; a live session needs an OpenAI sign-in, not run in the lab |
| Cursor | — | — | not run | 2026-10-27 | desktop app, not run in the lab; configuration follows Cursor's docs |
| VS Code | — | — | not run | 2026-10-27 | desktop app, not run in the lab; configuration follows VS Code's docs |
