Skip to content

chore(deps): support MCP 2 and preserve SDK 1 compatibility - #43

Merged
abrichr merged 3 commits into
mainfrom
dependabot/pip/mcp-gte-1.28-and-lt-3
Sep 10, 2026
Merged

chore(deps): support MCP 2 and preserve SDK 1 compatibility#43
abrichr merged 3 commits into
mainfrom
dependabot/pip/mcp-gte-1.28-and-lt-3

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

MCP 2 removes the low-level decorators that this server uses, so widening the dependency range alone prevents Agent from starting. This change supports mcp>=1.28,<3 through the SDK 1 decorators and SDK 2 constructor handlers. Both paths use the same tool dispatch, explicit input-schema checks, and CallToolResult responses. Validation errors don't expose argument values.

Operator confirmation still precedes every attended decision. The server uses the request's actual context and refuses when the client cannot complete form elicitation. SDK 2 clients need mode="legacy" for attended decisions; the newer discovery protocol has no server-initiated confirmation channel. Discovery, authoring tools, and governed workflow execution remain available. Upstream migration guide.

The tests now connect real SDK client/server sessions instead of invoking private handler dictionaries. They cover tool schemas and annotations, successful reads, every attended decision with accept/decline/cancel responses, malformed arguments, protected exception text, modern discovery refusal, and the CLI's stdio transport. A run-tool test invokes the installed Flow CLI and confirms its admission refusal for an unsigned synthetic bundle.

Validation:

  • MCP 2.2.0 with Flow 1.35.1: 211 tests pass.
  • MCP 2.0.0 with Flow 1.35.1: 211 tests pass.
  • MCP 1.28.0 with Flow 1.26.0 on Python 3.10: 210 tests pass; the SDK 2 discovery test skips.
  • Ruff, uv lock --locked, wheel/sdist builds, and all package/source-boundary checks pass. The refreshed lock selects MCP 2.2.0.

CI retains three jobs and tests the SDK 1 floor, SDK 2 floor, and current allowed dependencies. This PR does not create a package release or change an admission.

Updates the requirements on [mcp](https://github.com/modelcontextprotocol/python-sdk) to permit the latest version.
- [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.0...v2.1.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot @github

dependabot Bot commented on behalf of github Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

Labels

The following labels could not be found: dependencies. Please create it before Dependabot can add it to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@dependabot
dependabot Bot requested a review from abrichr as a code owner August 31, 2026 20:46
@abrichr abrichr changed the title chore(deps): Update mcp requirement from <2,>=1.28 to >=1.28,<3 chore(deps): support MCP 2 and preserve SDK 1 compatibility Sep 10, 2026
@abrichr
abrichr merged commit 3271daf into main Sep 10, 2026
10 checks passed
@abrichr
abrichr deleted the dependabot/pip/mcp-gte-1.28-and-lt-3 branch September 10, 2026 20:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant