Skip to content

build(deps): bump mcp from 1.28.1 to 2.3.0 - #34

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

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

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 1, 2026 •

Copy link
Copy Markdown

Bumps mcp from 1.28.1 to 2.3.0.

Release notes

Sourced from mcp's releases.

v2.3.0

pip install -U mcp. Docs: https://py.sdk.modelcontextprotocol.io/

Mostly fixes, plus three new options. A few things behave differently, so skim these first:

Behaviour changes

httpx2>=2.10.0 is now required (#3600)

  • It was >=2.5.0. The new max_sse_event_size option needs it.
  • Nothing to do unless you pin httpx2 below 2.10.

A tool with an invalid x-mcp-header annotation fails at registration (#3620)

  • @mcp.tool(), add_tool and Tool.from_function raise InvalidSignature, naming the tool and the problem.
  • Until now the server started, and 2026-07-28 clients silently dropped the tool from their listing.
  • Refused: anything other than a plain str, int or bool parameter (so also str | None, float, lists and enums), a header name that isn't a valid token, and two names that differ only by case.
  • For an optional header parameter, give the schema directly: Annotated[str | None, WithJsonSchema({"type": "string", "x-mcp-header": "Region"})] = None.

Empty _meta and params are no longer sent (#3628)

  • On 2025-11-25 and earlier connections, 2.x sent "_meta": {} on every request. Some servers reject that. It is now left out, as in v1.
  • ping and list requests without a cursor go out with no params member.
  • On the receiving side ctx.meta is None rather than {}, and middleware sees ctx.params as None for a request without params.
  • 2026-07-28 connections are unchanged.

initialize leaves out experimental when none is configured (#3614)

  • It used to send "experimental": {}. server/discover already left it out.
  • Client code reading capabilities.experimental on a legacy connection should handle None.

Mcp-Param-* validation looks the tool up by name (#3630)

  • MCPServer no longer runs tools/list for every tools/call, so middleware no longer sees that extra request.
  • The registered schema is what gets checked. Middleware that filters or rewrites tools/list no longer affects it.

An interactive OAuth login no longer counts against request timeouts (#3635)

  • The timeout pauses while OAuthClientProvider waits on redirect_handler and callback_handler.
  • This fixes Client(mode="auto") settling on 2025-11-25 when the login took longer than 10 seconds.
  • A request timeout no longer ends a login nobody finishes. Put a limit inside callback_handler if you need one.

New

  • max_sse_event_size= on streamable_http_client and StreamableHttpParameters. The default stays 1 MiB per SSE event; raise it, or pass None, for larger tool results (#3600).
  • MCPServer(subscriptions=False) stops serving subscriptions/listen and advertises listChanged and subscribe as false (#3626).
  • Server(get_tool_input_schema=...) lets a low-level server supply a tool's schema for header validation without running its tools/list handler (#3630).
  • Client.call_tool re-lists the tools and retries once after a HeaderMismatch (-32020) rejection (#3627).

Fixes

  • ctx: Context[AppState] works on prompts and resource templates, not only on tools (#3624).
  • An explicit "structuredContent": null is checked against the output schema instead of being treated as missing (#3621).
  • A progress_callback that raises no longer fails the call on an in-process Client(server) (#3623).
  • Client OpenTelemetry spans record JSON-RPC error responses. With mode="auto", connecting to a server without server/discover now shows one ERROR span for the probe (#3629).
  • stdio_client resolves the executable off the event loop on Windows (#3510).

... (truncated)

Commits
  • 2118f14 docs: refresh translations for recent English changes (#3636)
  • ed9b2d6 Stop counting an interactive OAuth login against request timeouts (#3635)
  • d5cebd1 Keep inline-snapshot disabled when pytest runs in a terminal (#3634)
  • c15566c Link What's new to the Header parameters page (#3632)
  • 4d29994 Let a newer Deploy Docs run cancel the one in progress (#3633)
  • 0acea60 Bump urllib3 from 2.7.0 to 2.8.0 (#3607)
  • c54075c Look the tool schema up by name for Mcp-Param-* validation instead of running...
  • 9afccae Retry a tool call once after a HeaderMismatch rejection (#3627)
  • cafa33b Record JSON-RPC error responses on the client OpenTelemetry span (#3629)
  • 0b2fd3e Omit an empty _meta and empty params from outbound requests (#3628)
  • Additional commits viewable in compare view

RetriggerView in GreptileConfidence Score: 3/5

The PR does not appear safe to merge while the two previously reported MCP compatibility issues remain outstanding.

Fix All in CursorFindings

  1. P1 MCP tool check fails ▶
  2. P1 Environment server cannot start ▶
Fix with agent prompt
### Issue 1
uv.lock:undefined-1699
When a provider checks a server's tools with `mcp` 2.3.0, `_tool_names` expects three values from `streamable_http_client`. The 2.x client returns two, so deployment fails before the provider can list the tools. Update the client call sites for the new return shape.

### Issue 2
pyproject.toml:undefined-38
The wider `mcp` bound permits 2.x, but `create_fastmcp_app` still imports `FastMCP` from `mcp.server.fastmcp`, the path removed in 2.0. An installation that selects 2.x cannot create an environment server through this helper. Keep a compatible bound or migrate the helper.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

The framework and protocol package now allow MCP 2.x, and the lockfile resolves MCP 2.3.0.

  • The framework now allows MCP 2.x and locks version 2.3.0.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  Client --> Gateway
  Step["/step"] --> Gateway
  Trigger --> Gateway
  Gateway --> SharedChildSessions
  SharedChildSessions --> MCPServers
Loading

Reviews (7) · Last reviewed commit: "build(deps): bump mcp from 1.28.1 to 2.3..." · Reviewed by Greptile

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Oct 1, 2026
@dependabot
dependabot Bot requested a review from a team as a code owner October 1, 2026 00:23
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Oct 1, 2026
@socket-security

socket-security Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedpypi/​mcp@​1.28.1 ⏵ 2.3.099 +1100100100100

View full report

Comment thread pyproject.toml Outdated
@dependabot @github

dependabot Bot commented on behalf of github Oct 5, 2026

Copy link
Copy Markdown
Author

Dependabot tried to update this pull request, but something went wrong. We're looking into it, but in the meantime you can retry the update by commenting @dependabot recreate.

@dependabot
dependabot Bot force-pushed the dependabot/uv/mcp-2.2.0 branch from d280975 to d8fae65 Compare October 5, 2026 21:44
@dependabot dependabot Bot changed the title build(deps): bump mcp from 1.28.1 to 2.2.0 build(deps): bump mcp from 1.28.1 to 2.3.0 Oct 6, 2026
@dependabot
dependabot Bot force-pushed the dependabot/uv/mcp-2.2.0 branch 2 times, most recently from 7bdd847 to be26f4b Compare October 9, 2026 20:32
Comment thread uv.lock
[[package]]
name = "mcp"
version = "1.28.1"
version = "2.3.0"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 MCP tool check fails

When a provider checks a server's tools with mcp 2.3.0, _tool_names expects three values from streamable_http_client. The 2.x client returns two, so deployment fails before the provider can list the tools. Update the client call sites for the new return shape.

Prompt To Fix With AI
This is a comment left during a code review.
Path: uv.lock
Line: 1699

Comment:
**MCP tool check fails**

When a provider checks a server's tools with `mcp` 2.3.0, `_tool_names` expects three values from `streamable_http_client`. The 2.x client returns two, so deployment fails before the provider can list the tools. Update the client call sites for the new return shape.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Fix in Cursor Fix in Claude Code Fix in Codex

Comment thread pyproject.toml Outdated
"httpx>=0.27.0",
"litellm>=1.96.0,<1.97",
"mcp>=1.0.0,<2", # 2.0.0 removed mcp.server.fastmcp, imported at module scope by env/gateway
"mcp>=1.0.0,<3", # 2.0.0 removed mcp.server.fastmcp, imported at module scope by env/gateway

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Environment server cannot start

The wider mcp bound permits 2.x, but create_fastmcp_app still imports FastMCP from mcp.server.fastmcp, the path removed in 2.0. An installation that selects 2.x cannot create an environment server through this helper. Keep a compatible bound or migrate the helper.

Knowledge Base Used: AgentEnv protocol contracts

Prompt To Fix With AI
This is a comment left during a code review.
Path: pyproject.toml
Line: 38

Comment:
**Environment server cannot start**

The wider `mcp` bound permits 2.x, but `create_fastmcp_app` still imports `FastMCP` from `mcp.server.fastmcp`, the path removed in 2.0. An installation that selects 2.x cannot create an environment server through this helper. Keep a compatible bound or migrate the helper.

**Knowledge Base Used:** [AgentEnv protocol contracts](https://app.greptile.com/scale-ai/-/custom-context/knowledge-base/scaleapi/agentenv-framework/-/docs/agentenv-protocol-contracts.md)

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Fix in Cursor Fix in Claude Code Fix in Codex

Bumps [mcp](https://github.com/modelcontextprotocol/python-sdk) from 1.28.1 to 2.3.0.
- [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.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/uv/mcp-2.2.0 branch from be26f4b to f5c7c75 Compare October 10, 2026 15:35
@dependabot @github

dependabot Bot commented on behalf of github Oct 11, 2026

Copy link
Copy Markdown
Author

Dependabot can't resolve your Python dependency files. Because of this, Dependabot cannot update this pull request.

6 similar comments
@dependabot @github

dependabot Bot commented on behalf of github Oct 11, 2026

Copy link
Copy Markdown
Author

Dependabot can't resolve your Python dependency files. Because of this, Dependabot cannot update this pull request.

@dependabot @github

dependabot Bot commented on behalf of github Oct 12, 2026

Copy link
Copy Markdown
Author

Dependabot can't resolve your Python dependency files. Because of this, Dependabot cannot update this pull request.

@dependabot @github

dependabot Bot commented on behalf of github Oct 12, 2026

Copy link
Copy Markdown
Author

Dependabot can't resolve your Python dependency files. Because of this, Dependabot cannot update this pull request.

@dependabot @github

dependabot Bot commented on behalf of github Oct 12, 2026

Copy link
Copy Markdown
Author

Dependabot can't resolve your Python dependency files. Because of this, Dependabot cannot update this pull request.

@dependabot @github

dependabot Bot commented on behalf of github Oct 12, 2026

Copy link
Copy Markdown
Author

Dependabot can't resolve your Python dependency files. Because of this, Dependabot cannot update this pull request.

@dependabot @github

dependabot Bot commented on behalf of github Oct 12, 2026

Copy link
Copy Markdown
Author

Dependabot can't resolve your Python dependency files. Because of this, Dependabot cannot update this pull request.

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.

0 participants