# Real Python MCP dependency reproduction — planned before installation Date: 2026-10-13. Scope: local controlled experiment only; no publication, project dependency changes, or server source modifications. ## Selection Use the official `mcp-server-git==2026.7.10` PyPI distribution. Its declared SDK dependency is uncapped (`mcp>=1.0.0`), and upstream issue [servers#4580](https://github.com/modelcontextprotocol/servers/issues/4580) identifies the low-level `Server.list_tools` startup failure. The initially preferred time server is unsuitable for this exact symptom: the existing evidence says `mcp-server-time==2026.7.10` fails earlier on the renamed `McpError` import. That is a distinct failure; it will not be represented as a decorator failure. ## Planned environments and commands All environments, package caches, downloaded distributions, and uv tool binaries live below a newly created `/private/tmp/asn-real-mcp-*` directory. Only scripts, documentation, and sanitized evidence are retained here. 1. Read official PyPI metadata, including requirements and distribution SHA-256. 2. Natural old-version resolution: create a fresh venv, then `python -m pip install --isolated --index-url https://pypi.org/simple mcp-server-git==2026.7.10`; inspect the actually selected MCP version and launch unchanged server code. 3. Frozen broken environment: independently create a venv and install `mcp-server-git==2026.7.10 mcp==2.0.0`. Keep this environment intact for the parent task's independent diagnostic experiment. 4. pip repair: create a separate copy by installation, first install the same frozen broken requirements and check the failure, then execute `python -m pip install --isolated --index-url https://pypi.org/simple mcp-server-git==2026.7.10 'mcp<2'`. Record the actual 1.x resolution and an exact dependency freeze. 5. uv repair: use isolated `UV_TOOL_DIR`, `UV_TOOL_BIN_DIR`, `UV_CACHE_DIR`, and `UV_PYTHON_INSTALL_DIR`; install the broken combination with `uv tool install --with mcp==2.0.0 mcp-server-git==2026.7.10`, verify, then repair with `uv tool install --force --with 'mcp<2' mcp-server-git==2026.7.10`. ## Success criteria A minimal stdlib JSON-RPC client must await each response in sequence: `initialize`, `notifications/initialized`, `tools/list`, and actual `tools/call` of `git_status`. The only target is an empty temporary Git repository initialized by the experiment. Success requires a non-error tool result matching the empty repository's expected status, not merely process liveness or a nonempty tool list. Failed initialization must retain the real sanitized traceback and process exit code. Preserve package versions and hashes, Python/uv/pip/platform versions, install commands and sanitized excerpts, full JSON-RPC results for these bounded harmless operations, and exact freezes. Clearly distinguish today's natural resolution from deliberately frozen dependency combinations. No claim of an independent external user, community adoption, or production compatibility follows from this controlled local test.