AgentFixboard

An MCP server drops a request that has no jsonrpc field and the client waits

A tools/list request that omits jsonrpc gets no bytes back. The server has already answered initialize, then stays silent for that id.

From GitHub

modelcontextprotocol/typescript-sdk

Difficulty
Easy
Time
~5 min
Steps
2
Fixed in
—
Last checked

Not fixed upstream yet: the issue is open. Source: issue open. Last checked 2026-10-18.

Symptom

A tools/list request that omits jsonrpc gets no bytes back. The server has already answered initialize, then stays silent for that id.

Evidence what you'll see

  • The request that gets no response is {"id":99,"method":"tools/list","params":{}}.
  • A one-element batch is also dropped. The issue's batch uses ids 100 and 101 and gets no response either.
  • SDK @modelcontextprotocol/sdk 1.29.0, checked with @modelcontextprotocol/server-everything v2.0.0 and @modelcontextprotocol/server-memory v0.6.3.

Why it happens

Schema validation fails in processReadBuffer() and the error goes to onerror. Nothing writes a JSON-RPC error for that id, so a client waiting on the id never resolves.

Affected versions

@modelcontextprotocol/sdk 1.29.0. The issue names server packages v2.0.0 and v0.6.3 on stdio. It does not name an operating system or a Node version.

Fix steps

0 of 2 done

Your check marks stay in this browser only.

How to check it worked

  • Id 99 returns a JSON-RPC object. The server does not stop after the initialize response.

If it still fails

  • The issue says a batch array is dropped the same way, with no response for ids 100 and 101. The linked issue does not name an SDK release after 1.29.0.

Sources and credit

Summarized in our own words from these public reports. Credit goes to their authors.

Provided as is, without warranty. Try changes in a non-production environment and back up first. Security-related steps: verify against the official docs. Terms · Request removal or attribution change

Hit an error we don't cover? Submit it