--- title: "Control MCP Server" slug: "control-mcp-server" description: " Work with the Dataddo platform from Claude, ChatGPT, Cursor, Gemini, and other AI clients through the Dataddo Control MCP server." updated: 2026-09-28T13:31:04Z published: 2026-09-28T13:31:04Z canonical: "docs.dataddo.com/control-mcp-server" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.dataddo.com/llms.txt > Use this file to discover all available pages before exploring further. # Control MCP Server The **Control MCP server** lets AI assistants and agents work with the Dataddo platform itself from a conversation. It is built on the [Model Context Protocol (MCP)](https://modelcontextprotocol.io), an open standard that AI clients such as Claude, ChatGPT, Cursor, and Gemini use to discover and call external tools. You sign in with your Dataddo account. Once connected, the assistant can find the right Dataddo connector for a plain-language requirement or support request and look up that connector's roles, status, write modes, authentication methods, and documentation. Control vs. Data Access Dataddo runs two MCP servers. The **Control MCP server** (this article) works with the platform. To query the data Dataddo extracts, use the [Data Access MCP Server](/docs/data-access-mcp-server). They use different endpoints and different authentication. ## Server Details | | | | --- | --- | | **Endpoint URL** | `https://headless.dataddo.com/mcp-platform` | | **Transport** | Streamable HTTP | | **Authentication** | OAuth 2.1 with your Dataddo account. Authorization server: `https://identity.dataddo.com`. Your client opens a Dataddo sign-in page the first time it connects. | | **Scopes** | `mcp:read` | | **Rate limits** | Monitor the `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Retry-After` response headers. | ## Authentication The server follows the MCP authorization specification, so most clients need only the endpoint URL. The client discovers everything else on its own: 1. The client calls the endpoint without a token and receives HTTP 401 with a pointer to the server's protected resource metadata (`https://headless.dataddo.com/.well-known/oauth-protected-resource/mcp-platform`). 2. The metadata names `https://identity.dataddo.com` as the authorization server. 3. The client registers itself (Dynamic Client Registration, or a Client ID Metadata Document) and opens the Dataddo sign-in page in your browser. 4. You sign in and approve access. The client receives an access token and a refresh token and uses them on every request. | OAuth detail | Value | | --- | --- | | Authorization endpoint | `https://identity.dataddo.com/v1/oauth/authorize` | | Token endpoint | `https://identity.dataddo.com/v1/oauth/token` | | Revocation endpoint | `https://identity.dataddo.com/v1/oauth/revoke` | | Registration endpoint | `https://identity.dataddo.com/v1/oauth/register` | | Grant types | `authorization_code`, `refresh_token` | | PKCE | Required, `S256` | | Client authentication | None (public clients) | You do not need a Dataddo API token for this server. Unlike the Data Access MCP server, it does not accept static Bearer tokens configured by hand. ## Available Tools All tools are read-only. | Tool | Parameters | Description | | --- | --- | --- | | `find_connectors` | `text` (required): a search query, a requirement, or a pasted support request. `role` (optional): `source` or `destination`. Omit it to search both. | Maps free text to Dataddo connector IDs, for example "we need data from a Czech price-comparison site" or "my FB ads stopped syncing". Each match includes a confidence hint (`high`, `medium`, or `low`), short evidence for why it matched, and the roles the connector has. An empty result means no connector applies. | | `get_connector` | `connector` (required): a connector ID returned by `find_connectors`, for example `mysql`. | Returns the connector's metadata: title, roles with their status, categories, write modes, group, authentication methods, and links to its documentation, website, and changelog. | ### Roles and Status One connector ID can be a **source** (data is read from it), a **destination** (data is written to it), or both. Each role has its own status: | Status | Meaning | | --- | --- | | `available` | Generally available. | | `beta` | Available as a beta. | | `deprecated` | Still listed, but being phased out. | | `requested` | Requested by customers but not built yet. | For destinations, `get_connector` also lists the supported write modes: `writer`, `replicate`, and `streaming`. ### What the Tools Do Not Return `get_connector` returns metadata only, not datasets or documentation text. For the overview, prerequisites, connectivity (SSH tunnel, IP whitelisting), and setup steps, the assistant follows the connector's `documentation_url`. `find_connectors` returns only connectors that exist in the catalog. Always take an ID from `find_connectors` rather than guessing it: `get_connector` returns an error for an unknown ID. ### Typical Use 1. Call `find_connectors` with a plain-language description, for example "sync our NetSuite invoices into Snowflake". 2. Call `get_connector` for each matching ID to check its status, write modes, and authentication methods. 3. Open the `documentation_url` for the setup steps. ## Connect Your Client ### Claude (web and desktop) 1. Open **Settings > Connectors** and select **Add custom connector**. 2. Set **Name** to `Dataddo Control` and **URL** to `https://headless.dataddo.com/mcp-platform`. 3. Click **Add**, then **Connect**, and sign in with your Dataddo account. 4. In a chat, open the **+** menu, go to **Connectors**, and enable **Dataddo Control**. ### Claude Code ``` claude mcp add --transport http dataddo-control https://headless.dataddo.com/mcp-platform ``` Run `/mcp` inside Claude Code, select **dataddo-control**, and complete the sign-in in your browser. ### Cursor Add the server to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (one project): ``` { "mcpServers": { "dataddo-control": { "url": "https://headless.dataddo.com/mcp-platform" } } } ``` Cursor shows a **Needs login** prompt next to the server. Click it and sign in. ### ChatGPT 1. Enable **Developer mode** under **Settings > Apps & Connectors > Advanced settings**. 2. Select **Create**, set **MCP Server URL** to `https://headless.dataddo.com/mcp-platform`, and set **Authentication** to **OAuth**. 3. Save and sign in with your Dataddo account. ### Gemini CLI Add the server to `~/.gemini/settings.json`: ``` { "mcpServers": { "dataddo-control": { "httpUrl": "https://headless.dataddo.com/mcp-platform" } } } ``` Run `/mcp auth dataddo-control` inside Gemini CLI and sign in. ### Le Chat by Mistral AI You need administrator access in your Le Chat workspace. 1. Open the **Connectors** page and select **+ Add Connector**. 2. Switch to the **Custom MCP Connector** tab. 3. Set **Connector name** to `DataddoControl` and **Server URL** to `https://headless.dataddo.com/mcp-platform`. 4. Click **Connect**. Le Chat detects OAuth automatically and opens the Dataddo sign-in page. ### Other MCP Clients Any MCP client that supports the **Streamable HTTP** transport and MCP OAuth authorization can connect with the endpoint URL alone. ## Security Considerations - **Read-only access.** The current tools only read the Dataddo connector catalog. They do not create, change, or delete anything in your account. - **Revoke access** by removing the connector in your AI client. The client's tokens stop working once they are revoked or expire. - AI assistants can misinterpret instructions. Treat their output as suggestions to verify, not as authoritative. ## Troubleshooting - **The client cannot connect.** Verify the URL is exactly `https://headless.dataddo.com/mcp-platform` and that your client supports the Streamable HTTP transport. SSE-only clients are not supported. - **HTTP 401 with "Missing bearer token".** The client did not complete the sign-in. Start the authentication again from the client (for example, `/mcp` in Claude Code). - **The sign-in page does not open.** Your client may not support MCP OAuth. Use a client from the list above. - **The client asks for a static token.** Leave authentication on OAuth. This server does not accept Dataddo API tokens configured by hand. - **Rate limit errors.** The `X-RateLimit-Retry-After` header indicates when you can retry. Need help? Contact us at [support@dataddo.com](mailto:support@dataddo.com). ## Related Articles - [Data Access MCP Server](/docs/data-access-mcp-server) - [Headless API Overview](/headless/docs/headless-api-overview) - [Manage and Monitor Data Flows](/docs/manage-and-monitor-data-flows) - [Data Delivery to AI & Agents](/docs/data-delivery-to-ai-agents)