Skip to main content

MCP

MCP is the Model Context Protocol, an open standard that lets Claude Code use tools, files, and prompts from other programs. A program that offers them is an MCP server. For example, claude mcp add --transport http notion https://mcp.notion.com/mcp adds a server over HTTP. This page covers the big picture. The other pages list every option.

Transports​

The transport is how Claude Code talks to a server. Set it with type in the server entry. Source: Connect Claude Code to Tools via MCP, Control MCP Server Access for Your Organization, and the program (the server schema).

TransportStatusWhat It DoesHow It Works
stdio
Documented: An official docs page names this item.
Runs a local process.The default when type is missing. Needs command. Claude Code sets CLAUDE_PROJECT_DIR in the process env.
http
Documented: An official docs page names this item.
Talks to a remote server over streamable HTTP.The recommended remote transport. streamable-http is an alias. Supports OAuth and headers.
sse
Documented: An official docs page names this item.
Deprecated: The program or the official docs call this deprecated. Use --transport http
Talks to a remote server over server-sent events.Deprecated. --transport http tries HTTP first and falls back to SSE (2.1.265 and later).
ws
Documented: An official docs page names this item.
Talks to a remote server over WebSocket.Header-only auth, no OAuth. claude mcp add --transport does not accept it. Claude Code does not retry the first connect. Use it in .mcp.json, add-json, plugins, and agent files.
sdk
Documented: An official docs page names this item.
An in-process server of an SDK host.Only an SDK host can register it. Claude Code skips it in .mcp.json and settings.
sse-ide
Undocumented: Only the program shows this item. It can change without notice.
A server of an IDE extension over SSE.Has ideName and ideRunningInWindows. The idle timeout does not apply.
ws-ide
Undocumented: Only the program shows this item. It can change without notice.
A server of an IDE extension over WebSocket.Has ideName, authToken, and ideRunningInWindows.
claudeai-proxy
Undocumented: Only the program shows this item. It can change without notice.
A claude.ai connector through the MCP proxy.A config file cannot declare it. Claude Code says type "claudeai-proxy" is used only by claude.ai connectors.

Scopes​

A scope says where Claude Code stores a server and who sees it.

ScopeStatusWhat It IsHow It Works
local
Documented: An official docs page names this item.
A private server for one project.The default scope. Claude Code stores it in ~/.claude.json under projects["<path>"].mcpServers.
project
Documented: An official docs page names this item.
A server shared with the team.Claude Code stores it in .mcp.json at the project root. Interactive sessions ask for approval.
user
Documented: An official docs page names this item.
A server for all your projects.Claude Code stores it in ~/.claude.json under mcpServers.
Plugin
Documented: An official docs page names this item.
Servers that a plugin bundles.Named plugin:<plugin>:<server>. Tools are mcp__plugin_<plugin>_<server>__<tool>.
claude.ai connectors
Documented: An official docs page names this item.
Servers you added in claude.ai.Claude Code fetches it at start for a claude.ai login. It has the lowest precedence.
managed
Documented: An official docs page names this item.
Servers your organization provides.From the managedMcpServers key in managed settings (the managed-mcp.json file gets the enterprise scope; source: the program). Ranks above every other source (2.1.259 and later).
dynamic
Undocumented: Only the program shows this item. It can change without notice.
Servers passed at run time.Used for --mcp-config, for the remote copy from CLAUDE_CODE_REMOTE_MCP_CONFIG, and for plugin servers.
enterprise
Undocumented: Only the program shows this item. It can change without notice.
The servers in managed-mcp.json.Read from the managed settings folder. While the file exists, it has exclusive control of MCP servers. Claude Code blocks agent frontmatter servers. Checked: user and project servers did not start. claude mcp list showed only the managed server. claude mcp get showed Scope: Enterprise config (managed by your organization). --mcp-config failed with You cannot dynamically configure MCP servers when an enterprise MCP config is present. Checked with a user agent that has mcpServers frontmatter: the agent ran, but its server did not start. A notice said probe-agent agent MCP server blocked by enterprise MCP config: agent_srv. init listed the managed server with source enterprise. See Probes.
agent
Undocumented: Only the program shows this item. It can change without notice.
A server in an agent's mcpServers frontmatter.Starts when that agent runs and stops when it ends. Claude Code skips project agents (.claude/agents/) in a folder you have not trusted. --strict-mcp-config and --bare block it. Checked in -p with a user agent.

The full scope list is local, user, project, dynamic, enterprise, claudeai, managed, agent. Plugin servers also use dynamic.

Example​

Add three kinds of servers
# Remote server over HTTP
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp

# Local server with an env var (use -- before the command)
claude mcp add my-server -e API_KEY=xxx -- bunx my-mcp-server

# Shared with the team through .mcp.json
claude mcp add --scope project files -- bunx @example/files-server

How It Works​

Claude Code merges all sources and keeps one entry per name. Precedence is on the Server Configuration page. After a server connects, its tools get names like mcp__github__create_issue. See MCP Runtime.

Pages in This Section​

PageWhat It Covers
Server ConfigurationFile shape, options per transport, env var expansion, names, precedence
MCP Settings and PolicySettings keys, allow and deny lists, approvals, managed-mcp.json, flags
MCP CommandsEvery claude mcp subcommand and flag, and /mcp
MCP RuntimeTool names, resources, prompts, elicitation, channels, limits, recovery
MCP AuthenticationOAuth, headersHelper, XAA, claude.ai connectors
MCP Env VarsEvery MCP env var
MCP Settings KeysThe same keys on the settings side