Servers refactored to modern era
This release refactors all the servers to support the modern era spec, while still answering legacy era clients as expected.
Packages
| Package | Version | Registry | In this release |
|---|---|---|---|
@modelcontextprotocol/server-everything
| 2.0.0
| npm | published |
@modelcontextprotocol/server-filesystem
| 2.0.0
| npm | published |
@modelcontextprotocol/server-memory
| 2.0.0
| npm | published |
@modelcontextprotocol/server-sequential-thinking
| 2.0.0
| npm | published |
mcp-server-fetch
| 2026.10.19
| PyPI | published |
mcp-server-git
| 2026.10.19
| PyPI | published |
mcp-server-time
| 2026.10.19
| PyPI | published |
Release ledger: v2/chore/5159-release-v2.0.0
@modelcontextprotocol/server-everything 2.0.0
What's Changed
- chore: migrate the TypeScript servers to TS SDK v2 (codemod) by @cliffhall in #5063
- chore: v1.0.0 release audit, dependency fixes by @cliffhall in #5082
- chore: fold pending changesets into a 1.0.0 CHANGELOG for each TypeScript server by @cliffhall in #5083
- Reconcile v2/main with the v1.0.0 release branch: changesets, changelogs, merge of v2/release/1.0.0 by @cliffhall in #5118
- feat: modern-era TypeScript servers (2026-07-28 + 2025) and the new features in everything by @cliffhall in #5131
- ci: validate the TypeScript servers on Node 22, 24 and 26 in parallel by @cliffhall in #5147
- chore: version packages by @github-actions[bot] in #5100
- fix: raise the TypeScript servers' Node floor to 24 by @cliffhall in #5169
- Release v2.0.0: merge v2/main into main by @cliffhall in #5166
@modelcontextprotocol/server-filesystem 2.0.0
What's Changed
- chore: migrate the TypeScript servers to TS SDK v2 (codemod) by @cliffhall in #5063
- chore: v1.0.0 release audit, dependency fixes by @cliffhall in #5082
- chore: fold pending changesets into a 1.0.0 CHANGELOG for each TypeScript server by @cliffhall in #5083
- fix(filesystem): revoke access when a roots update leaves no valid root by @cliffhall in #5095
- fix(filesystem): apply only the newest roots refresh's answer by @cliffhall in #5098
- fix(filesystem): hold tool calls while any roots refresh is pending by @cliffhall in #5102
- Reconcile v2/main with the v1.0.0 release branch: changesets, changelogs, merge of v2/release/1.0.0 by @cliffhall in #5118
- feat: modern-era TypeScript servers (2026-07-28 + 2025) and the new features in everything by @cliffhall in #5131
- ci: validate the TypeScript servers on Node 22, 24 and 26 in parallel by @cliffhall in #5147
- chore: version packages by @github-actions[bot] in #5100
- fix: raise the TypeScript servers' Node floor to 24 by @cliffhall in #5169
- Release v2.0.0: merge v2/main into main by @cliffhall in #5166
@modelcontextprotocol/server-memory 2.0.0
What's Changed
- chore: migrate the TypeScript servers to TS SDK v2 (codemod) by @cliffhall in #5063
- memory: expect Node 26's path-suffixed EISDIR message in persistence test by @cliffhall in #5078
- chore: v1.0.0 release audit, dependency fixes by @cliffhall in #5082
- chore: fold pending changesets into a 1.0.0 CHANGELOG for each TypeScript server by @cliffhall in #5083
- Reconcile v2/main with the v1.0.0 release branch: changesets, changelogs, merge of v2/release/1.0.0 by @cliffhall in #5118
- feat: modern-era TypeScript servers (2026-07-28 + 2025) and the new features in everything by @cliffhall in #5131
- ci: validate the TypeScript servers on Node 22, 24 and 26 in parallel by @cliffhall in #5147
- chore: version packages by @github-actions[bot] in #5100
- fix: raise the TypeScript servers' Node floor to 24 by @cliffhall in #5169
- Release v2.0.0: merge v2/main into main by @cliffhall in #5166
@modelcontextprotocol/server-sequential-thinking 2.0.0
What's Changed
- chore: migrate the TypeScript servers to TS SDK v2 (codemod) by @cliffhall in #5063
- chore: v1.0.0 release audit, dependency fixes by @cliffhall in #5082
- chore: fold pending changesets into a 1.0.0 CHANGELOG for each TypeScript server by @cliffhall in #5083
- Reconcile v2/main with the v1.0.0 release branch: changesets, changelogs, merge of v2/release/1.0.0 by @cliffhall in #5118
- feat: modern-era TypeScript servers (2026-07-28 + 2025) and the new features in everything by @cliffhall in #5131
- fix(sequentialthinking): pad the thought box's header row to the border by @cliffhall in #5144
- ci: validate the TypeScript servers on Node 22, 24 and 26 in parallel by @cliffhall in #5147
- chore: version packages by @github-actions[bot] in #5100
- fix: raise the TypeScript servers' Node floor to 24 by @cliffhall in #5169
- Release v2.0.0: merge v2/main into main by @cliffhall in #5166
Python servers: changes for clients
mcp-server-fetch, mcp-server-git and mcp-server-time have no CHANGELOG, so here is what changes for a client in 2026.10.19. They are now built on the MCP Python SDK's high-level MCPServer (#5175).
- Unknown tool: a JSON-RPC
-32602error (Unknown tool: <name>) in both protocol eras, as the spec requires. It used to be anisErrorresult. - Tool errors read
Error executing tool <name>: <message>. Argument-validation errors now use pydantic's wording. Both are stillisErrorresults. - Capabilities: each server now advertises
promptsandresourcescapabilities (withlistChanged: false). fetch'sfetchprompt is the only entry in those lists. - time:
get_current_timeandconvert_timedeclare anoutputSchemaand returnstructuredContent. The text content is unchanged. - fetch: a
prompts/getresult'sdescriptionis now always the prompt's registered description. - Requires
mcp>=2.3,<3.
mcp-server-fetch 2026.10.19
What's Changed
- Port fetch, git and time to the MCP Python SDK v2 by @cliffhall in #5062
- chore: v1.0.0 release audit, dependency fixes by @cliffhall in #5082
- chore: stamp Python CalVer versions for 2026.10.10 by @cliffhall in #5084
- fix(fetch): annotate the fetch tool by @cliffhall in #5112
- feat(fetch,git,time): serve the 2026-07-28 era beside 2025-11-25 by @cliffhall in #5126
- chore: stamp Python CalVer versions for 2026.10.18 by @cliffhall in #5165
- Python servers: build fetch, git and time on MCPServer; unknown tool is -32602 by @cliffhall in #5175
- chore: stamp Python CalVer versions for 2026.10.19 by @cliffhall in #5177
- Release v2.0.0: merge v2/main into main by @cliffhall in #5166
mcp-server-git 2026.10.19
What's Changed
- Port fetch, git and time to the MCP Python SDK v2 by @cliffhall in #5062
- chore: v1.0.0 release audit, dependency fixes by @cliffhall in #5082
- chore: stamp Python CalVer versions for 2026.10.10 by @cliffhall in #5084
- feat(fetch,git,time): serve the 2026-07-28 era beside 2025-11-25 by @cliffhall in #5126
- fix(git): prefix git_show diff headers with a/ and b/ by @cliffhall in #5145
- chore: stamp Python CalVer versions for 2026.10.18 by @cliffhall in #5165
- Python servers: build fetch, git and time on MCPServer; unknown tool is -32602 by @cliffhall in #5175
- chore: stamp Python CalVer versions for 2026.10.19 by @cliffhall in #5177
- Release v2.0.0: merge v2/main into main by @cliffhall in #5166
mcp-server-time 2026.10.19
What's Changed
- Port fetch, git and time to the MCP Python SDK v2 by @cliffhall in #5062
- time: accept only exact IANA timezone keys on every platform by @cliffhall in #5077
- chore: v1.0.0 release audit, dependency fixes by @cliffhall in #5082
- chore: stamp Python CalVer versions for 2026.10.10 by @cliffhall in #5084
- feat(fetch,git,time): serve the 2026-07-28 era beside 2025-11-25 by @cliffhall in #5126
- chore: stamp Python CalVer versions for 2026.10.18 by @cliffhall in #5165
- Python servers: build fetch, git and time on MCPServer; unknown tool is -32602 by @cliffhall in #5175
- chore: stamp Python CalVer versions for 2026.10.19 by @cliffhall in #5177
- Release v2.0.0: merge v2/main into main by @cliffhall in #5166
Repository
What's Changed
- ci(everything): adopt the MCP interface diff (adapted from #3260) by @cliffhall in #4975
- docs(release): warn against Update branch on the milestone merge PR by @cliffhall in #5093
- ci(release): publish with Node 24's bundled npm instead of installing one by @cliffhall in #5105
- ci: bring the main-source guard to main (bootstrap for #5119) by @cliffhall in #5122
- ci: guard main so a PR into it brings nothing not already on v2/main by @cliffhall in #5120
- release:notes: put the release-ledger line under the Packages table by @cliffhall in #5132
- docs: record the v2/main ruleset (PRs only, no force-push or deletion) by @cliffhall in #5140
- docs: always start PR work in a new git worktree by @cliffhall in #5139
- ci: declare read-only GITHUB_TOKEN permissions in python.yml and typescript.yml by @cliffhall in #5141
- fix(scripts): double backslashes before a quote in win-shell-args by @cliffhall in #5143
- docs: add an AGENTS.md rule for pacing bulk GitHub writes by @cliffhall in #5142
- ci: dispatch TypeScript and Python CI on automated version PRs by @cliffhall in #5146
- chore: drop "Thanks" from the changesets attribution, keep the author by @cliffhall in #5163
- Merge main into v2/main so main-source.yml shares history by @cliffhall in #5172
- fix(ci): a superseded dispatched run posts no status, whatever its jobs did by @cliffhall in #5179
New Contributors
- @github-actions[bot] made their first contribution in #5100
Full Changelog: v1.0.0...v2.0.0
Known issue
#5176: in mcp-server-git, the string "null" passed as base_branch to git_create_branch, or as contains / not_contains to git_branch, arrives as no value. This affects only a branch literally named null. The cause is the Python SDK (python-sdk#3055). Workarounds: for the filters, pass refs/heads/null or the commit SHA. To branch from null, git_checkout it first, then call git_create_branch without base_branch.