fix(deps): cap mcp below 2.0 - #136
Conversation
``mcp`` is a root dependency declared as ``mcp>=1.27.1`` — a floor with no ceiling. The api harness imports the client surface directly (``mcp.client.session`` / ``mcp.client.stdio`` in ``devops_bench/agents/api/mcp.py``), and semver puts no constraint on what a 2.0 may do to it. Until then, any routine ``uv sync`` or a fresh install on a CI runner is free to resolve a breaking major, and the first symptom would be a benchmark run failing on a dependency nobody changed. Cap the specifier at ``<2``. Resolution is unchanged — mcp stays at 1.28.1 and no other package moves — so this is a guard, not an upgrade. Lifting it is a deliberate follow-up once the 2.x client API is known and the harness is ported.
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: jessie1111101 The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Warning Review limit reachedNext included review available in 4 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Hi @jessie1111101. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Tip We noticed you've done this a few times! Consider joining the org to skip this step and gain Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
What
Change the root
mcpdependency frommcp>=1.27.1tomcp>=1.27.1,<2.Why
mcpis a root dependency — everyone installing the benchmark gets it — and it currently declares a floor with no ceiling.The api harness imports the MCP client surface directly:
Semver puts no constraint on what a 2.0 release may do to that surface. Until the cap exists, a routine
uv sync, a lockfile refresh, or a fresh install on a CI runner can resolve a breaking major without anyone touching this repo. The first symptom would be a benchmark run failing on a dependency nobody changed — an expensive thing to debug mid-eval, and an easy thing to prevent.This is the standard reason to cap a direct dependency at the next major, and it is worth doing pre-emptively rather than reactively because the failure lands on whoever happens to sync next.
Blast radius
Resolution is unchanged.
mcpstays at 1.28.1 and no other package moves — the entireuv.lockdiff is the one specifier line:So this is a guard, not an upgrade. Lifting it is a deliberate follow-up once the 2.x client API is known and the harness is ported.
Testing
uv run pytest— 1212 passed.Context
Noticed while adding an ADK agent harness (#137). ADK's
McpToolsetcaps itself atmcp<2, but only under itsmcp/all/testextras, so that ceiling does not enter our resolution. Capping at the root covers both consumers. Filed separately because it touches the api harness and every future MCP consumer, and deserves review on its own terms rather than buried in a feature PR.Tracked by #138.