A Claude connector is a remote MCP server you added through claude.ai rather than through the command line. Connectors sync automatically into Claude Code when your active authentication is a claude.ai subscription login, appear in /mcp tagged as coming from claude.ai, and sit last in the precedence order behind local, project, user, and plugin servers. Disable them all with disableClaudeAiConnectors, or one at a time from the /mcp panel.
- A connector is an MCP server. The word describes where you added it.
- Connectors sync into Claude Code only when you are signed in with a claude.ai account.
- An API key, Bedrock, or a
setup-tokencredential means no connectors at all. - Precedence: local, project, user, plugin, then claude.ai connectors.
- Turn all of them off with
disableClaudeAiConnectors; one off from/mcp. - Some hosted connectors, including Gmail and Microsoft 365, cannot authenticate locally.
The distinction, in one table
Both are remote MCP servers speaking the same protocol to the same endpoints. Everything that differs is administrative, and all of it matters.
| claude.ai connector | claude mcp add | |
|---|---|---|
| Added at | claude.ai settings, in a browser | Your terminal |
| Stored in | Your Anthropic account | ~/.claude.json or .mcp.json |
| Follows you to | Every Claude surface you sign into | This machine, or this repository |
| Transport | Remote only | Remote or local stdio |
| Who can add | You, or admins only on Team and Enterprise | Anyone with a shell |
| Auth | Completed once in claude.ai | OAuth via /mcp, or a header |
| Version controlled | No | Yes, at project scope |
| Precedence | Lowest | Higher, at every scope |
Anthropic also uses "connector" as an umbrella for a few adjacent things worth naming so the docs stop being confusing: prebuilt integrations Anthropic runs itself (Google Drive, Gmail, Calendar, GitHub, Slack, Microsoft 365), third-party remote servers listed in the directory at claude.ai/directory, and MCP Bundles, which package a local server for Claude Desktop. Only the first two reach Claude Code.
Why servers you never added are in your terminal
If you signed into Claude Code with a Claude subscription, every connector on your account is offered to the CLI automatically. Run /mcp and they appear in their own section, tagged as coming from claude.ai. Nobody configured this on your machine, which is why it reads as a bug the first time.
/mcp
Connectors you have never signed into collapse behind a Show unused connectors row, so an organisation with forty provisioned connectors does not fill the panel. One you have used before stays visible even when it needs re-authentication.
When they do not appear
Connector sync is tied to the active authentication method, and Claude Code has several. If any of these is active, connectors are not fetched at all, even if you ran /login at some point in the past.
| Active credential | Connectors? |
|---|---|
| claude.ai subscription login | Yes |
ANTHROPIC_API_KEY | No |
ANTHROPIC_AUTH_TOKEN or apiKeyHelper | No |
| Amazon Bedrock, Google Cloud Agent Platform | No |
CLAUDE_CODE_OAUTH_TOKEN from claude setup-token | No |
/status # which auth is active right now
echo $ANTHROPIC_API_KEY # non-empty means connectors are off
/login # sign in with the claude.ai account
/mcp # connectors should now be listed
Precedence, and the duplicate problem
When the same server is defined more than once, Claude Code connects once and uses the highest-precedence definition. The whole entry wins; fields are never merged across sources.
- Local scope, in
~/.claude.jsonunder this project's path - Project scope, in the repository's
.mcp.json - User scope, in
~/.claude.json - Plugin-provided servers
- claude.ai connectors
When that happens, /mcp lists the connector as hidden and tells you how to remove the duplicate if you would rather use the connector version. Usually you would not: your own entry is the one you can pin, scope, and commit.
Which one to prefer, by situation.
| Situation | Use |
|---|---|
| Everyone on the team needs it | Project scope, committed .mcp.json |
| Personal, every repository, every machine | Connector, or --scope user |
| Local process, or a custom script | claude mcp add. Connectors are remote only |
| Needs a header or pinned OAuth scopes | claude mcp add |
| Also used in the Claude app and on mobile | Connector |
| Must not vary between machines | Project scope |
Turning them off
Three levels, from one connector to all of them.
One connector, this project only
Toggle it off in the /mcp panel. Claude Code records the choice per project in ~/.claude.json under disabledMcpServers, written by display name such as claude.ai Slack. The connector stays listed, marked disabled.
All connectors, any settings scope
{
"disableClaudeAiConnectors": true
}
Any-source-true semantics: true anywhere wins. A checked-in project setting can opt a repository out of cloud connectors, and a project-level false cannot re-enable what a user or policy level turned off.
All connectors, one shell session
ENABLE_CLAUDEAI_MCP_SERVERS=false claude
Specific connectors, organisation-wide
Administrators add them to deniedMcpServers in managed settings, by server name or URL pattern. A serverName of "claude.ai Slack" blocks the Slack connector for everyone.
Organisation controls on individual tools
On Team and Enterprise, admins can set per-tool controls on connectors, and Claude Code reads and enforces them locally at startup. A tool set to ask prompts on every call with the reason "Your organization requires approval for this tool", even in acceptEdits, auto, and bypassPermissions modes, with no remember-my-choice option; in dontAsk mode the call is denied instead. A tool set to blocked is filtered out before Claude ever sees it.
Naming, permissions, and where connectors differ
Connector tools are addressable in permission rules and hook matchers like any other MCP tool, but under a different prefix, and this is the detail that makes a carefully written rule silently match nothing.
| Source | Callable tool name |
|---|---|
claude mcp add github … | mcp__github__<tool> |
| A claude.ai connector | mcp__claude_ai_<server>__<tool> |
| A plugin-bundled server | mcp__plugin_<plugin>_<server>__<tool> |
{
"permissions": {
"allow": ["mcp__github__get_*"],
"ask": ["mcp__claude_ai_slack"],
"deny": ["mcp__*"]
}
}
Which surface should own a server
The same server, added in three places, behaves differently.
| Added via | Reaches | Survives |
|---|---|---|
| claude.ai connector | Claude, mobile, Desktop, Claude Code, Cowork | A new laptop |
claude mcp add --scope user | Claude Code on this machine only | A new repository |
claude mcp add --scope project | Anyone who clones the repository | A new teammate |
The practical answer for most people is both, deliberately: connectors for the tools you want in the Claude app and on your phone, and a committed .mcp.json for the ones the repository needs to build. Just be aware of the endpoint-matching rule above, because that is the case where adding it twice makes one of them quietly disappear.
Getting a straight answer about what is connected
# what is configured on this machine, with a health check
claude mcp list
# one server in detail, including whether OAuth is configured
claude mcp get sentry
# inside a session: everything, including connectors and plugin servers
/mcp
Statuses you will see, and what each one means.
| Status | Means |
|---|---|
✔ Connected | Working |
! Needs authentication | Run /mcp or claude mcp login <name> |
✘ Failed to connect | The server itself is failing. Run its command by hand |
⏸ Pending approval | A .mcp.json server awaiting interactive approval |
cached 2h ago | Tool list reused; it connects on first use |
connected · session token rejected | Your claude.ai login expired. /login, then reconnect |
A last practical note: several Anthropic-hosted connectors, including Microsoft 365, Gmail, and Google Calendar, do not support local OAuth from Claude Code, because the upstream identity provider only accepts the redirect URL claude.ai registered. Authenticating one in /mcp shows a message pointing you at Settings then Connectors on claude.ai. Connect it there once and it appears in Claude Code automatically.
Questions people ask
A remote MCP server added through claude.ai rather than the command line. Technically it is an ordinary MCP server; the word connector describes where the configuration lives, which is your Anthropic account instead of your machine.
None at the protocol level. Connectors are stored on your account and follow you across Claude surfaces; servers added with claude mcp add live in ~/.claude.json or a committed .mcp.json and are per machine or per repository. Connectors are remote only and rank last in precedence.
By design. When your active authentication is a claude.ai subscription login, Claude Code fetches the connectors on your account and lists them in /mcp tagged as coming from claude.ai. No local configuration is involved.
Set disableClaudeAiConnectors to true in any settings file, or run ENABLE_CLAUDEAI_MCP_SERVERS=false claude for one session. To disable a single connector for one project, toggle it off in the /mcp panel.
Almost always the active credential. An API key, an auth token, apiKeyHelper, Bedrock, or a CLAUDE_CODE_OAUTH_TOKEN from claude setup-token all suppress connector loading. Run /status to confirm, unset the variable, then /login.
Local, then project, then user, then plugin, then claude.ai connector. The scopes match by name but plugins and connectors match by endpoint, so your own entry shadows a connector pointing at the same URL even under a different name.
No. Connectors are remote HTTP servers only. For a local stdio server, use claude mcp add, or package it as an MCP Bundle for Claude Desktop.
Some Anthropic-hosted connectors, including Gmail, Google Calendar, and Microsoft 365, only accept the redirect URL claude.ai registered, so local OAuth cannot complete. Connect them once in claude.ai settings and they appear in Claude Code automatically.
Sources
Every figure above was read from these pages on 3 August 2026. Vendors reprice without notice; if you find a stale number, tell us.