Skip to content

e2e: Protocol Builds uvx://arxiv-mcp-server broken repo-wide by Python mcp 2.0.0 (released today 13:45Z) #6108

Description

@JAORMX

Symptom

The E2E Tests Core (mcp-protocol) shard fails on the Protocol Builds test "Running MCP server using uvx:// protocol scheme → arxiv-mcp-server should build and start successfully":

Error: connect using both streamable-http and SSE transports: initialize MCP client:
Get "http://127.0.0.1:<port>/mcp": dial tcp 127.0.0.1:<port>: connect: connection refused

The workload builds, is reported running, then the proxy port refuses connections (the container crashes at startup, so the stdio proxy exits). Observed twice consecutively on #6107 (14:27Z and 14:40Z re-run); the same shard passed on #6096's run at 12:16Z. The npx:// Protocol Builds siblings pass in the same failing runs, so thv's build/proxy machinery is fine — this will fail on every PR regardless of its diff.

Root cause

Python mcp 2.0.0 was published to PyPI at 2026-07-28T13:45:28Z — exactly between the last green run (12:16Z) and the first failure (14:27Z). arxiv-mcp-server (latest 0.6.1, 2026-07-26) declares an unbounded mcp>=1.27.0, so every fresh uvx build now resolves the new major version and crashes at import:

File ".../arxiv_mcp_server/server.py", line 60, in <module>
  @server.list_prompts()
   ^^^^^^^^^^^^^^^^^^^
AttributeError: 'Server' object has no attribute 'list_prompts'

Reproduced in a clean venv: pip install arxiv-mcp-server (resolves mcp 2.0.0) → import crash above; pip install 'mcp<2' (1.29.0) → starts cleanly. The removed decorator is consistent with the 2026-07-28-revision deprecations landing in the 2.x Python SDK.

Suggested fixes (any one)

  1. Make the uvx:// e2e test constrain the resolution (if the uvx builder can pass --with 'mcp<2' or equivalent), or
  2. Switch the uvx:// test target to a package that pins its mcp dependency with an upper bound, or
  3. Upstream: PR to arxiv-mcp-server adding mcp>=1.27.0,<2 (helps everyone, but slowest path).

Until one lands, mcp-protocol shard failures matching this signature can be disregarded as unrelated to the PR under test. Not caused by #6107 (verified: its npx siblings green, failure is pre-protocol TCP refusal, and reproduction is toolhive-free).

🤖 Generated with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageIssue needs initial triage by a maintainer

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions