The symptom — Render builds fine, then the service dies:
ModuleNotFoundError: No module named 'mcp.server.fastmcp'. This is mcp 2.x, where FastMCP was renamed to MCPServer…
The cause — one unpinned install. Your repo's render.yaml says:
buildCommand: pip install "mcp[cli]"
No version pin — so Render installs the newest mcp (2.x), which renamed the class our server imports. We pinned this in pyproject.toml last week after a classmate's clean Windows machine caught it — but Render's Blueprint never reads pyproject. Same bug, second unpinned door. The fix:
buildCommand: pip install "mcp[cli]>=1.2,<2"
claude: "Commit and push my current changes." (Merging is easiest when your side is up to date.)Why we did it this way instead of telling you the edit: this accept-and-pull loop is how fixes travel between collaborators on every real project. Tonight the bug is one line; the muscle is the point.
Metacognitive liner note: the pin existed. It was in the wrong file for this door. A safeguard you've documented is not yet a safeguard everywhere the failure can happen — that's tonight's free gem, if you want one.