MCP Connection Troubleshooting: Config, Transport and Initialization

A configuration can be valid JSON and still fail to connect. Start by separating the client configuration, the transport, and the protocol exchange. Each needs different evidence.

Reviewed 19 October 2026. Examples are synthetic; no customer data or production outcomes.

Open the free MCP Connection Kit

Start with evidence

  1. Record the client and version, the configuration file it actually loads, and whether the server is remote HTTP or a local process. Keep tokens and private paths out of shared notes.
  2. Check the configuration structure before changing the network. The checker accepts mcpServers or servers, but that does not make either schema valid for every client.
  3. For an authorized connection test, retain the HTTP status and content type or local-process exit status separately from the JSON-RPC body. Never test a third-party endpoint without permission.

Worked examples

These examples exercise the current tool logic. Load the matching case on the tool page to reproduce its result. Downloads contain only the fixed synthetic example, never your pasted input.

Remote HTTP configuration

Structure passes. The campaign query produces a reminder to keep secrets out of URLs.

Example JSON
{
  "mcpServers": {
    "knownfix": {
      "url": "https://knownfix-backend-28.b-hash88.deno.net/mcp?utm_source=site-kit&utm_campaign=mcp-connect-20261010"
    }
  }
}

Download remote http configuration JSON

Local stdio configuration

Structure passes with one stdio server. The example file is illustrative and is not supplied or executed.

Example JSON
{
  "mcpServers": {
    "example": {
      "command": "node",
      "args": [
        "./example-server.mjs"
      ]
    }
  }
}

Download local stdio configuration JSON

Conflicting transports

Needs attention: choose url or command, not both.

Example JSON
{
  "mcpServers": {
    "example": {
      "url": "https://knownfix-backend-28.b-hash88.deno.net/mcp",
      "command": "node"
    }
  }
}

Download conflicting transports JSON

Diagnostic decisions

JSON parses, but the client ignores it
Confirm the client-specific schema and file location. The kit's VS Code example uses a servers object; its generic remote example uses mcpServers. A request body with method and params is not a client configuration.
A local process starts and immediately exits
Check the actual command, working directory, dependencies and stderr in your own environment. The synthetic stdio example below only demonstrates shape; it does not provide a server file.
HTTP responds, but discovery fails
Inspect initialization first. For the pinned 2025-06-18 protocol example, send initialize, verify the negotiated version/capabilities, then send notifications/initialized before normal operations. Preserve any required session identifier and negotiated protocol-version header in the client; do not publish them.

What this does not establish

A green structure check does not verify DNS, TLS, authentication, process execution, client support, session state or tool discovery. The page sends no MCP requests. Its HTTP request examples are separate bodies, not a complete session runner. Protocol 2025-06-18 is the kit's pinned example, not a claim about the newest revision.

Optional analytics records sanitized page paths and fixed action labels after consent. The tools keep your input local. An action count is not a person, installation, resolved incident or sale.

Primary references

Continue with KnownFix