Claude Desktop vs Cursor: MCP Config Differences

Side-by-side comparison of how Claude Desktop and Cursor read mcpServers — file paths, scope (project vs global), and SSE support.

Client Differences

Detailed Explanation

Same JSON Shape, Different Conventions

Both clients use the mcpServers top-level key and the same { command, args, env } per-entry shape. The differences are operational.

File location

Client Scope Path
Claude Desktop Per-user (only one) ~/Library/Application Support/Claude/claude_desktop_config.json
Cursor Project .cursor/mcp.json (in repo root)
Cursor User (global) ~/.cursor/mcp.json

Cursor's project-level config is huge for teams: commit .cursor/mcp.json (with secrets in env-var references, not literals) so every developer gets the same servers.

Reload behaviour

  • Claude Desktop: requires a full app restart to pick up config changes.
  • Cursor: reload via Command Palette → "MCP: Reload Configuration", no restart needed.

Transport support

  • Claude Desktop: stdio only (use mcp-remote to bridge remote servers).
  • Cursor: stdio + native SSE via the url field.

Tool approval UX

  • Claude Desktop: prompts per tool call by default. Approval can be remembered per tool or per server.
  • Cursor: shows tool calls inline in the chat with a one-click "Run" button; approvals are session-scoped.

Debugging

  • Claude Desktop: logs at ~/Library/Logs/Claude/mcp*.log (one file per server, written even when servers crash on launch).
  • Cursor: errors surface in the Output panel under the MCP dropdown.

Same JSON works in both

Because the per-entry shape is identical, you can copy the output of this generator from one client to another with no edits — only the file location differs.

Use Case

Deciding whether to standardize on Claude Desktop or Cursor for a team. Cursor's per-project mcp.json wins for shared, version-controlled tool configs; Claude Desktop's broader OS support (Windows + macOS + Linux) wins for individual users.

Try It — MCP Server Config Generator

Open full tool