> ## Documentation Index
> Fetch the complete documentation index at: https://docs.impellabs.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP server

> Drive the platform from any MCP client — and how that differs from the tool server you build for us.

The platform's MCP server is **Preview**. The transport and the credentials are
settled; the tool set is still growing, and a tool may be added or renamed
between releases. Do not build an unattended production dependency on it yet.

## Two directions, and they are not the same thing

[MCP](https://modelcontextprotocol.io) is symmetric — the same protocol, the
same three methods, pointed either way. This site documents both, and confusing
them costs a day.

<CardGroup cols={2}>
  <Card title="This tab — we serve you" icon="server" href="/connect/quickstart">
    Your chat client is the MCP **client**. The platform is the **server**. You
    paste our URL into Claude, ChatGPT, Grok, an editor or anything else that
    speaks the protocol, and a model there drives your workspace: list agents,
    ingest knowledge, run an extraction, pull a report.
  </Card>

  <Card title="Documentation tab — you serve us" icon="plug" href="/mcp/overview">
    Your product is the MCP **server**. The platform is the **client**. You give
    us a URL, we discover your tools, and an assistant calls them mid-conversation
    while a customer waits. That is [Building a tool server](/mcp/overview).
  </Card>
</CardGroup>

```
  ── This tab: /connect/* ───────────────────────────────────────────────

    Claude · Claude Code       ImpelLabs platform
    ChatGPT · Grok · Cursor
    VS Code · anything else
       MCP client   ──── POST /mcp ────►   MCP server
                    ◄───  result   ─────   your agents, knowledge,
                                            documents, jobs, credits


  ── Documentation tab: /mcp/* ──────────────────────────────────────────

    ImpelLabs platform                       Your product
       MCP client   ──── tools/call ────►   MCP server
                    ◄───   result    ────   your DB, your business rules
```

<Warning>
  The nav group **Building a tool server** is the opposite of this tab. If you
  are reading about `MCP_ALLOWED_HOSTS`, a 10-second call budget or how the
  platform retries your server, you are on the wrong page — those are rules for
  a server *you* run. Nothing on this tab asks you to run anything.
</Warning>

## What you get

One endpoint, and the same permissions and the same credits as the REST API:

```
POST https://api.impellabs.tech/mcp
```

* **Two eras of the protocol, on one URL.** The current revision `2026-07-28`,
  which has no handshake and answers `server/discover` instead, and the
  handshake revisions every shipping client speaks today — `2025-06-18` and
  the two before it. The authoritative list is `mcpserver/protocol.py:
  SUPPORTED_PROTOCOL_VERSIONS`. **A client working today needs to change
  nothing**; the `MCP-Protocol-Version` header alone decides which era you are
  served in, and an absent one still means `2025-03-26`. See [Protocol
  revisions](/connect/protocol).
* **Stateless in both eras.** No `Mcp-Session-Id` is issued and none is
  expected. Sessions were a MAY in the handshake era and `2026-07-28` removed
  them from the spec outright; not having them removes a whole class of expiry
  bugs.
* **Two ways to authenticate.** A workspace API key as a bearer token, or a full
  OAuth 2.1 flow for the connector UIs that demand one. See
  [Authentication](/connect/authentication).
* **Your tenancy, unchanged.** A credential identifies one workspace, and every
  tool runs pinned to it. There is no tool that reaches another customer's data.
* **No client is special.** Nothing in this server branches on which client is
  calling. The pages below exist because those are the clients people ask about,
  not because they are the ones that work — see [Any MCP
  client](/connect/clients).

<Note>
  `GET /mcp` returns **405**, and so does `DELETE`. That is conformant, not a
  fault — the Streamable HTTP spec permits a server with no SSE stream and no
  session teardown to answer exactly that way. If you are testing the endpoint
  with a browser or `curl` and get a 405, the server is working.
</Note>

## Where to go next

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/connect/quickstart">
    A key, a URL, and a first tool call.
  </Card>

  <Card title="Tools" icon="wrench" href="/connect/tools">
    A curated set over the whole platform, how to get the authoritative list,
    and the two behaviours that surprise people.
  </Card>

  <Card title="Authentication" icon="key" href="/connect/authentication">
    Bearer keys, the OAuth flow, and which client needs which.
  </Card>

  <Card title="Credits" icon="coins" href="/connect/credits">
    What a tool call costs and what happens when the wallet is empty.
  </Card>
</CardGroup>

<Card title="Protocol revisions" icon="code-branch" href="/connect/protocol" horizontal>
  Two eras on one URL. Which one your client is in, why an old client needs to
  do nothing, and what a `2026-07-28` client must send on every request.
</Card>

## Connect a client

<CardGroup cols={2}>
  <Card title="Claude" icon="https://mintcdn.com/mahadev/-gWik8vU43pna0pu/images/harnesses/claude.svg?fit=max&auto=format&n=-gWik8vU43pna0pu&q=85&s=7832e9eacb56f571be1ddf2cad765813" href="/connect/claude" width="248" height="248" data-path="images/harnesses/claude.svg">
    claude.ai connectors and Claude Desktop, over OAuth.
  </Card>

  <Card title="Claude Code" icon="https://mintcdn.com/mahadev/-gWik8vU43pna0pu/images/harnesses/claude.svg?fit=max&auto=format&n=-gWik8vU43pna0pu&q=85&s=7832e9eacb56f571be1ddf2cad765813" href="/connect/claude-code" width="248" height="248" data-path="images/harnesses/claude.svg">
    One command, or a shared `.mcp.json` for the team.
  </Card>

  <Card title="ChatGPT" icon="https://mintcdn.com/mahadev/-gWik8vU43pna0pu/images/harnesses/chatgpt.svg?fit=max&auto=format&n=-gWik8vU43pna0pu&q=85&s=a8dda8c64066b70ef994980d378002e6" href="/connect/chatgpt" width="267" height="267" data-path="images/harnesses/chatgpt.svg">
    Connectors in the chat UI, and the Responses API `mcp` tool.
  </Card>

  <Card title="Grok" icon="https://mintcdn.com/mahadev/-gWik8vU43pna0pu/images/harnesses/grok-light.svg?fit=max&auto=format&n=-gWik8vU43pna0pu&q=85&s=f4164b603e360ff3d355430b4293a73d" href="/connect/grok" width="1024" height="1024" data-path="images/harnesses/grok-light.svg">
    A custom connector, and remote MCP from the xAI API.
  </Card>

  <Card title="Cursor" icon="https://mintcdn.com/mahadev/-gWik8vU43pna0pu/images/harnesses/cursor.svg?fit=max&auto=format&n=-gWik8vU43pna0pu&q=85&s=e2cc64cf7b211015b7939ea83bd19030" href="/connect/cursor" width="532" height="532" data-path="images/harnesses/cursor.svg">
    `mcp.json`, per-project or global.
  </Card>

  <Card title="VS Code" icon="https://mintcdn.com/mahadev/-gWik8vU43pna0pu/images/harnesses/vscode.svg?fit=max&auto=format&n=-gWik8vU43pna0pu&q=85&s=8c9516667dba7313f12a62a6181fcc4d" href="/connect/vscode" width="100" height="100" data-path="images/harnesses/vscode.svg">
    `.vscode/mcp.json` and agent mode.
  </Card>
</CardGroup>

<Card title="Any MCP client" icon="plug" href="/connect/clients" horizontal>
  Windsurf, Zed, Cline, Continue, Goose, Junie, LibreChat, Warp, n8n — and the
  four facts that connect anything else, including whatever you build against an
  MCP SDK. **The client list is not a whitelist.**
</Card>
