All tools

Claude Desktop Config Validator

Paste your claude_desktop_config.json to find out why MCP servers aren't loading. Twelve deterministic checks. Runs in your browser.

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

Paste your claude_desktop_config.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 key shape
  • 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
  • Common command typos (npx, uvx, node, python on PATH)
  • Both transports set (command + url collision)
  • MSIX path advisory (Windows Microsoft Store install)

Why this exists

GitHub issue #26073 has been open since February 2026. The reporter writes:"Users can spend hours troubleshooting (verifying JSON syntax, testing Node.js, checking paths) without finding the issue. The 'Edit Config' button confidently opens the wrong file, leading users to believe they're editing the right config."The thread has 27+ thumbs-up. A reply from peternoyes: "This particular issue is a showstopper for an upcoming product release of ours and I am trying any and all channels to get in touch with Anthropic to get this addressed."

That's not the only one. Issue #34359 ("Claude Desktop wipes claude_desktop_config.json on Windows"), issue #5563 ("Invalid or malformed JSON message isn't specific enough"), issue #38830 (MSIX silent ignore) — the same pattern. Valid JSON, server never loads, no error shown.

The community fix is brittle: paste the JSON into python3 -m json.tool, verify the path manually, manually grep for trailing commas, cross-reference Microsoft Store sandboxing. We bundled all of that into one paste-box that runs in your browser.

Frequently asked

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. You can verify this by opening DevTools → Network tab while the validator runs: there are no outbound requests during validation.
Why isn't Claude Desktop loading my MCP servers even though my config looks fine?
The single biggest cause in 2026 is the Microsoft Store (MSIX) installation on Windows. Claude Desktop's 'Edit Config' button has been observed opening %APPDATA%\Claude\claude_desktop_config.json, but the running app actually reads from a sandboxed path under %LOCALAPPDATA%\Packages\Anthropic.Claude_<id>\LocalCache\Local\Claude\. This is GitHub issue #26073 and has been open for months. Other common causes: trailing commas in JSON, smart quotes pasted from Notion or Word, env-var values that aren't strings, and Windows backslashes in paths that aren't double-escaped. The validator checks all of these.
Where is claude_desktop_config.json on my system?
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json. Windows (standard install): %APPDATA%\Claude\claude_desktop_config.json. Windows (Microsoft Store / MSIX install): %LOCALAPPDATA%\Packages\Anthropic.Claude_<package-id>\LocalCache\Local\Claude\claude_desktop_config.json. To find the MSIX path, run in PowerShell: Get-ChildItem -Path "$env:LOCALAPPDATA\Packages\" -Filter "*Anthropic*" -Recurse -Depth 4.
What's the correct shape of claude_desktop_config.json?
It must be a JSON object with a top-level "mcpServers" key, whose value is another object mapping server names to their config. Each server config has either a "command" (for stdio servers) or a "url" (for remote HTTP/SSE servers), with optional "args" (array of strings) and "env" (object of string-valued env vars). Example: {"mcpServers":{"filesystem":{"command":"npx","args":["-y","@modelcontextprotocol/server-filesystem","/path"]}}}.
Why do trailing commas break JSON?
JSON does not allow trailing commas. While most modern programming languages do (and editors like VS Code accept them in JSON5/JSONC), strict JSON.parse rejects `{"a": 1,}` or `[1, 2, 3,]`. Claude Desktop uses strict JSON parsing, so a trailing comma anywhere in your file will cause it to silently refuse to load any MCP servers. The validator catches this before you commit.
Why does the validator flag smart quotes?
Curly/smart quotes (", ", ', ') often get autoinserted when you paste from Notion, Word, Google Docs, or some chat clients. They look almost identical to ASCII straight quotes (") but are different Unicode codepoints, and JSON parsers reject them. If you paste config snippets from documentation or blog posts, this is the #1 silent failure cause.
What env vars should and shouldn't I put in this file?
API keys, tokens, and other secrets needed by your MCP servers are commonly stored in the env object — that's the documented pattern. The risk: this file lives unencrypted on your disk and is loaded by every Claude Desktop session. Consider these defenses: (1) Use a separate token per environment with the minimum scope necessary. (2) Restrict file permissions (chmod 600 on macOS/Linux). (3) For corporate/enterprise use, prefer remote MCP servers with OAuth so secrets never live on your machine. The validator's secret-leak detection is for awareness, not blocking — your config still works.
Does this work for Claude Code's mcp.json too?
Mostly yes. Claude Code uses .mcp.json (in your project root) or .claude/settings.local.json instead of claude_desktop_config.json, but the schema for the mcpServers section is identical. Paste either; the same 12 checks apply. The MSIX advisory is Claude Desktop-specific and you can ignore it for Claude Code.
Can I run this validator offline / on a corporate machine that blocks third-party sites?
The validator is a static page — once you load it, it runs without network. If your corporate firewall blocks mcp.directory, you can save the page locally (Cmd/Ctrl+S → "Webpage, Complete") and reopen it offline. We do not embed any tracking scripts beyond standard analytics on the surrounding page; the validator script itself makes no network calls.
What if the validator says my config is fine but Claude Desktop still doesn't load my MCP servers?
Three things to check next: (1) Quit and fully restart Claude Desktop — config is only re-read at app startup. (2) Tail the MCP log: macOS at ~/Library/Logs/Claude/mcp-server-<name>.log; Windows at %APPDATA%\Claude\logs\ (or the MSIX equivalent path). (3) If using `npx`, ensure the package actually exists and Node/npm are on Claude Desktop's PATH (which differs from your shell). If logs show 'spawn ENOENT', it's a PATH issue.
Is this an official Anthropic tool?
No. MCP.Directory is an independent directory of MCP servers and Claude Skills. We built this validator after seeing GitHub issue #26073 and dozens of duplicate r/ClaudeAI threads where users spent hours debugging silent config failures. Anthropic's official MCP Inspector at modelcontextprotocol.io is a different tool — it tests live MCP servers; this validator checks your static config file before you launch.

Spotted a check we should add?

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