All tools

Claude Code .mcp.json Validator

Paste your project-level .mcp.json, user-level ~/.claude.json, or managed-mcp.json to validate the schema.

Your config never leaves your browser. No upload. No login.
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 enum: stdio / http / sse (when set)
  • Per-server command / url / args shape
  • 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?
Three scopes: (1) Project — `.mcp.json` at your project root (committed to your repo for team sharing). (2) User — added via `claude mcp add --user <name> ...` CLI; persisted in `~/.claude.json`. (3) Local — added via `claude mcp add --local`. There's also `managed-mcp.json` for enterprise-managed servers (read-only). The validator works on the schema in any of these.
What's the difference between .mcp.json (project) and ~/.claude.json (user)?
`.mcp.json` is for project-specific MCP servers your team commits to git. `~/.claude.json` is Claude Code's global state — your authentication, user-scoped MCP servers, and local-scope MCPs all live there. Don't edit ~/.claude.json directly; use `claude mcp add --user` or `--local`. Edit `.mcp.json` directly per project.
Do I need to set "type" on every server entry?
Claude Code's docs include `type` in every documented example ("stdio", "http", or "sse"). It's not strictly required for stdio (Claude Code infers from `command` vs `url`), but setting it explicitly is the documented pattern and avoids ambiguity. The validator flags invalid `type` values but doesn't error on absent `type`.
How does Claude Code's OAuth work for remote MCP servers?
Claude Code supports an `oauth` block on remote MCP server entries with fields like `clientId`, `callbackPort`, and `authServerMetadataUrl`. When you connect, Claude Code opens a browser-based OAuth flow and stores the token in your platform keychain. The validator checks structural fields; OAuth flow correctness is a runtime concern.
Why is the file called .mcp.json (with a dot) instead of mcp.json?
The leading dot makes the file hidden by default on Unix systems (macOS/Linux), matching the convention for tool-config dotfiles (.gitignore, .npmrc, etc.). On Windows it's just a filename; the dot is decorative. If you can't see it in Finder, press Cmd+Shift+. (period) to toggle hidden files.
Can I share a Claude Desktop config with Claude Code?
Mostly yes — the schema is identical (mcpServers + command/args/env or url/headers). The differences: (1) filename — claude_desktop_config.json vs .mcp.json; (2) Claude Code adds optional `oauth` and `authServerMetadataUrl` for remote servers; (3) Claude Code's CLI (claude mcp add) is the recommended way to manage user/local-scope servers. The validator checks the shared shape.
Is my config sent to your server?
No. The validator runs entirely in your browser as JavaScript. Your config — and any API keys/tokens it contains — never leaves your machine. Open DevTools → Network during validation to confirm zero outbound requests.

Spotted a check we should add?

Open an issue on the directory, or browse the 2,000+ MCP servers.