Generic MCP

Prev Next

The Generic MCP destination lets any AI client that supports the Model Context Protocol (MCP) read data from any source you connect in Dataddo. Use it for clients that do not have their own Dataddo destination, such as other AI assistants, IDEs and agent frameworks. Dataddo delivers the data directly to the model and takes care of the rest.

Dataddo handles the whole pipeline for you. It keeps the data fresh, stores it in SmartCache, and serves it through a built-in querying layer. Every answer comes with metadata: technical metadata such as data freshness, and business metadata such as what each table and column means. You do not write any code.

How It Works

On the Data Anywhere and Enterprise plans, Generic MCP is a destination, and the data comes from the flows you attach to it. On the Data to AI plan, Generic MCP is an AI Model, and the data comes from the Contexts you attach to it. A Context is data that Dataddo keeps ready to query. When the client needs data, Dataddo serves it from SmartCache and returns the rows together with their freshness and business metadata.

Access is authorized with OAuth. You sign in to Dataddo from the client once, with your Dataddo email and password. The client then keeps the connection active and renews it in the background, so you do not handle any tokens.

What Your MCP Client Can Do with Your Data

Dataddo exposes your data through its data MCP server at https://headless.dataddo.com/mcp-data. The server is a semantic layer: the client asks in business terms (customers, invoices, deals), and Dataddo never accepts SQL from the model. The tools fall into these groups:

Tools Purpose
list_flows, describe_flow See which flows are available to your account 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 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.

Setup Overview

The steps depend on your Dataddo plan:

  • On the Data Anywhere and Enterprise plans, you work with sources, flows and destinations.
  • On the Data to AI plan, you work with Contexts and AI Models instead.
  1. Create a Generic MCP authorizer.
  2. Make your data available:
    • Data Anywhere and Enterprise: create a Generic MCP destination that uses the authorizer, then attach one or more flows to it.
    • Data to AI: create a Generic MCP AI Model that uses the authorizer, then attach one or more Contexts to it.
  3. Add the Dataddo MCP server in your MCP client and sign in with your Dataddo account.

After you sign in, your MCP client can access every flow or Context attached to an AI destination or AI Model in your Dataddo account, not only the ones attached to Generic MCP. Their data appears after they run for the first time.

Authorize Connection to Generic MCP

Authorize the connection so Dataddo can serve your data to your MCP client:

  1. Go to Authorizers and click Authorize New Service.
  2. Select Generic MCP.
  3. Fill in the fields below and click Save. Dataddo validates the connection when you save it.
Field Description
Label A name for this authorizer in Dataddo.
Dataddo token The Dataddo token used when querying the Dataddo API. If the list is empty, go to Settings > Security > API Tokens and create one.

Make Your Data Available to Generic MCP

Follow the steps for your plan.

Data Anywhere and Enterprise Plans

  1. Go to Destinations, click Create Destination, and select Generic MCP.
  2. Enter a name, choose the authorizer you created, and click Save.
  3. Go to Flows and click Create Flow.
  4. Add one or more sources.
  5. Add the Generic MCP destination.
  6. Set the schedule that keeps the data fresh and click Save.

Data to AI Plan

  1. Go to AI Models and add a new one.
  2. Select Generic MCP.
  3. Enter a name and choose the authorizer you created.
  4. Attach one or more Contexts to the AI Model.
  5. Click Save.

Connect Your MCP Client

Point any MCP client that supports the Streamable HTTP transport and MCP OAuth authorization to the Dataddo data server:

Setting Value
Server URL https://headless.dataddo.com/mcp-data
Authentication OAuth 2.1 (authorization code with PKCE)
Scope mcp:read

Most clients need only the server URL. On the first request, the server answers HTTP 401 with a link to its OAuth metadata at https://headless.dataddo.com/.well-known/oauth-protected-resource/mcp-data, which names the authorization server https://identity.dataddo.com. The client registers itself (with a Client ID Metadata Document or dynamic client registration), opens the Dataddo sign-in page, and you sign in with your Dataddo email and password.

The client must refresh the access token before it expires. A token that is about to expire is rejected with HTTP 401 and error="invalid_token", which tells the client to refresh it. The server exposes read tools over your flows or Contexts (list_flows, list_entities, describe_entity, query, data_status and others). It does not accept SQL.

Client Examples

Clients that already have their own Dataddo destination (Claude, ChatGPT, Copilot, Cursor, Google Gemini, Grok and Mistral) have dedicated setup guides. For other clients, add the server URL in the client's MCP settings. A typical JSON configuration looks like this, although the file name and the key names differ from client to client:

{
  "mcpServers": {
    "dataddo": {
      "url": "https://headless.dataddo.com/mcp-data"
    }
  }
}

Do not add an Authorization header or an API key. The client signs in to Dataddo with OAuth on its own.

Troubleshooting

  • A flow or Context is missing: attach it to an AI destination or AI Model in the Dataddo account you signed in with, then let it run.
  • The client does not open the Dataddo sign-in page: check that the URL is exactly https://headless.dataddo.com/mcp-data, that the client uses the Streamable HTTP transport, and that you did not add an Authorization header. Clients that support only local (stdio) servers or older transports cannot connect directly.
  • The client cannot register: it must support a Client ID Metadata Document or dynamic client registration, with PKCE (S256). Clients that need a pre-registered client ID and secret are not supported.
  • Requests fail with HTTP 401 and error="invalid_token": the access token expired or is about to expire. The client must refresh it. If it cannot, sign in again.
  • You see data from the wrong Dataddo account: you signed in with a different account. Remove the server from the client, add it again and sign in with the right account.
  • A flow or Context is listed but the client cannot query it: it is available but no semantic model covers it yet.
  • The client cannot fetch data: check that the flow has run at least once, so the Context holds data.
  • Stale data: review the flow schedule. Dataddo serves the most recent data it has stored for the Context.

Related Articles