From ec61ef6a67ae46868c7679a3c6c1aab5b5309a7b Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Tue, 28 Jul 2026 15:11:28 -0700 Subject: [PATCH] fix(keycardai-mcp): cap mcp below 2.0 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) --- packages/mcp/pyproject.toml | 2 +- uv.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mcp/pyproject.toml b/packages/mcp/pyproject.toml index 73f0677..6a17390 100644 --- a/packages/mcp/pyproject.toml +++ b/packages/mcp/pyproject.toml @@ -9,7 +9,7 @@ authors = [{ name = "Keycard", email = "support@keycard.ai" }] dependencies = [ "keycardai-oauth>=0.9.0", "keycardai-starlette>=0.6.0", - "mcp>=1.28.1", + "mcp>=1.28.1,<2.0", "pydantic>=2.11.7", "httpx>=0.27.2", "nanoid>=2.0.0", diff --git a/uv.lock b/uv.lock index bb40f5d..8bb5275 100644 --- a/uv.lock +++ b/uv.lock @@ -2263,7 +2263,7 @@ requires-dist = [ { name = "keycardai-starlette", editable = "packages/starlette" }, { name = "langchain", marker = "extra == 'test'", specifier = ">=1.0.5" }, { name = "langchain-openai", marker = "extra == 'test'", specifier = ">=1.0.2" }, - { name = "mcp", specifier = ">=1.28.1" }, + { name = "mcp", specifier = ">=1.28.1,<2.0" }, { name = "nanoid", specifier = ">=2.0.0" }, { name = "nest-asyncio", marker = "extra == 'crewai'", specifier = ">=1.6.0" }, { name = "openai-agents", marker = "extra == 'test'", specifier = ">=0.5.1" },