github modelcontextprotocol/servers v2.0.0

4 hours ago

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 -32602 error (Unknown tool: <name>) in both protocol eras, as the spec requires. It used to be an isError result.
  • Tool errors read Error executing tool <name>: <message>. Argument-validation errors now use pydantic's wording. Both are still isError results.
  • Capabilities: each server now advertises prompts and resources capabilities (with listChanged: false). fetch's fetch prompt is the only entry in those lists.
  • time: get_current_time and convert_time declare an outputSchema and return structuredContent. The text content is unchanged.
  • fetch: a prompts/get result's description is 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.

Don't miss a new servers release

NewReleases is sending notifications on new releases.