---
url: https://docs.dataflair.ai/guide/ai-and-mcp.md
description: >-
  Connect the DataFlair docs to your AI assistant over MCP, copy a page as a
  prompt, or read llms.txt. Read only and public, with no account and no key.
---

# Connect the docs to your AI assistant

The MCP server is read only and public. It needs no account and no key.

```text
https://docs.dataflair.ai/mcp
```

## Connect

::: code-group

```bash [Claude Code]
claude mcp add --transport http dataflair-docs https://docs.dataflair.ai/mcp
```

```json [Cursor]
{
  "mcpServers": {
    "dataflair-docs": {
      "url": "https://docs.dataflair.ai/mcp"
    }
  }
}
```

```bash [Codex]
codex mcp add dataflair-docs --url https://docs.dataflair.ai/mcp
```

```json [OpenCode]
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dataflair-docs": {
      "type": "remote",
      "url": "https://docs.dataflair.ai/mcp"
    }
  }
}
```

```json [Claude Desktop]
{
  "mcpServers": {
    "dataflair-docs": {
      "command": "npx",
      "args": ["-y", "mcp-remote@latest", "https://docs.dataflair.ai/mcp"]
    }
  }
}
```

```bash [Manual]
curl -s https://docs.dataflair.ai/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

:::

In Cursor, you can also use the install link: Connect to Cursor. Claude Desktop has no remote-server support yet, so the config above runs [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) as a local bridge; `@latest` always resolves past the RCE fixed in v0.1.16. You can also skip the config file and add it from Settings → Connectors → Add custom connector with the same URL.

The server speaks MCP over HTTP with no sessions. Send one JSON-RPC message in each POST request. A GET request answers `405`.

## Tools

| Tool | What it does |
| --- | --- |
| `list_pages` | Lists every page with its product, title, path and direction. |
| `search_docs` | Keyword search. Common words such as `how` and `the` are ignored, so a plain question works. Returns up to 10 pages, best match first, each with a snippet. |
| `get_page` | Returns one page as markdown. The path comes from `list_pages` or `search_docs`. |

Each page that describes an integration surface has a direction. Other pages, such as the guide, the product home pages and the setup pages, have none, and `list_pages` shows an empty direction for them. `you-call-us` means you write a client for DataFlair. `we-call-you` means you build the endpoint, and DataFlair calls it. An assistant that knows the direction does not write a client for an API you are meant to implement.

::: warning Documentation only
It cannot read your account, your inventory, your reports or anyone's data.
:::

## Limits

The server caps every request and every answer. A request body can hold at most 8 KB. A search query can hold at most 200 characters. A search returns at most 10 pages. A `get_page` path must be one of the listed pages.

Two limits apply to how often you can call it. The network edge allows about 60 requests in 10 seconds from one IP address, and blocks that address for 10 seconds after that. The server also counts requests, and answers `429` with a `Retry-After` header when you go over. In both cases, wait a moment and try again.

## Other ways to give a page to an assistant

* **Copy page.** Every page has a **Copy page** menu. **Copy page for LLM** puts the page and a short prompt on your clipboard. The prompt says which product the page belongs to, and who calls whom.
* **View as Markdown.** Add `.md` to a page address to get the page as markdown. For an index page, drop the trailing slash first. For example, `/stats/tracking/` has the copy `/stats/tracking.md`.
* **llms.txt.** [llms.txt](/llms.txt) lists every page. [llms-full.txt](/llms-full.txt) holds every page in one file.
