Attribution MCP Server
Connect AI assistants like Claude, Cursor, and ChatGPT to your Attribution project and query your marketing data in plain English.
Attribution's MCP (Model Context Protocol) server lets you connect any MCP-compatible AI assistant — Claude, Cursor, ChatGPT, Codex, Gemini, and others — directly to your Attribution project. Once connected, the assistant can pull your channels, reports, conversion paths, visitors, and revenue data on demand and answer questions in natural language.
What is MCP?MCP is an open protocol for connecting AI assistants to external data sources and tools. Each tool the assistant calls is a single, scoped request — there is no background polling and no training on your data. See the tool catalog for everything the server exposes.
Server URL
https://mcp.attributionapp.com/mcp
Enabling MCP for your project
MCP access is enabled per-project by Attribution. Before you can connect an AI assistant, your project must have the mcp_access feature on its plan.
To enable MCP for a project, contact your account manager or email [email protected] with the project name. Once enabled, anyone with access to that project can authorize an AI assistant against it.
Quick setup
The fastest way to connect is to tell your AI assistant:
Add this MCP server: https://mcp.attributionapp.com/mcp
Most assistants will add it to their MCP configuration automatically and walk you through the OAuth flow.
Manual setup by client
Claude Desktop
- Open Claude Desktop → Settings → Connectors → Add custom connector.
- Set the Remote MCP server URL to
https://mcp.attributionapp.com/mcp. - Name it "Attribution" (or anything you like).
- Click Add, then Connect. Claude will open your browser for OAuth.
Claude Code
Add to your ~/.claude.json or project .mcp.json:
{
"mcpServers": {
"attribution": {
"url": "https://mcp.attributionapp.com/mcp"
}
}
}Then run claude mcp and select attribution to authenticate.
Cursor
- Open Cursor → Settings → MCP → Add new MCP server.
- Choose Type: HTTP and enter URL
https://mcp.attributionapp.com/mcp. - Save. Cursor will prompt you to sign in with OAuth.
ChatGPT (Custom Connectors)
- In ChatGPT, open Settings → Connectors → Add a connector.
- Choose MCP Server and paste
https://mcp.attributionapp.com/mcp. - Authorize through the OAuth screen.
Codex CLI
Add to ~/.codex/config.toml:
[mcp_servers.attribution]
url = "https://mcp.attributionapp.com/mcp"The first time you run a Codex session that uses the server, Codex opens your browser for OAuth and caches tokens locally. See the Codex CLI config reference for advanced options (http_headers, startup_timeout_sec, etc.).
Gemini CLI
Add to ~/.gemini/settings.json:
{
"mcpServers": {
"attribution": {
"httpUrl": "https://mcp.attributionapp.com/mcp"
}
}
}Gemini CLI auto-discovers Attribution's OAuth endpoints from the .well-known/oauth-authorization-server metadata and opens your browser to authenticate.
Notion
Notion supports custom MCP connections via Custom Agents (workspace-admin enabled).
- Workspace admin: open Settings → Notion AI → AI connectors and enable Custom MCP servers.
- In your Custom Agent, open Settings → Tools & Access → Add an MCP connection.
- Enter URL
https://mcp.attributionapp.com/mcpand authorize through the OAuth screen.
Each MCP connection is scoped to a single Custom Agent and uses the credentials of the person who authenticated it.
Generic MCP client
Any client that supports remote MCP servers with OAuth 2.0 + PKCE can connect. Point it at https://mcp.attributionapp.com/mcp and follow its OAuth setup. The server publishes its OAuth metadata at https://mcp.attributionapp.com/.well-known/oauth-authorization-server and its protected-resource metadata at https://mcp.attributionapp.com/.well-known/oauth-protected-resource.
Authorizing access
The first time you connect, your browser will open Attribution's OAuth consent screen:
- Sign in to your Attribution dashboard if you aren't already.
- Choose which Attribution project the assistant should access. Projects without MCP enabled will be greyed out.
- Review the read-only scopes the assistant is requesting.
- Click Approve.
After approval, your browser redirects back to the AI assistant and the connection is live.
Scopes
The MCP server is read-only. It uses six scopes:
| Scope | What it grants |
|---|---|
account:read | Account-level metadata |
project:read | Project info, settings, default views |
filters:read | Filters, filter groups, channel hierarchy |
reports:read | Dashboard, cohort, paths, revenue reports |
visitors:read | Visitor and company lookups |
integrations:read | Connected ad/CRM integration info |
The assistant cannot write, modify, or delete anything in your Attribution account. It cannot change settings, create filters, modify reports, or alter integrations.
For the full list of individual tools and what each one does, see the tool catalog.
Rate limits
The server enforces three layers of token-bucket rate limits. When a limit is hit, the server returns HTTP 429 with a Retry-After header.
| Layer | Burst capacity | Sustained rate |
|---|---|---|
| Per IP | 30 requests | 60 / minute |
| Per OAuth client | 120 requests | 120 / minute |
| Per account | 300 requests | 300 / minute |
The account limit caps total traffic across every AI assistant connected to an account, so registering multiple clients does not multiply your effective rate.
Example prompts
Once connected, try asking your assistant questions like:
- "Get the Attribution dashboard report for last month using 'Purchase' as the conversion event. Which channels are driving the most revenue?"
- "Show me the filter tree and list all active integrations."
- "Search for visitors attributed to Google Ads in the last 30 days. What's their typical conversion path?"
- "Compare dashboard reports for January and February. How did each channel's ROAS change month over month?"
- "Get the revenue cohort report for this quarter. Which channels have the best LTV?"
Revoking access
You can revoke any AI assistant's access at any time:
- Open your Attribution dashboard.
- Go to Account → Security.
- Find the AI assistant in the Active Sessions list (it will show the client name, e.g., "Claude").
- Click Revoke.
The assistant's tokens are invalidated immediately and any further request from it will fail.
Privacy and data handling
When an AI assistant calls a tool, the data returned by Attribution is transmitted to the assistant's operator (Anthropic for Claude, OpenAI for ChatGPT and Codex, Google for Gemini, Cursor Inc. for Cursor, etc.). Once that data leaves Attribution, it is governed by the AI provider's privacy policy and terms — not Attribution's. We recommend reviewing each provider's policy before connecting.
Attribution does not use your data to train AI models and does not permit our service providers to do so. See the Attribution Privacy Policy for full details, including the section on third-party AI assistants.
Regulated dataAvoid connecting projects that contain data subject to special regulatory requirements (e.g., HIPAA PHI, sensitive financial records). Data transmitted via MCP flows to third-party AI providers under their own terms, and Attribution's Business Associate Agreement does not extend to those providers.
Troubleshooting
"Insufficient scope" error. Your token doesn't include the scope the tool needs. Revoke the session in Account → Security and reconnect — your client will request the right scopes on a fresh authorization.
Session expired / unauthorized. Tokens expire periodically. Most MCP clients refresh transparently; if yours doesn't, reconnect from the client's MCP settings.
Reports time out. Long date ranges or large projects can exceed the 10-minute report window. Try a shorter date range or a more specific filter.
The project picker is empty or all projects are greyed out. MCP access hasn't been enabled on any of your projects yet. Contact your account manager or [email protected] to enable it.
Rate limited (HTTP 429). You've hit one of the per-IP, per-client, or per-account limits. The response includes a Retry-After header — wait that many seconds and try again, or reduce the assistant's request volume.
Support
For help connecting, plan/access questions, or to report a bug, email [email protected].
Updated about 2 hours ago
