T
THINKFORU
Submit Feedback

MCP Config JSON Validator: Check Server Settings

MCP Config JSON Validator: Check Server Settings

MCP config JSON validator

Save on Google

Free online MCP config checker. Paste your claude_desktop_config.json, .cursor/mcp.json or .mcp.json and see JSON errors and server problems with line numbers. Everything runs in your browser. Nothing is uploaded.

Inputs

Paste your MCP config

Output

Results

    AI Crawler & Agent Files Utilities

    Tool Link Purpose & Description
    robots.txt AI Bot Generator → Generate rules to block, allow, or limit AI crawlers like GPTBot, ClaudeBot, and CCBot.
    llms.txt Generator → Build clean, structured Markdown maps to help LLMs understand your website content.
    llms.txt Validator → Lint and validate llms.txt syntax, check broken links, and verify standard formatting.
    agents.md Builder → Create configuration files for AI coding agents with tools, rules, and system behavior.

    What does an MCP config validator check?

    MCP (Model Context Protocol) clients read a JSON file that lists the servers they should start or connect to. A small mistake, such as a trailing comma, a number in env, or a full command line in command, usually makes a server silently fail. This validator catches those mistakes with line numbers before you restart your client. Clients differ in details, so treat the results as guidance and check your client’s documentation.

    MCP config reference: 60 rules and settings

    Severity is a recommended level. The validator above checks JSON syntax and server settings. Location and client rows are reference only, and rows marked Unverified are items I could not confirm, so check your client’s documentation.

    Showing 60 of 60 rules & specifications
    Rule / Setting / QuerySpecification & FixSeverity LevelScope / Category
    What is an MCP config file?A JSON file that an MCP client reads to learn which servers to start or connect to. Each client defines its own file name and location.ReferenceFile & Location
    Claude Desktop config fileclaude_desktop_config.json. On macOS it sits in ~/Library/Application Support/Claude/, and on Windows in %APPDATA%\Claude\.ReferenceFile & Location
    Cursor MCP config location.cursor/mcp.json inside a project, or ~/.cursor/mcp.json for all projects.ReferenceFile & Location
    Claude Code MCP configA .mcp.json file in the project root holds shared servers. You can also add servers with the claude mcp add command.ReferenceFile & Location
    VS Code MCP config.vscode/mcp.json, with a top-level servers key instead of mcpServers.ReferenceFile & Location
    Windsurf MCP config locationAs far as I know it is ~/.codeium/windsurf/mcp_config.json. Check Windsurf’s documentation for the current path.UnverifiedFile & Location
    Cline MCP settings fileCline keeps servers in cline_mcp_settings.json, which you open from its MCP Servers panel. Check Cline’s documentation to confirm.UnverifiedFile & Location
    mcpServers vs servers keyMost clients use mcpServers. VS Code uses servers. This validator accepts either and warns if both exist.ReferenceFile & Location
    Top-level value must be an objectThe file must start with {. An array or a string at the top level is invalid.Fatal ErrorFile & Location
    Trailing comma errorA comma after the last item, such as "a": 1,}, is invalid. Fix: remove the last comma.Fatal ErrorJSON Syntax
    Comments in JSON// and /* */ comments are not allowed. Fix: delete them, or keep notes in a separate file.Fatal ErrorJSON Syntax
    Single quotes errorUse double quotes: "command", not 'command'.Fatal ErrorJSON Syntax
    Curly quotes from copy-pasteQuotes copied from a web page or a document can be curly (“ ”). Fix: replace them with straight " quotes.Fatal ErrorJSON Syntax
    Missing comma between serversEvery server entry except the last needs a comma after its closing brace. The error line is usually the one after the missing comma.Fatal ErrorJSON Syntax
    Unclosed bracket or braceEach { needs a } and each [ needs a ]. Format the file in an editor to find the mismatch.Fatal ErrorJSON Syntax
    Windows path backslashesWrite "C:\\Users\\me" with doubled backslashes, or use forward slashes: "C:/Users/me".Fatal ErrorJSON Syntax
    Duplicate server namesIf two servers share a name, JSON keeps only the last one. Fix: give each server a unique name.Fatal ErrorJSON Syntax
    BOM at the start of the fileA byte order mark can break strict parsers. Fix: save as UTF-8 without BOM.WarningJSON Syntax
    Unquoted keysKeys must be in double quotes. {command: "npx"} is JavaScript, not JSON.Fatal ErrorJSON Syntax
    The command fieldThe program to run for a local server, for example "command": "npx".Fatal ErrorLocal Servers
    The args fieldAn array of strings, one item per argument: "args": ["-y", "package-name"].Fatal ErrorLocal Servers
    Full command line in command"command": "npx -y pkg" is wrong. Fix: "command": "npx", "args": ["-y", "pkg"].WarningLocal Servers
    Flag and value in one arg"--port 3000" is one argument. Fix: "--port", "3000" as two items.WarningLocal Servers
    Numbers in argsEvery item in args must be a string. Write "3000", not 3000.Fatal ErrorLocal Servers
    npx needs -yAdd "-y" to args so npx does not stop to ask before installing a package. This validator shows it as a tip.Best PracticeLocal Servers
    Python servers with uvxMany Python servers run with "command": "uvx" and the package name in args, for example ["mcp-server-git"].ReferenceLocal Servers
    Docker-based serversUse "command": "docker" with "args": ["run", "-i", "--rm", "image-name"]. The -i keeps stdin open for the server.ReferenceLocal Servers
    Node scripts with absolute pathFor your own server, use an absolute path: "args": ["/full/path/to/server.js"]. Relative paths depend on the client’s working directory.Best PracticeLocal Servers
    Program not found (PATH)Apps started from a menu or dock may not inherit your shell PATH, so tools from nvm or pyenv are missed. Fix: use the full path to the executable.WarningLocal Servers
    The cwd fieldSome clients support "cwd" to set the working directory. Check your client’s documentation before relying on it.UnverifiedLocal Servers
    Logs on stdout break stdio serversA stdio server must write only protocol messages to stdout. Send logs to stderr.WarningLocal Servers
    The url fieldRemote servers use "url": "https://example.com/mcp". It must be an absolute URL.Fatal ErrorRemote Servers
    The type fieldMost clients accept "type": "stdio", "http" or "sse". This validator warns about other values.WarningRemote Servers
    type stdio with a url"type": "stdio" needs command. Fix: remove the type or switch to http or sse.Fatal ErrorRemote Servers
    type http or sse with a command"type": "http" or "sse" needs url. Fix: add a url or set the type to stdio.Fatal ErrorRemote Servers
    Both command and urlUse command for a local server or url for a remote one, not both.Fatal ErrorRemote Servers
    Streamable HTTP vs SSENewer MCP specification revisions replace the older HTTP+SSE transport with Streamable HTTP. Check which one your server and client support.ReferenceRemote Servers
    http instead of httpsUse https:// for remote servers. This validator allows http:// only for localhost.WarningRemote Servers
    The headers fieldAn object of string values, for example "headers": {"Authorization": "Bearer ..."}.Fatal ErrorRemote Servers
    The serverUrl keySome clients use serverUrl instead of url. This validator accepts it and shows a tip.ReferenceRemote Servers
    OAuth sign-in for remote serversSome clients handle OAuth in their own interface instead of in the JSON file. Check your client’s documentation.UnverifiedRemote Servers
    Local HTTP servershttp://localhost:3000/mcp is fine for development. The https warning does not apply to localhost.ReferenceRemote Servers
    The env fieldAn object of string values: "env": {"API_KEY": "value"}.Fatal ErrorSecrets & Security
    Booleans and numbers in env"DEBUG": true is invalid for env. Fix: "DEBUG": "true".Fatal ErrorSecrets & Security
    Hard-coded secretsTokens and API keys written in the file can leak. This validator warns about secret-looking values in env and headers.WarningSecrets & Security
    Committing .mcp.json to GitProject config files are often committed. Keep secrets out of them, or add the file to .gitignore.WarningSecrets & Security
    Environment variable expansionSome clients can read values from environment variables, with different syntax. Check your client’s documentation before using ${VAR}.UnverifiedSecrets & Security
    VS Code inputs for secretsVS Code’s mcp.json supports an inputs section that prompts for a secret instead of storing it in the file.ReferenceSecrets & Security
    Limit filesystem server pathsGive a filesystem server only the folders it needs. Avoid / or your whole home folder.Best PracticeSecrets & Security
    Only install trusted serversA local MCP server runs code with your user permissions. Install servers only from sources you trust.Best PracticeSecrets & Security
    Changes not picked upMany clients read the file only at startup. Fully quit and reopen the client after editing it.WarningTroubleshooting
    Where to find Claude Desktop logsClaude Desktop writes MCP logs to a Logs folder, for example ~/Library/Logs/Claude on macOS. Check its documentation for your system.UnverifiedTroubleshooting
    Test a server with MCP InspectorRun npx @modelcontextprotocol/inspector to try a server outside any client and see its tools.ReferenceTroubleshooting
    Server name rulesUse short names with letters, numbers, - and _. This validator shows a tip for spaces or special characters.Best PracticeTroubleshooting
    Too many servers or toolsMany servers add many tools and slow startup. Enable only what you need.Best PracticeTroubleshooting
    Disabling a serverSome clients support "disabled": true. Others need you to delete the entry. Check your client’s documentation.UnverifiedTroubleshooting
    Global vs project configA global file applies to every project. A project file applies only there. Put personal servers in the global file.ReferenceTroubleshooting
    Pin package versionsUse package@1.2.3 in args so an update does not change behavior unexpectedly.Best PracticeTroubleshooting
    Validate the config in CIRun node -e "JSON.parse(require('fs').readFileSync('.mcp.json','utf8'))" in a check to catch syntax errors before merging.Best PracticeTroubleshooting
    Share a config safelyRemove API keys and tokens first. The Share link button puts your text in the URL.Best PracticeTroubleshooting

    FAQ

    QuestionAnswer
    How do I validate an MCP config JSON file?Paste the file into the validator above. It first checks that the JSON is valid and shows the line and column of any syntax error. Then it checks the server settings: command or url, args, env, headers and type. Results appear as you type.
    What is the difference between mcpServers and servers?As far as I know, Claude Desktop, Cursor, Claude Code, Windsurf and Cline use a top-level mcpServers key, while VS Code’s mcp.json uses servers. Check your client’s documentation, because each client defines its own format.
    Where is the MCP config file located?It depends on the client. Claude Desktop uses claude_desktop_config.json, Cursor uses .cursor/mcp.json, Claude Code uses .mcp.json in a project, and VS Code uses .vscode/mcp.json. Check your client’s documentation for the exact path on your system.
    Why does my MCP server fail to start?Common causes are invalid JSON, a full command line placed in the command field, missing -y when using npx, a program that is not on the PATH of the app, and env values that are not strings. This validator flags all of these except a missing PATH program.
    Can an MCP config have comments or trailing commas?No. The file must be strict JSON, so comments, trailing commas and single quotes cause errors. Remove them, or use the Format JSON button on a valid file to tidy it.
    Is it safe to paste my MCP config here?The check runs in your browser and nothing is uploaded. Still, remove API keys and tokens first. The Share link button puts your text in the URL, so never share a link that contains secrets.