MCP in Claude Code vs Claude Desktop
claude mcp add registers a server from the terminal; Claude Desktop edits a JSON config from Settings. Same protocol, two setup flows and one scope trick.
On this page5 sections
Both apps are MCP clients, so one server works in either without changes. The difference is where the server list lives: Claude Code takes a CLI command and remembers a scope; Claude Desktop takes a JSON file you open from Settings → Developer → Edit Config.
1. Claude Code: one command
claude mcp add --transport stdio airtable -- npx -y airtable-mcp-server
Registers a local server that Claude Code launches as a child process — everything after -- is the command to start it. Full walkthrough: install an MCP server in Claude Code.
A hosted server drops the -- and takes a URL:
claude mcp add --transport http notion https://mcp.notion.com/mcp
Connects over HTTP instead of spawning a process; add --header "Authorization: Bearer …" when it needs a token, and see remote MCP servers for the OAuth flow.
2. Scope is the real difference
--scope decides who else gets the server:
| Scope | Stored in | Shared |
|---|---|---|
local (default) | ~/.claude.json, this project only | no |
project | .mcp.json in the repo | yes, via git |
user | ~/.claude.json, every project | no |
project is the one Desktop has no equivalent for: commit .mcp.json and every teammate gets the same tools, each approving it once.
3. Claude Desktop: a config file behind a button
Open Settings → Developer → Edit Config, which opens claude_desktop_config.json:
{ "mcpServers": { "airtable": { "command": "npx", "args": ["-y", "airtable-mcp-server"] } } }
The same stdio server spelled as JSON. Quit Desktop completely and reopen it — the file is read only at launch.
4. Move one you already have
claude mcp add-from-claude-desktop
Imports servers already configured in Desktop so you don’t retype them.
5. Verify it worked
claude mcp list prints every server with a health status, and /mcp inside a session opens the panel to authenticate one. In Desktop, open the connectors menu under the message box and pick Manage connectors.
If it fails: a stdio server needs the -- separator, server names accept only letters, digits, hyphens and underscores, and a project-scoped server stays inert until you approve it interactively. More fixes: MCP troubleshooting.
Sources: Claude Code MCP docs and local MCP servers on Claude Desktop.