Claude connectors vs Claude Code MCP servers

There is no technical difference between a connector and an MCP server. There is a large practical difference in where the configuration lives, who can change it, and which one wins when both exist.

By the Continuum team. We build a workbench that runs Claude Code, Codex, and their peers, so the model rates quoted here are the ones our own cost analytics ship with.

The short version

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.

What you need to know
  • 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-token credential 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 connectorclaude mcp add
Added atclaude.ai settings, in a browserYour terminal
Stored inYour Anthropic account~/.claude.json or .mcp.json
Follows you toEvery Claude surface you sign intoThis machine, or this repository
TransportRemote onlyRemote or local stdio
Who can addYou, or admins only on Team and EnterpriseAnyone with a shell
AuthCompleted once in claude.aiOAuth via /mcp, or a header
Version controlledNoYes, at project scope
PrecedenceLowestHigher, 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.

Inside a session. The claude.ai group is separate from your own servers.
/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 credentialConnectors?
claude.ai subscription loginYes
ANTHROPIC_API_KEYNo
ANTHROPIC_AUTH_TOKEN or apiKeyHelperNo
Amazon Bedrock, Google Cloud Agent PlatformNo
CLAUDE_CODE_OAUTH_TOKEN from claude setup-tokenNo
The diagnosis, in order.
/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.

  1. Local scope, in ~/.claude.json under this project's path
  2. Project scope, in the repository's .mcp.json
  3. User scope, in ~/.claude.json
  4. Plugin-provided servers
  5. 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.

SituationUse
Everyone on the team needs itProject scope, committed .mcp.json
Personal, every repository, every machineConnector, or --scope user
Local process, or a custom scriptclaude mcp add. Connectors are remote only
Needs a header or pinned OAuth scopesclaude mcp add
Also used in the Claude app and on mobileConnector
Must not vary between machinesProject scope

Turning them off

Three levels, from one connector to all of them.

01

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.

02

All connectors, any settings scope

~/.claude/settings.json, or a committed .claude/settings.json
{
  "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.

03

All connectors, one shell session

ENABLE_CLAUDEAI_MCP_SERVERS=false claude
04

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.

SourceCallable tool name
claude mcp add github …mcp__github__<tool>
A claude.ai connectormcp__claude_ai_<server>__<tool>
A plugin-bundled servermcp__plugin_<plugin>_<server>__<tool>
.claude/settings.json. Note the prefix difference between the two entries.
{
  "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 viaReachesSurvives
claude.ai connectorClaude, mobile, Desktop, Claude Code, CoworkA new laptop
claude mcp add --scope userClaude Code on this machine onlyA new repository
claude mcp add --scope projectAnyone who clones the repositoryA 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

The two commands answer different questions.
# 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.

StatusMeans
✔ ConnectedWorking
! Needs authenticationRun /mcp or claude mcp login <name>
✘ Failed to connectThe server itself is failing. Run its command by hand
⏸ Pending approvalA .mcp.json server awaiting interactive approval
cached 2h agoTool list reused; it connects on first use
connected · session token rejectedYour 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.

  1. Claude Code MCP documentation
  2. Claude connectors overview
  3. Claude Code settings reference
Try it

Which account
is live?

Continuum runs multiple Claude accounts side by side in isolated config directories, so connectors and quota follow the account you picked.

free app · your subscriptions · local-first