github modelcontextprotocol/servers v2.3.0

4 hours ago

Packages

Package Version Registry In this release
@modelcontextprotocol/server-everything 2.2.1 npm published
@modelcontextprotocol/server-filesystem 2.2.0 npm published
@modelcontextprotocol/server-memory 2.1.0 npm published
@modelcontextprotocol/server-sequential-thinking 2.1.1 npm published
mcp-server-fetch 2026.11.4 PyPI published
mcp-server-git 2026.11.4 PyPI published
mcp-server-time 2026.11.4 PyPI published

Release ledger: v2/chore/5425-release-v2.3.0

@modelcontextprotocol/server-everything 2.2.1

What's Changed

  • test(everything): check every registered tool carries all four annotation hints by @cliffhall in #5347
  • fix(everything): name resource-prompt's allowed argument values by @cliffhall in #5350
  • everything: build the Docker image from the workspace lockfile, with a Streamable HTTP mode by @cliffhall in #5382
  • feat(everything): add a resource collection example by @cliffhall in #5365
  • fix(everything): stop a cancelled long-running operation by @cliffhall in #5396
  • feat(everything): light and dark themed icons on every primitive by @cliffhall in #5389
  • chore: version packages by @github-actions[bot] in #5401
  • fix(everything): give gzip-file-as-resource's resource the resource icons by @cliffhall in #5436
  • chore: version packages by @github-actions[bot] in #5437
  • Release v2.3.0: merge v2/main into main by @cliffhall in #5430

@modelcontextprotocol/server-filesystem 2.2.0

What's Changed

  • test(filesystem): give the real HFS+ volume test an explicit timeout by @cliffhall in #5344
  • chore(filesystem): remove the unused glob dependency by @cliffhall in #5351
  • feat(filesystem): set idempotentHint and destructiveHint on the read-only tools by @cliffhall in #5353
  • fix(filesystem): return no lines for read_text_file head/tail 0 by @cliffhall in #5377
  • fix(filesystem): show an unstattable entry's size as unknown in list_directory_with_sizes by @cliffhall in #5378
  • fix(filesystem): name the subdirectories search_files could not read by @cliffhall in #5355
  • fix(filesystem): say search_files matches names, not contents by @cliffhall in #5367
  • fix(filesystem): report a dangling symlink as broken, not as a missing parent by @cliffhall in #5380
  • fix(filesystem): do not trim an allowed directory's name after realpath by @cliffhall in #5383
  • fix(filesystem): expand ~\ to the home directory on Windows by @cliffhall in #5384
  • feat(filesystem): add an append_file tool by @cliffhall in #5376
  • feat(filesystem): add a copy_file tool by @cliffhall in #5385
  • feat(filesystem): add an optional depth to directory_tree by @cliffhall in #5388
  • feat(filesystem): expose files as resources through a file:// template by @cliffhall in #5368
  • feat(filesystem): show the closest file lines when an edit_file edit has no match by @cliffhall in #5379
  • feat(filesystem): add a --read-only mode that serves only read tools by @cliffhall in #5359
  • feat(filesystem): log the effective allowed directories and their source by @cliffhall in #5390
  • feat(filesystem): add --confine-roots to keep client Roots inside the command-line directories by @cliffhall in #5395
  • fix(filesystem): move minimatch to ^11.0.4 for GHSA-g3hv-75wg-m249 by @cliffhall in #5426
  • chore: version packages by @github-actions[bot] in #5401
  • Release v2.3.0: merge v2/main into main by @cliffhall in #5430

@modelcontextprotocol/server-memory 2.1.0

What's Changed

  • docs(memory): state the search_nodes query length limit by @cliffhall in #5381
  • feat(memory): say when to use search_nodes and open_nodes by @cliffhall in #5393
  • feat(memory): add lightweight read modes to the read tools by @cliffhall in #5394
  • fix(memory): store an observation repeated in one add_observations call once by @cliffhall in #5357
  • feat(memory): declare idempotentHint on create_entities, create_relations and add_observations by @cliffhall in #5349
  • feat(memory): warn when the memory file is inside node_modules, and document a durable MEMORY_FILE_PATH by @cliffhall in #5362
  • chore: version packages by @github-actions[bot] in #5401
  • Release v2.3.0: merge v2/main into main by @cliffhall in #5430

@modelcontextprotocol/server-sequential-thinking 2.1.1

What's Changed

  • chore(sequentialthinking): remove the unused yargs dependency by @cliffhall in #5352
  • docs(sequentialthinking): name the tool sequentialthinking in the README by @cliffhall in #5356
  • fix(sequentialthinking): draw a multi-line thought one row per line by @cliffhall in #5361
  • feat(sequentialthinking): trim the tool description to fit 1024 characters by @cliffhall in #5374
  • fix(sequentialthinking): cap the thought history each connection keeps by @cliffhall in #5397
  • chore: version packages by @github-actions[bot] in #5401
  • fix(sequentialthinking): bound the stderr thought box by @cliffhall in #5435
  • chore: version packages by @github-actions[bot] in #5437
  • Release v2.3.0: merge v2/main into main by @cliffhall in #5430

mcp-server-fetch 2026.11.4

What's Changed

  • fix(fetch): run Readability.js under a bounded subprocess, off the event loop and stdout by @cliffhall in #5391
  • feat(fetch): open the simplified result with the page title by @cliffhall in #5398
  • feat(fetch): add an operator host allowlist, --allowed-hosts by @cliffhall in #5392
  • feat(fetch): make the HTTP request timeout configurable by @cliffhall in #5372
  • fetch: ask for native markdown through Accept content negotiation by @cliffhall in #5387
  • fix(fetch): reject an invalid prompt URL with -32602 by @cliffhall in #5358
  • chore: stamp Python CalVer versions for 2026.11.4 by @github-actions[bot] in #5429
  • Release v2.3.0: merge v2/main into main by @cliffhall in #5430

mcp-server-git 2026.11.4

What's Changed

  • fix(git): accept revision ranges such as main..feature in git_diff by @cliffhall in #5360
  • docs(git): document setting the commit identity via env vars or gitconfig by @cliffhall in #5354
  • feat(git): add git_merge tool by @cliffhall in #5363
  • feat(git): add a read-only git_remote tool that lists remotes by @cliffhall in #5373
  • feat(git): add prompts that embed the repository's changes by @cliffhall in #5386
  • chore: stamp Python CalVer versions for 2026.11.4 by @github-actions[bot] in #5429
  • Release v2.3.0: merge v2/main into main by @cliffhall in #5430

mcp-server-time 2026.11.4

What's Changed

  • feat(time): default omitted timezone arguments to the local timezone by @cliffhall in #5364
  • fix(time): report the second occurrence of an ambiguous fall-back time in convert_time by @cliffhall in #5366
  • feat(time): add get_time_ago for past times by @cliffhall in #5369
  • chore: stamp Python CalVer versions for 2026.11.4 by @github-actions[bot] in #5429
  • Release v2.3.0: merge v2/main into main by @cliffhall in #5430

Repository

What's Changed

  • Remove the @claude mention workflow (claude.yml) by @cliffhall in #5407
  • docs(release): link the Prepare Python Release PR with addCloseIssueReferences by @cliffhall in #5408
  • docs(release): document the ledger's title, layout and required sections by @cliffhall in #5409
  • fix(scripts): read gh replies over 1 MiB in release:notes and the sweeps by @cliffhall in #5410
  • docs(security-advisory): bring the fix to v2/main through an opaque public PR by @cliffhall in #5411
  • fix(deps): v2.3.0 release audit, raise the qs override to >=6.16.1 by @cliffhall in #5427

Full Changelog: v2.2.0...v2.3.0

Thanks for helping us improve

This release addresses issues reported by these community members. Thank you for taking the time to file them:

And to these contributors, whose pull requests prototyped changes that ship in this release. Under the repository's issues, not pull requests policy their PRs were closed and the changes rebuilt by the maintainers, crediting them on the issue:

  • @liam61 (#3176), a filesystem copy tool, for #519
  • @milaforge (#3505), a filesystem read-only mode, for #632
  • @pntech20 (#4177), a shorter sequentialthinking tool description, for #799
  • @chasewhughes (#3716), a clearer search_files description, for #896
  • @factspark23-hash (#4023), a depth parameter for directory_tree, for #1077
  • @agn-7 (#2816), a filesystem append tool, for #1208
  • @cblecker (#3396), git remote support, for #1611
  • @go165 (#4375), closest-match feedback when edit_file finds no match, for #2034
  • @Joosboy (#4501), closest-match feedback when edit_file finds no match, for #2034
  • @g-yixuan (#4770), a host allowlist for fetch, for #2317
  • @krishhgg (#4253), the page title in fetch results, for #2472
  • @krishhgg (#4252), a local default timezone for time, for #2853
  • @Limitless2023 (#3321), a cap on sequentialthinking's thought history, for #2912
  • @ykshah1309 (#3875), the missing filesystem tool annotations, for #3402
  • @Jim1874 (#4000), argument descriptions for everything's resource prompt, for #3985
  • @axiom-of-choice (#4459), a configurable fetch timeout, for #4448
  • @ameyypawar (#4496), a configurable fetch timeout, for #4448
  • @magai2002 (#4636), a configurable fetch timeout, for #4448
  • @STiFLeR7 (#4508), a trimmed sequentialthinking tool definition, for #4507
  • @teddiesloco (#4833), documenting fetch's Readability.js install, for #4830
  • @Ewertonslv (#4847), stopping a cancelled long-running operation in everything, for #4846
  • @boss477 (#4913), logging filesystem's effective allowed directories, for #4912
  • @pragnyanramtha (#4178), read_text_file head/tail 0, for #5184
  • @shotty1 (#4535), removing filesystem's unused glob dependency, for #5186
  • @feiiiiii5 (#4910), naming the subdirectories search_files could not read, for #5189
  • @feiiiiii5 (#4911), an unknown size for unstattable entries in list_directory_with_sizes, for #5190
  • @v0ropaev (#4915), reporting a dangling symlink as broken, for #5191
  • @BlueX888 (#4815), revision ranges in git_diff, for #5194
  • @Ewertonslv (#4297), git prompts, for #5195
  • @Nimra3261 (#4781), ambiguous fall-back times in convert_time, for #5196
  • @sidney (#4052), native markdown through Accept negotiation in fetch, for #5198
  • @jrlprost (#4891), documenting the search_nodes query length limit, for #5200
  • @tounsils (#4819), deduplicating repeated observations in add_observations, for #5201
  • @sujugithub (#4519), guidance on when to use memory's read tools, for #5202
  • @Kropiunig (#4371), the sequentialthinking tool name in its README, for #5204
  • @abhicris (#4005), one row per line in the sequentialthinking thought box, for #5205
  • @1060996408 (#4100), one row per line in the sequentialthinking thought box, for #5205
  • @kt3k (#3792), removing sequentialthinking's unused yargs dependency, for #5206

Don't miss a new servers release

NewReleases is sending notifications on new releases.