Data Access MCP Server

Prev Next

The Data Access MCP server lets AI assistants and agents query the data Dataddo extracts for you, directly from a conversation. It is built on the Model Context Protocol (MCP), an open standard that AI clients such as Claude, Cursor, Gemini, and Le Chat use to discover and call external tools.

You ask in plain language, and the model queries your data in business terms (customers, invoices, deals). Dataddo keeps the data fresh, stores it in SmartCache, and serves it together with its metadata: technical metadata such as data freshness, and business metadata such as what each table and column means. You do not write any code, and you do not operate a storage layer.

This article describes the server itself. For step-by-step setup in a specific client, see the AI destination articles listed in Supported AI Clients.

Data Access vs. Control

Dataddo runs two MCP servers. The Data Access MCP server (this article) reads your data. The Control MCP Server manages the Dataddo platform itself. They use different endpoints and different authentication.

Server Details

Endpoint URL https://headless.dataddo.com/mcp-data
Transport Streamable HTTP
Authentication Dataddo API token, sent on every request as Authorization: Bearer <YOUR_DATADDO_TOKEN>
Data scope Only the flows or Contexts attached to a destination or AI Model whose authorizer uses the token
Rate limits Monitor the X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Retry-After response headers.

How It Works

The server does not expose your whole account. It exposes only the data you explicitly attach to an AI destination:

  1. You generate a Dataddo API token.
  2. You create an authorizer for your AI client that uses the token.
  3. You attach data to it:
    • On the Data Anywhere and Enterprise plans, you create an AI destination (for example, Claude) and attach one or more flows to it.
    • On the Data to AI plan, you create an AI Model and attach one or more Contexts to it. A Context is data that Dataddo keeps ready to query.
  4. Your AI client connects to the endpoint with the token. When the model needs data, Dataddo serves it from SmartCache and returns the rows together with their freshness and business metadata.

Data appears after the attached flows or Contexts run for the first time.

A Semantic Layer, Not a SQL Endpoint

The server is a semantic layer. The model asks for entities and fields by name, with filters, grouping, date grains, and predefined metrics. Dataddo never accepts SQL from the model. This keeps queries within what the semantic model defines and prevents the model from running arbitrary statements against your data.

A flow or Context can be available but not yet queryable. The model can see it as soon as it is attached, but it can query it only after a semantic model covers it. list_flows reports this for each one.

Available Tools

Tools Purpose
list_flows, describe_flow See which flows are available with this token and what each one holds.
list_models, list_entities, describe_entity, search, sample_values Find the business entities, fields, relationships, and metrics that can be queried.
query Query an entity by field names, with filters, grouping, date grains, and predefined metrics.
data_status, known_gaps Check how fresh the data is and which questions the data cannot answer.
refresh, report_problem Request fresh data for an entity, or report an answer that looks wrong.

A typical conversation starts with list_flows or list_entities to find the data, continues with describe_entity to learn its fields and metrics, and ends with query. data_status lets the model tell you how current the answer is.

Supported AI Clients

Each AI client is a destination (or AI Model) in Dataddo. Follow the article for your client:

Client Status Setup guide
Claude (web and desktop) Supported where the Request headers option is available in the custom connector dialog Claude
Claude Code Supported Claude
Cursor Supported Cursor
Google Gemini CLI Supported Google Gemini
Le Chat by Mistral AI Supported (requires workspace administrator) Mistral
ChatGPT Not yet supported. ChatGPT custom connectors cannot send a static Bearer token. ChatGPT

Other MCP Clients

Any other MCP client that supports the Streamable HTTP transport and can send a custom Authorization header can connect. Use the endpoint URL and your token. A typical configuration looks like this:

{
  "mcpServers": {
    "dataddo": {
      "url": "https://headless.dataddo.com/mcp-data",
      "headers": {
        "Authorization": "Bearer <YOUR_DATADDO_TOKEN>"
      }
    }
  }
}

The exact key names (url, httpUrl, serverUrl) differ between clients. Check your client's MCP documentation.

Security Considerations

  • The token is the access boundary. Anyone who holds the token can read the data of every flow or Context attached through an authorizer that uses it. Treat it like a password.
  • Use one token per destination or AI Model to keep data sets apart. For example, give the marketing team's Claude destination a different token than the finance team's.
  • Exclude or hash PII before it reaches the model. Once a model has seen a value, you cannot take it back. Use PII Exclusion and Hashing on the source so sensitive columns never enter the flow.
  • Revoke leaked tokens immediately under Settings > Security > API Tokens, then create a new one and update the authorizer.
  • AI assistants can misinterpret results. Check data_status and known_gaps before acting on an answer.

Troubleshooting

  • Authentication error (HTTP 401). The request reached the server without a valid token. Check that the header is exactly Authorization: Bearer <YOUR_DATADDO_TOKEN> and that the token has not been revoked.
  • The client cannot connect. Verify the URL is exactly https://headless.dataddo.com/mcp-data and that your client supports the Streamable HTTP transport. SSE-only clients are not supported.
  • A flow or Context is missing. Attach it to a destination or AI Model whose authorizer uses the same token the client sends, then let it run.
  • A flow or Context is listed but cannot be queried. It is available, but no semantic model covers it yet.
  • Stale data. Review the flow schedule. Dataddo serves the most recent data it has stored.
  • Rate limit errors. The X-RateLimit-Retry-After header indicates when you can retry.

Need help? Contact us at support@dataddo.com.

Related Articles