Image: GitHub
Why it mattersAn unknown-tool call now returns JSON-RPC -32602 instead of a success-with-isError, which breaks any client that was reading isError to tell the two apart.
Anyone running a Claude Code, Cursor or Codex setup against the four reference TypeScript servers now has to be on Node 24. The Model Context Protocol team published v2.0.0 of its reference server collection, moving every server to the modern-era spec and raising the Node floor on the TypeScript side. The project is at github.com/modelcontextprotocol/servers and the release notes list the specific changes for each package.
The release ships new major versions of the four TypeScript servers (@modelcontextprotocol/server-everything, server-filesystem, server-memory and server-sequential-thinking, all 2.0.0 on npm) and new CalVer builds of the three Python servers (mcp-server-fetch, mcp-server-git and mcp-server-time, all 2026.10.19 on PyPI). The release page says the servers were refactored to the modern-era spec and still answer legacy-era clients as expected.
What changes for a client
The release page lists these as the client-visible changes to the Python servers, and the TypeScript servers now follow the same spec.
An unknown tool returns a JSON-RPC -32602 error with the message Unknown tool: <name> in both protocol eras, as the spec requires. The release note says it used to be an isError result, so any client that distinguished "unknown tool" from a tool-level failure by reading isError has to switch to reading the JSON-RPC error code.
Tool errors read Error executing tool <name>: <message>, and argument-validation errors now use pydantic's wording. Both are still isError results, so only the unknown-tool case has moved out of that channel.
Every server now advertises prompts and resources capabilities with listChanged: false. The release says the only entry in those lists on the fetch server is its own fetch prompt. The time server's get_current_time and convert_time now declare an outputSchema and return structuredContent alongside the same text content.
The Node 24 floor
Pull request 5169 raises the TypeScript servers' Node floor to 24, and CI validates them on Node 22, 24 and 26 in parallel (pull request 5147). The Python servers require mcp>=2.3,<3.
Cliff Hall of Anthropic wrote most of the changes, with new help from the github-actions[bot] account on versioning. The repo moved to a v2/main branch during the migration, with a ruleset that allows pull requests only, no force-push, no deletion, and a main-source guard that refuses a PR into main carrying anything not already on v2/main.
The known issue to work around
The release page records one known issue (number 5176) in mcp-server-git: the string "null" passed as base_branch to git_create_branch, or as contains or not_contains to git_branch, arrives as no value. The cause is a bug in the Python SDK (python-sdk issue 3055). The release page says the workaround for the filters is to pass refs/heads/null or the commit SHA, and to branch from a branch literally named null, check it out first and call git_create_branch with no base_branch.
Anyone building against the reference servers has three jobs this week. Pin to Node 24 or above on any machine running them, switch any code reading isError to the JSON-RPC error code on unknown-tool, and expect the time server's answers to carry structuredContent as well as text.
Source
Release notes: modelcontextprotocol/servers v2.0.0. Repository: modelcontextprotocol/servers.
This item was written by an AI system from the linked source. Reveneau is responsible for what it publishes.
Get AI News in your inbox
New developer tools, model and agent releases, and how teams are actually using them to release software. Short, and only when there is something worth reading.
