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

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