Contextator
ENTR

Connecting Claude Code, Cursor and Claude Desktop

Each project is one URL. Here is what to paste into each client, why no configuration picks a transport, and how to check the connection actually works.

2 min read

Every project Contextator serves is one address:

http://localhost:3444/mcp/<project-name>

Point a client at it and the agent gains three documentation tools — search_docs, list_topics and read_document. There is no plugin to install and no API key to paste. The dashboard’s Connect an agent panel prints each snippet below already filled in with the real URL; the versions here use demo as the project name.

Claude Code

claude mcp add --transport http demo-docs http://localhost:3444/mcp/demo

Check that it took:

claude mcp list

Then just ask a question about your documentation. Claude Code decides to call search_docs on its own, because the server describes what it holds when the session opens.

Cursor

~/.cursor/mcp.json for every project, or .cursor/mcp.json inside one repository:

{
  "mcpServers": {
    "demo-docs": { "url": "http://localhost:3444/mcp/demo" }
  }
}

Restart Cursor, then check Settings → MCP for a green indicator.

Claude Desktop

Claude Desktop speaks stdio, so it needs a bridge. In claude_desktop_config.json:

{
  "mcpServers": {
    "demo-docs": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://localhost:3444/mcp/demo"]
    }
  }
}

Restart it, and the tools appear under the connectors icon. The config file lives at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS and %APPDATA%\Claude\claude_desktop_config.json on Windows.

Why no transport setting

Contextator serves both MCP transports on the same address and picks by what the client sends:

  • Streamable HTTP, for current clients: the client POSTs an initialize request and the session id comes back in the mcp-session-id header.
  • HTTP + SSE, protocol 2024-11-05, for older ones: the client GETs the URL and the server answers with an endpoint event pointing at /mcp/demo/messages?sessionId=….

Nothing switches between them, which is why the snippets above are as short as they are.

Checking it without an agent

If a client is quiet and you want to know whether the problem is the endpoint or the client, ask the endpoint directly from the product repository:

npm install && npm run smoke -- http://localhost:3444/mcp/demo "how do I re-index"

A ranked list of excerpts back means the server is fine and the client’s configuration is not.

Frequently asked

Do I need an API key to connect a client?
No. The endpoint needs no credential unless you have put a bearer token on that project; embeddings run locally by default, so there is no provider key either.
Can one client connect to several projects at once?
Yes. Add one entry per project. They stay isolated — the agent simply has two sets of tools, and a search in one never returns documents from the other.
Share

Arrow keys to move, Enter to open.