The one-line fix (and why)
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"
- Push your own work first. In your repo’s terminal, tell
claude: “Commit and push my current changes.” (Merging is easiest when your side is up to date.) - Accept the PR. Open your repo on GitHub → Pull requests → the one titled Fix: pin mcp<2 in render.yaml → read the one-line diff (always read the diff — even from your professor) → Merge pull request.
- Pull it down. Back in the terminal: “git pull” — or tell claude to. Render redeploys from the merge automatically; ~2 minutes later your service is up.
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.
