diff --git a/.github/scripts/run_integration_tests.py b/.github/scripts/run_integration_tests.py index 90627d1386..2e5513eb87 100644 --- a/.github/scripts/run_integration_tests.py +++ b/.github/scripts/run_integration_tests.py @@ -486,7 +486,8 @@ def main() -> None: print(f"[integration] wheel={wheel.name} sdist={sdist.name} profile={args.profile}") if args.profile == "mcp-v1": - for mcp_version in ("1.19.0", "1.29.0"): + # MCP 1.21.2 includes the Pydantic 2.14 import fix and the OAuth 401 scope hotfix. + for mcp_version in ("1.21.2", "1.29.0"): environment_kind = f"mcp-v1-{mcp_version}" python = create_environment( environment_kind, diff --git a/pyproject.toml b/pyproject.toml index 2fda55bf0d..cabbce26bc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,7 +13,7 @@ dependencies = [ "typing-extensions>=4.12.2, <5", "requests>=2.0, <3", "websockets>=15.0, <17", - "mcp>=1.19.0, <3; python_version >= '3.10'", + "mcp>=1.21.2, <3; python_version >= '3.10'", # Security floors for transitive runtime dependencies. "httpx2>=2.12.0", "pyjwt>=2.15.0", diff --git a/uv.lock b/uv.lock index 412e6374dc..90d4ea4dc0 100644 --- a/uv.lock +++ b/uv.lock @@ -2905,7 +2905,7 @@ requires-dist = [ { name = "h2", marker = "extra == 'modal'", specifier = ">=4.4.1" }, { name = "httpx2", specifier = ">=2.12.0" }, { name = "litellm", marker = "extra == 'litellm'", specifier = ">=1.83.0" }, - { name = "mcp", marker = "python_full_version >= '3.10'", specifier = ">=1.19.0,<3" }, + { name = "mcp", marker = "python_full_version >= '3.10'", specifier = ">=1.21.2,<3" }, { name = "modal", marker = "extra == 'modal'", specifier = "==1.4.3" }, { name = "numpy", marker = "python_full_version >= '3.10' and extra == 'voice'", specifier = ">=2.2.0,<3" }, { name = "openai", specifier = ">=3.0.0,<4" },