Atribu
MCP Server

Connect an AI client

The exact MCP configuration for Claude, Claude Code, Cursor, ChatGPT and everything else — no token to copy

Atribu's MCP server is a Streamable HTTP endpoint at one address:

MCP server URL
https://mcp.atribu.app/mcp

Every recipe on this page is the same address handed to a different client. None of them carries a credential. The server speaks OAuth 2.1 with dynamic client registration, so the first time a client calls a tool it sends you to Atribu's own consent screen, where you tick what it may read. A static token is a separate thing, for scripts and CI — see the Quickstart.

The same recipes live in the app

Developer → Connected apps → Connect an AI client shows every config below with a copy button, and lists the clients you have already authorized so you can disconnect one. This page and that panel are generated from the same source, so they cannot disagree.

Pick your client

Add Atribu as a custom connector in Claude on the web.

Open Settings → Connectors (on Pro and Max this is Customize → Connectors).

Click Add, then Add custom connector.

Paste the URL and click Add:

MCP server URL
https://mcp.atribu.app/mcp

Sign in to Atribu in the window that opens and choose the access you grant.

Plans

Custom connectors using remote MCP are available on the Free, Pro, Max, Team and Enterprise plans. On Free you can have one custom connector. On Team and Enterprise an owner adds it under Organization settings → Connectors and members then click Connect.

Same connector, in the desktop app. There is nothing to install — Claude reaches the server itself, so no mcp-remote bridge and no edit to claude_desktop_config.json.

Open Settings (Ctrl/ + ,), then click Connectors.

Click Add, then Add custom connector.

Paste the URL and click Add:

MCP server URL
https://mcp.atribu.app/mcp

Sign in to Atribu and approve. The connector's tools now appear in the chat's attachment menu.

Register the server once per machine:

Terminal
claude mcp add --transport http atribu https://mcp.atribu.app/mcp

The server answers the first call with 401, which is Claude Code's signal to start the OAuth flow. Run /mcp inside Claude Code to sign in, to see the connection, or to clear it. Tokens are stored and refreshed for you.

To share the server with a repository instead, commit a project-scoped .mcp.json:

.mcp.json
{
  "mcpServers": {
    "atribu": {
      "type": "http",
      "url": "https://mcp.atribu.app/mcp"
    }
  }
}

Cursor installs an MCP server from a deep link. Open this one — the console's Open in Cursor button is the same link:

Install link
cursor://anysphere.cursor-deeplink/mcp/install?name=atribu&config=eyJ1cmwiOiJodHRwczovL21jcC5hdHJpYnUuYXBwL21jcCJ9

The config parameter is base64 of {"url":"https://mcp.atribu.app/mcp"} — the server object, nothing more. It carries no headers and no token: Cursor runs the OAuth flow for remote servers itself.

If your browser or OS will not open cursor:// links, add the same server by hand in ~/.cursor/mcp.json (or .cursor/mcp.json for one project):

~/.cursor/mcp.json
{
  "mcpServers": {
    "atribu": {
      "url": "https://mcp.atribu.app/mcp"
    }
  }
}

ChatGPT reaches custom MCP servers through developer mode.

Open Settings → Security and login and turn on Developer mode. Availability depends on your plan and, inside a workspace, on your admin's policy.

Create a new connection and give it a name and description.

Under Connection, enter the MCP server URL — the /mcp path included:

MCP server URL
https://mcp.atribu.app/mcp

Create the connection, then review the tools ChatGPT discovered.

Any client that speaks the Streamable HTTP transport works. Point it at the same URL:

MCP config
{
  "mcpServers": {
    "atribu": {
      "type": "http",
      "url": "https://mcp.atribu.app/mcp"
    }
  }
}

Leave out any Authorization header. The client will be sent through Atribu's sign-in on its first call — or, if it cannot open a browser, give it a personal access token instead.

What the first connection asks for

The client sends you to Atribu's consent screen. It names the client, the account you are signed in as, and one checkbox per scope. Untick anything you do not need — Read analytics alone answers every performance question.

ScopeWhat it allowsTick it?
Read analytics (mcp:read)Attribution, campaigns, creatives, journeys. Personal data masked.Yes
Read unmasked PII (mcp:read_pii)Names, emails and phones, when you ask for themOnly if you need it
Write-back (mcp:write)Onboarding tools and sending conversions to Meta CAPIOnly if you need it

Ticking a box never bypasses a workspace control: read-PII still requires the workspace to be in full-PII mode, and write-back still requires a workspace admin to have enabled it.

Every connection you approve is listed under Developer → Connected apps, with the scopes it holds and a Disconnect button that revokes it immediately.

Troubleshooting

  • The client says it cannot connect. Check the URL is exactly https://mcp.atribu.app/mcp, /mcp path included. curl https://mcp.atribu.app/health/live should answer { "status": "ok" }.
  • Nothing happens when you open the Cursor link. The browser asks permission to open Cursor the first time; if the prompt is blocked, use the ~/.cursor/mcp.json fallback above.
  • The client keeps asking which workspace. Expected when you belong to more than one — name it in your prompt, or ask the client to list your workspaces first.
  • A tool answers "write-back is not enabled". The scope is not the whole story: a workspace admin also has to turn write-back on. See Write-back.
  • You want to start over. Disconnect under Developer → Connected apps, then add the client again.

On this page