Skip to content

Method not found (-32601)

Spec
2026-07-28
Evidence
E2Reproducedarm64
TypeScript SDK (server)
@modelcontextprotocol/server@2.4.0
Python SDK
mcp@2.3.0
Verified

-32601 is the standard JSON-RPC code for a method the receiver does not implement. Over Streamable HTTP, the 2026-07-28 specification also requires HTTP 404. We called foo/bar:

Server Response
TypeScript SDK v2 404 {"jsonrpc":"2.0","id":1,"error":{"code":-32601,"message":"Method not found"}}
Python SDK 2.3.0 404 {"jsonrpc":"2.0","id":1,"error":{"code":-32601,"message":"Method not found","data":"foo/bar"}}

We also called prompts/list on a server that has no prompts. The TypeScript v1 client sent it and reported MCP error -32601: Method not found. The v2 client did not send it at all: it logged Client.listPrompts() called but server does not advertise prompts capability - returning empty list and returned an empty list.

A server answers prompts/list only if it has prompts, resources/read only if it has resources, and so on. If the client calls something the server did not declare in its capabilities, -32601 is the correct answer. Check the capabilities in the server’s server/discover result (2026-07-28) or initialize result (2025), for example with the Inspector. Clients should not call features the server did not declare, so this usually points at the client.

The 2026-07-28 changelog removes ping, logging/setLevel and notifications/roots/list_changed, and replaces resources/subscribe and resources/unsubscribe with subscriptions/listen. Old client code that calls them against a 2026-07-28 connection can get -32601. See Migrating from 2025-11-25 to 2026-07-28.

In hand-written requests: tools/call, not tool/call or tools.call. Over HTTP the Mcp-Method header must carry the same name.

Sources

MCPDev is community documentation. It is not affiliated with the Model Context Protocol project or with the vendors of the clients it covers.