Claude Code .mcp.json Validator
Paste your project-level .mcp.json, user-level ~/.claude.json, or managed-mcp.json to validate the schema.
.mcp.jsonPaste 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
mcpServersobject shape - •
typeenum: stdio / http / sse (when set) - •Per-server
command/url/argsshape - •Env-var values must be strings
- •Windows backslash escapes
- •Insecure HTTP for non-local URLs
- •API key / token leak detection
- •Duplicate / case-conflict server names
- •Both transports set (command + url collision)
- •Common command typos (npx, uvx, node, python)
Why this exists
Claude Code's MCP config follows Anthropic's MCP schema with three scopes (project / user / local) and an optional managed scope. The most common silent failure: the user edits the wrong scope. Server-team-shared servers belong in.mcp.json (committed); personal servers belong in user-scope (added via claude mcp add --user).
The schema itself is identical to Claude Desktop's plus an optional oauth block for remote servers and type shown explicitly in every documented example. The validator catches structural issues that prevent the file from loading.
Frequently asked
Where is Claude Code's .mcp.json?▼
What's the difference between .mcp.json (project) and ~/.claude.json (user)?▼
Do I need to set "type" on every server entry?▼
How does Claude Code's OAuth work for remote MCP servers?▼
Why is the file called .mcp.json (with a dot) instead of mcp.json?▼
Can I share a Claude Desktop config with Claude Code?▼
Is my config sent to your server?▼
Spotted a check we should add?
Open an issue on the directory, or browse the 2,000+ MCP servers.