Skip to content

build(deps): bump mcp from 1.28.1 to 2.1.1 - #123

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/mcp-2.1.1
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/mcp-2.1.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 31, 2026 •

Copy link
Copy Markdown
Contributor

Bumps mcp from 1.28.1 to 2.1.1.

Release notes

Sourced from mcp's releases.

v2.1.1

What's Changed

Full Changelog: modelcontextprotocol/python-sdk@v2.1.0...v2.1.1

v2.1.0

Highlights

  • Client accepts StdioServerParameters directly: Client(StdioServerParameters(command="uv", args=["run", "server.py"])) (#3321).
  • Prompt messages accept Image and Audio, prompt functions may return bare content blocks, and Message / UserMessage / AssistantMessage are exported from mcp.server.mcpserver (#3320).
  • The 4 MiB request body limit now also covers the SSE transport and the OAuth endpoints; SseServerTransport and MCPServer.sse_app() take max_request_body_size, and the SSE message endpoint answers 405 to non-POST requests (#3336).

Behaviour changes to be aware of

  • Handler exceptions (#3314): an unexpected exception from a tool, resource or prompt handler is logged once at ERROR with its traceback, and the client now sees only Error executing tool <name> (or the resource/prompt equivalent) rather than the exception text. Raise ToolError / ResourceError when the message is meant for the model; those still reach the client and are logged at INFO without a traceback.
  • Content-block return annotations (#3320): a tool annotated to return TextContent, EmbeddedResource, Image, Audio, or lists/unions of them no longer advertises outputSchema or returns structuredContent; its content is unchanged. Pass structured_output=True to keep the previous shape.

Fixes

  • TypedDict tool results: NotRequired keys are omitted instead of serialized as null, and registration no longer fails on Python 3.10 (#3224, #3227); recursive return types get an object-rooted outputSchema that pre-2026 clients accept (#3337).
  • 2026-07-28 over HTTP: a POSTed notification such as notifications/cancelled is acknowledged with 202 instead of rejected with 400 (#3324).
  • Pre-2026 sessions ignore cache-hint fields from later revisions instead of failing list_tools() (#3223), and accept boolean sub-schemas in tool schema properties (#3353).
  • mcp install reads and preserves a Claude Desktop config containing non-ASCII text on any Windows code page (#3296).

What's Changed

... (truncated)

Commits
  • 0921d94 Point imports of mcp.server.fastmcp at the migration guide (#3388)
  • 4d6f87e Build releases with the pinned hatchling and a publish action that accepts Me...
  • c5d7d0b docs: refresh translations for recent English changes (#3379)
  • d8b6383 Give recursive tool return types an object-rooted output schema (#3376)
  • 56af447 Log MCPServer handler exceptions by kind and keep crash details off the wire ...
  • f1c40b0 Accept boolean sub-schemas in 2025-11-25 tool schema properties (#3354)
  • 57394b0 Apply the request body limit to the SSE and OAuth endpoints (#3336)
  • 0cee624 Hand TypedDict tool results to pydantic natively (#3331)
  • 0d92192 Shorten stdio test comments (#3329)
  • b2025ab Acknowledge notification POSTs with 202 on the 2026-07-28 HTTP entry (#3326)
  • Additional commits viewable in compare view

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

Bumps [mcp](https://github.com/modelcontextprotocol/python-sdk) from 1.28.1 to 2.1.1.
- [Release notes](https://github.com/modelcontextprotocol/python-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/python-sdk/blob/main/RELEASE.md)
- [Commits](modelcontextprotocol/python-sdk@v1.28.1...v2.1.1)

---
updated-dependencies:
- dependency-name: mcp
  dependency-version: 2.1.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Aug 31, 2026
@dependabot
dependabot Bot requested a review from ayhammouda as a code owner August 31, 2026 06:13
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Aug 31, 2026
@ayhammouda

Copy link
Copy Markdown
Owner

Vision — automated project maintainer

Keeping this as an explicit MCP v2 compatibility migration, not a routine dependency merge. Live exact-head checks still fail the four test jobs and dependency audit; current main remains green.

Primary-source review (2026-10-04): the v2.1.1 migration guide confirms FastMCP → MCPServer, Python protocol attributes moving to snake_case (wire aliases remain camelCase), and synchronous tool handlers moving onto worker threads. Our main uses synchronous documentation handlers and shared service state, so import fixes alone are insufficient evidence of compatibility. This is a migration risk, not a newly reproduced race defect; the read-only connection already sets check_same_thread=False.

Acceptance for the eventual migration: preserve existing tool schemas/wire results, annotations, version isolation, offline documentation queries and error handling; verify overlapping search/content calls and shutdown/cache behavior through real stdio; pass locked canonical checks, installed-wheel smoke and the unchanged 65-case retrieval gate on the exact head. Baseline is current-main behavior and its passing checks; target is equivalent behavior with no lost hits/citations. No feature, ingestion/schema or transport expansion is in scope. Independent review and current-base CI remain mandatory.

The tagged guide explicitly says v1.x still receives critical/security fixes and recommends <2 until migrated. That supports holding this PR while #138 and the measured retrieval follow-up take priority, rather than making an unsupported urgency claim. Revisit migration priority on 2026-10-17, or sooner for a confirmed v1 security/support change or client incompatibility; defer/rework if compatibility tests fail. No migration implementation or v2 compatibility success is claimed here.

@ayhammouda

Copy link
Copy Markdown
Owner

Vision — automated project maintainer

The security/support revisit condition from my previous review is now met. On 2026-10-05, upstream confirms newest supported v1 is 1.30.0, while main locks 1.28.1. I opened #140 for a narrow supported-v1 repair that preserves the current tool/stdio contracts; it now takes priority over further release readiness.

This PR's proposed 2.1.1 is itself in upstream affected ranges for schema-reference, session-retention, cross-origin redirect and OAuth-issuer advisories, fixed in 2.2.0. Latest upstream is 2.3.0. An eventual v2 migration must therefore select a currently supported patched target and repeat the compatibility acceptance above; passing import fixes alone would still be insufficient.

Sources: upstream security policy, v1.30.0, v2.3.0, and the dated public advisories linked in #140. Default local stdio is excluded from the HTTP-server issues; optional benchmark-client surfaces are recorded separately. This is not an exploitation claim, and no external benchmark calls were made.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant