All tools

Cursor MCP Config Validator

Paste your Cursor mcp.json (global at ~/.cursor/mcp.json or project at .cursor/mcp.json) to find why MCP servers aren't loading. Runs in your browser.

Your config never leaves your browser. No upload. No login. No tracking of your data.
Paste your mcp.json
Your config never leaves your browser
0 chars

Paste your mcp.json above to run deterministic checks.

Or click to see how it works.

What this validator checks

  • JSON syntax + line/column on errors
  • UTF-8 BOM, smart quotes, trailing commas
  • Top-level mcpServers object shape
  • type:"stdio" field on stdio entries (Cursor docs)
  • Per-server command / url / args shape
  • Env-var values must be strings (not booleans or numbers)
  • Windows backslash escapes in paths
  • Insecure HTTP for non-local URLs
  • API key / token leak detection (warn-only)
  • Duplicate / case-conflict server names
  • Both transports set (command + url collision)
  • Common command typos (npx, uvx, node, python on PATH)

Why this exists

Cursor's MCP support uses a documented schema with stricter conventions than Claude Desktop's — type: "stdio" is documented as the way to declare stdio transport, and the file lives at one of two paths (~/.cursor/mcp.json for all projects or .cursor/mcp.json for one).

In practice, the most common silent failure is editing the wrong scope: a server is in your global config but you expected the project to inherit it (or vice versa). The second most common is JSON syntax errors after pasting a snippet from documentation — smart quotes from Notion, trailing commas from JS habit. The validator catches both before you launch.

Frequently asked

Where does Cursor read mcp.json from?
Cursor reads two scopes: global at ~/.cursor/mcp.json (applies to all projects) and project at .cursor/mcp.json in your repo root (applies only to that project). Project-level entries override global ones with the same name. The path is the same on macOS, Linux, and Windows — relative to your home directory.
Why does the validator flag missing "type":"stdio"?
Cursor's official MCP docs (cursor.com/docs/context/mcp) document `type: "stdio"` as the field declaring stdio transport. While Cursor still infers transport from `command` vs `url` for backward compatibility, setting `type: "stdio"` explicitly is the documented pattern and future-proofs your config.
Can I use my Claude Desktop config in Cursor?
Mostly yes — Cursor uses the same top-level `mcpServers` key and the same `command` / `args` / `env` structure. The differences are: (1) Cursor's docs prescribe `type: "stdio"` for stdio entries; (2) Cursor adds optional `envFile`, `headers`, and an `auth` block for OAuth; (3) Cursor doesn't have Claude Desktop's MSIX path issue. Copy your servers, then add `type: "stdio"` to each.
Does Cursor support remote MCP servers with OAuth?
Yes. Use a `url` field with an http(s) endpoint. For OAuth-protected servers, configure the `auth` block with `clientId`, `clientSecret`, and `scopes` per Cursor's docs. The validator checks the URL shape; OAuth flow correctness is a runtime concern Cursor handles.
Why isn't my Cursor MCP server connecting after I edit mcp.json?
Three things to check: (1) Restart Cursor — config is read at app startup; (2) confirm you're editing the right file (project-level overrides global with the same server name); (3) verify the `command` is on Cursor's PATH (use the absolute path if unsure — Cursor's PATH on macOS doesn't include Homebrew installs by default). The validator catches the structural causes; PATH issues need terminal verification.
Is my config sent to your server?
No. The validator runs entirely in your browser as JavaScript. Your config — and any API keys it contains — never leaves your machine. Open DevTools → Network while validating to confirm: zero outbound requests during validation.
Does this validator work for the Cursor `~/.cursor/mcp.json` AND project `.cursor/mcp.json`?
Yes — both files use identical schemas (top-level `mcpServers` mapping server names to configs). Paste either; the same checks apply. The validator is path-agnostic.

Spotted a check we should add?

Open an issue on the directory, or browse the 2,000+ MCP servers for ones with known good configs you can copy.