Cursor MCP Not Working
Quick fix: Cursor reads MCP config from ~/.cursor/mcp.json (global) or .cursor/mcp.json in your project root — not from Claude Desktop's config file. If MCP is not working in Cursor, the first thing to check is that your config is at the right path with valid JSON and absolute command paths.
In this guide
Config file location in Cursor
Cursor MCP uses a different config file from Claude Desktop. There are two locations:
- Global (all projects):
~/.cursor/mcp.json - Project-level (one project):
.cursor/mcp.jsonin your project root
The project-level config takes precedence over the global one. If you have both, Cursor will use the project config for that project and ignore the global one.
~/.cursor/mcp.json while your project has a .cursor/mcp.json that overrides it. Changes to the global config have no effect for that project.
Create the global config if it does not exist:
# macOS/Linux mkdir -p ~/.cursor touch ~/.cursor/mcp.json # Windows New-Item -ItemType Directory -Force "$env:USERPROFILE\.cursor" New-Item -ItemType File "$env:USERPROFILE\.cursor\mcp.json"
Correct config format
Cursor's mcp.json uses the same mcpServers format as Claude Desktop:
{
"mcpServers": {
"filesystem": {
"command": "/usr/local/bin/npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/you/projects"]
},
"github": {
"command": "/usr/local/bin/npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_yourtoken"
}
}
}
}
which npx (macOS/Linux) or where npx (Windows) to get the path.
Tools not showing up in Cursor
Work through this checklist:
1. Confirm the config file path
# Check if global config exists and has content cat ~/.cursor/mcp.json # Check if project config exists cat .cursor/mcp.json
2. Validate the JSON
# macOS/Linux cat ~/.cursor/mcp.json | python3 -m json.tool # Windows Get-Content "$env:USERPROFILE\.cursor\mcp.json" | ConvertFrom-Json
3. Use absolute paths
Replace bare npx or uvx with the full path from which npx.
4. Check Cursor version
MCP support in Cursor has improved significantly over time. Open Cursor → Help → About and confirm you are on a recent version. Versions from mid-2024 onwards have more reliable MCP support.
5. Enable MCP in Cursor settings
In some Cursor versions, MCP must be enabled in settings. Open Cursor Settings (Cmd+, / Ctrl+,) and search for "MCP" — confirm it is toggled on.
How to reload MCP in Cursor
After editing mcp.json, Cursor may not auto-detect the change. Options:
- Open the Cursor MCP settings panel (Settings → search "MCP") and click the reload/refresh button if available
- Use the command palette (
Cmd+Shift+P/Ctrl+Shift+P) and search for "MCP" to find reload options - Fully restart Cursor: close all windows and reopen
Debugging Cursor MCP errors
Cursor logs MCP server output. To find them:
- Open the Output panel: View → Output (or
Cmd+Shift+U) - In the dropdown, look for "MCP" or the server name
- Check for the same error patterns:
spawn ENOENT, tracebacks,401/403errors
You can also run the server command directly in Cursor's integrated terminal to see its output without any MCP layer:
/usr/local/bin/npx -y @modelcontextprotocol/server-filesystem /Users/you/projects
If it errors there, fix the error. If it runs fine, the issue is in how Cursor is invoking it (path, env, args).
Cursor vs Claude Desktop MCP differences
- Config file path: Cursor uses
~/.cursor/mcp.json; Claude Desktop uses~/Library/Application Support/Claude/claude_desktop_config.json - Project-level config: Cursor supports per-project
.cursor/mcp.json; Claude Desktop has only a global config - Log location: Cursor logs are in the Output panel; Claude Desktop logs are in
~/Library/Logs/Claude/ - Reload mechanism: Cursor has an in-IDE reload; Claude Desktop requires a full quit and restart
- Server format: the
mcpServersentry format is identical between the two
Audit your config: the MCP Config Auditor works with both Cursor and Claude Desktop configs — paste your mcp.json to get a per-server report of issues. 100% client-side.
FAQ
Global: ~/.cursor/mcp.json. Project-level: .cursor/mcp.json in the project root. The project-level config takes precedence. This is different from Claude Desktop's config location.
Same mcpServers format as Claude Desktop: {"mcpServers": {"name": {"command": "/absolute/path", "args": [...], "env": {...}}}}. Use absolute paths for command.
Most likely: wrong config file path, JSON syntax error, bare npx/uvx command needing an absolute path, or Cursor needs to be reloaded/restarted after the config change. Check the MCP settings panel and Output panel in Cursor for errors.
No, different file paths. Cursor uses ~/.cursor/mcp.json, Claude Desktop uses ~/Library/Application Support/Claude/claude_desktop_config.json. The server entry format inside mcpServers is the same, so you can copy entries between them.