MCP Configuration Validator
Check JSON or TOML MCP configuration offline, locate field and transport errors, and preview explicitly supported mappings between Claude Code, Codex and Cursor.
Validate the actual source format
Select Claude Code JSON, Codex TOML or Cursor JSON and choose a destination. Paste redacted MCP configuration up to 131,072 characters, then validate and convert. Errors identify field paths, object/array types, local/remote mixing, missing Claude remote types and environment-reference issues. Duplicate JSON keys are rejected.
JSON clients use mcpServers; Codex uses mcp_servers. Claude Code references use
#123;NAME} or a documented default. Cursor references use #123;env:NAME} and client path variables. Codex uses env_vars, env_http_headers and bearer_token_env_var for the covered credential mappings.Original redacted sample
{
"mcpServers": {
"local": {
"command": "npx",
"args": [
"-y",
"[email protected]",
"mcp"
],
"env": {
"REA_LOG_LEVEL": "warn"
}
},
"remote": {
"type": "http",
"url": "https://mcp.example.com/mcp",
"headers": {
"Authorization": "Bearer ${MCP_TOKEN}"
}
}
}
}The remote address is a placeholder; no secret or live endpoint is required.
Portable subset and explicit blocked entries
Commands, argument arrays, static environment values, exact environment pass-through and HTTP authentication headers have explicit mappings. Supported tool timeouts translate seconds and milliseconds. Unknown server fields and nonportable defaults/path variables, authorization settings, tool allow/deny lists, startup deadlines, cwd and envFile block that server from cross-client output. Portable peers can still be generated, with every omitted server listed. Same-client snippets retain server fields; unrelated top-level settings are always excluded.
A Cursor URL without explicit transport is not relabeled as HTTP or SSE. Streamable HTTP, SSE and WebSocket need their actual client/protocol support. Generated output is an MCP-only merge snippet, not a replacement for your full configuration.
Checks use reviewed field subsets, not a complete client runtime schema. No process, file, endpoint or environment value is probed. Text is not stored or sent to a server, and no command or connection is executed. Documentation reviewed 2026-10-18: Claude Code · JSON · Codex · TOML · Cursor · JSON.
Downloadable original CC0 import sample
Deliberately invalid Claude Code JSON: args is a string, not an array. Change it to ["--stdio"] to fix that structure. The executable path is fictional; this is a lint example, not an installable configuration.