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

# Docs MCP Server

> Let an MCP client search the 2extract documentation live, instead of loading the whole thing into context.

This documentation site is also an MCP server. Connect a client to it and your agent can search these pages on demand - no API key, no cost, nothing it can change.

***

## Endpoint

```
https://docs.2extract.com/mcp
```

|                    |                 |
| :----------------- | :-------------- |
| **Transport**      | Streamable HTTP |
| **Authentication** | None            |
| **Access**         | Read-only       |

<Warning>
  This is **not** the [2extract MCP Server](/ai/mcp-server/overview). That one lives at `mcp.2extract.com/mcp`, needs an API key, and creates real proxies. This one only reads documentation. Adding both is fine and common - give them distinct names in your config.
</Warning>

***

## Add it to your client

<CodeGroup>
  ```bash Claude Code icon="terminal" theme={null}
  claude mcp add --transport http 2extract-docs https://docs.2extract.com/mcp
  ```

  ```json mcpServers icon="brackets-curly" theme={null}
  {
    "mcpServers": {
      "2extract-docs": {
        "type": "http",
        "url": "https://docs.2extract.com/mcp"
      }
    }
  }
  ```

  ```json VS Code icon="brackets-curly" theme={null}
  {
    "servers": {
      "2extract-docs": {
        "type": "http",
        "url": "https://docs.2extract.com/mcp"
      }
    }
  }
  ```
</CodeGroup>

No headers, because there is nothing to authenticate. Client-specific file paths are on the [client pages](/ai/clients/claude-code) - the setup is the same, minus the key.

<Note>
  Opening `https://docs.2extract.com/mcp` in a browser returns an error rather than a page. That is expected - the path speaks the protocol, not HTML.
</Note>

***

## Verify

Ask your agent something that is only answerable from these docs:

> Search the 2extract docs: what is the format of the proxy connection username?

<Check>
  The agent calls a search tool against the docs server and answers with the real parameter format, citing the page it came from.
</Check>

***

## Search versus loading a file

Both routes get the documentation into your agent. They cost different things.

|                   | Docs MCP Server                          | [llms-full.txt](/ai/for-agents/llm-references) |
| :---------------- | :--------------------------------------- | :--------------------------------------------- |
| Context cost      | Only what the query returns              | \~80-90k tokens, once                          |
| Freshness         | Always current                           | Current at the moment you fetched it           |
| Needs MCP support | Yes                                      | No                                             |
| Works offline     | No                                       | Yes, once downloaded                           |
| Good for          | Occasional lookups during a long session | Writing an integration end to end              |

They are not exclusive. A useful combination is the file loaded for the format rules you keep needing, and the docs server for the occasional lookup of something specific - a country code, a particular error.

***

## Running both 2extract servers

A setup that covers everything:

```json icon="brackets-curly" theme={null}
{
  "mcpServers": {
    "2extract": {
      "type": "http",
      "url": "https://mcp.2extract.com/mcp",
      "headers": {
        "Authorization": "Bearer 2xt_YOUR_API_KEY"
      }
    },
    "2extract-docs": {
      "type": "http",
      "url": "https://docs.2extract.com/mcp"
    }
  }
}
```

Now the agent can look up how session parameters work, then create a proxy that uses them, in the same conversation.

<Tip>
  Keep the names distinct - `2extract` and `2extract-docs`. Agents choose tools partly by server name, and two servers called the same thing will get confused for one another.
</Tip>

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="Client will not connect">
    Check the `/mcp` path is present and the transport is Streamable HTTP. There is no key to get wrong here, so those are the only two variables.
  </Accordion>

  <Accordion title="The agent answers from memory instead of searching">
    Ask explicitly - "search the 2extract docs for..." - rather than asking the question directly. Models tend to answer from training data unless prompted to look.
  </Accordion>

  <Accordion title="It found the page but the answer is wrong">
    Ask it to quote the source. If the quote does not support the answer, the model summarised badly rather than the docs being wrong - and we would like to know either way at [support@2extract.com](mailto:support@2extract.com).
  </Accordion>
</AccordionGroup>

***

## Next steps

<CardGroup cols={2}>
  <Card title="MCP Server" icon="plug" href="/ai/mcp-server/overview">
    The server that provisions proxies rather than reading docs.
  </Card>

  <Card title="LLM References" icon="file-lines" href="/ai/for-agents/llm-references">
    The same content as static files.
  </Card>
</CardGroup>
