fix: cap mcp below 2.0 (nightly CI break) - #18
Merged
Merged
Conversation
mcp 2.0.0 shipped and the unbounded `mcp>=1.10` range picked it up, so the nightly run failed while every push/PR run had passed: contract-check died on ImportError (streamablehttp_client -> streamable_http_client) and mypy flagged the same attribute. The defect is the missing ceiling, not the import. 2.0 is a real migration, not a rename: it also drops mcp.server.fastmcp (which examples/mcp_server.py and the whole contract-check demo depend on) and moves the HTTP client to httpx2, which the proxy would have to follow. That work deserves its own PR. Verified in a clean venv: the cap resolves to mcp 1.29.0 (newest 1.x, not just our pinned 1.28.1) and pytest, ruff, mypy, and `covenant check` all pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe project now requires ChangesMCP dependency constraint
Estimated code review effort: 1 (Trivial) | ~2 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What happened
mcp 2.0.0was released. Our dependency wasmcp>=1.10with no ceiling, so the scheduled run onmaininstalled it and failed — while every push/PR run from a week ago had passed:ImportError: cannot import name ''streamablehttp_client'' from ''mcp.client.streamable_http''. Did you mean: ''streamable_http_client''?The fix
mcp>=1.10,<2. The defect is the missing ceiling, not the import — a SemVer major is allowed to break, and an unbounded range on our core dependency invites exactly this.Why not migrate to 2.0 in this PR
2.0 is a real migration, not a rename:
streamablehttp_client→streamable_http_clientintrospect.pymcp.server.fastmcpremovedexamples/mcp_server.pyand the entire contract-check demo depend on ithttpx2httpxand would have to followThat deserves its own spec and PR, not a hotfix for red CI. The cap is deliberately narrow so lifting it is a one-line change when that work lands.
Verification
Clean venv, fresh
pip install -e .[dev]— the cap resolves to mcp 1.29.0 (newest 1.x, not just the 1.28.1 we had pinned locally), so this is tested against the version CI will actually install:pytest— exit 0ruff check .— cleanmypy covenant— clean (strict)covenant check— exit 0, no drift (the job that failed)🤖 Generated with Claude Code
Summary by CodeRabbit