fix(keycardai-mcp): cap mcp below 2.0 (broken installs on PyPI right now) - #219
Merged
Conversation
mcp 2.0.0 published 2026-07-28. The floor was unbounded, so fresh installs began resolving onto the new major immediately, against code written for 1.x. Capping rather than porting because the wider ecosystem has not crossed over. Two of the four agent frameworks this package ships integrations for still pin mcp below 2.0 outright: openai-agents 0.19.0 mcp<2,>=1.19.0 crewai 1.15.8 mcp~=1.28.1 fastmcp 3.x pins it too. A hard mcp>=2.0 floor here would make keycardai-mcp uninstallable next to any of them. The 2.0 port itself is written and green in #218; it lands once those pins move. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
📦 Release PreviewThis analysis shows the expected release impact: 📈 Expected Version Changes📋 Package Details[
{
"package_name": "keycardai-mcp",
"package_dir": "packages/mcp",
"has_changes": true,
"current_version": "0.26.0",
"next_version": "0.27.0",
"increment": "MINOR"
}
]📝 Changelog PreviewThis comment was automatically generated by the release preview workflow. |
Contributor
Author
|
Superseded by #218, which does the full mcp 2.0 move instead of capping. Per the call to not maintain old versions: crewai / openai-agents / pydantic-ai users pin the prior keycardai-mcp minor until those frameworks accept mcp 2.0 (ECO-198). |
Fitzse
approved these changes
Jul 29, 2026
Contributor
📦 Release PreviewThis analysis shows the expected release impact: 📈 Expected Version Changes📋 Package Details[
{
"package_name": "keycardai-mcp",
"package_dir": "packages/mcp",
"has_changes": true,
"current_version": "0.26.0",
"next_version": "0.27.0",
"increment": "MINOR"
}
]📝 Changelog PreviewThis comment was automatically generated by the release preview workflow. |
Larry-Osakwe
pushed a commit
that referenced
this pull request
Jul 29, 2026
Rebased onto main now that #219 shipped the mcp<2.0 cap as keycardai-mcp 0.27.0. That version number invalidates the cap this branch carried. packages/fastmcp pinned "keycardai-mcp>=0.15.0,<0.27" on the assumption that 0.27 would be the mcp 2.0 port. It is not: 0.27.0 is the cap release, and it is the only published version that constrains mcp correctly. keycardai-mcp 0.26.0 mcp>=1.13.1 unbounded -> resolves mcp 2.0 keycardai-mcp 0.27.0 mcp>=1.28.1,<2.0 safe So "<0.27" excluded the one good version and forced the broken one. Now ">=0.27,<0.28": the floor guarantees the mcp cap is present, the ceiling excludes the 2.0 line this branch starts. Both standalone locks verified resolving keycardai-mcp 0.27.0 with mcp 1.29.0. Also resolved the pyproject conflict against main's cap by keeping this branch's mcp>=2.0.0,<3.0, and regenerated all three lockfiles from the merged manifests rather than hand-merging them. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
One-line dependency fix.
keycardai-mcpis broken on PyPI as of today.Reproduce
mcp2.0.0 published 2026-07-28 13:45 UTC and deletedmcp.server.fastmcp. The publishedkeycardai-mcp0.26.0 declaresmcp>=1.13.1with no upper bound, so every fresh install since then resolves onto the new major and fails to import. Not degraded — the primary entry point raises.The fix
That's the whole diff, plus the lockfile.
Why this is safe to stamp quickly
mcp1.28.1), 542 tests pass,ruff checkclean.Why not just ship the mcp 2.0 port instead
The port is done and green in #218, but it deserves an end-to-end run against a real zone before it reaches PyPI, and that hasn't happened yet. Shipping a tested one-line cap now and the port after it's been exercised is the right split — this PR is not a substitute for #218, it just stops the bleeding while #218 gets verified.
#218 will rebase over this trivially; it flips the same line to
mcp>=2.0.0,<3.0.🤖 Generated with Claude Code