requirements.txt asked for mcp[fastmcp]>=1.0.0 with no upper bound. mcp 2.0.0 (2026-07-28) removed mcp.server.fastmcp, which docs_mcp/server.py:28 imports.
The Jul 1 image predated 2.0.0 and resolved to 1.x. The Sep 1 rebuild picked up mcp 2.1.1, and drawbar-backend-seed-mcp-1 on trashpanda has been Restarting (1) ever since — nine days down.
File "/app/docs_mcp/server.py", line 28, in <module>
from mcp.server.fastmcp import FastMCP
ModuleNotFoundError: No module named 'mcp.server.fastmcp'
A ceiling to restore service, not the destination — the 2.x port lands separately.
Also adds the guard that would have caught this: the build runs python -c "import docs_mcp.server" inside the freshly built image and refuses to push if it fails. Import is side-effect-free (lazy singletons), so no Ollama/Chroma needed.
Still unpinned and due to break on their next rebuild: morpheus-docs, hvm-docs.
`requirements.txt` asked for `mcp[fastmcp]>=1.0.0` with no upper bound. mcp 2.0.0 (2026-07-28) removed `mcp.server.fastmcp`, which `docs_mcp/server.py:28` imports.
The Jul 1 image predated 2.0.0 and resolved to 1.x. The Sep 1 rebuild picked up **mcp 2.1.1**, and `drawbar-backend-seed-mcp-1` on trashpanda has been `Restarting (1)` ever since — nine days down.
```
File "/app/docs_mcp/server.py", line 28, in <module>
from mcp.server.fastmcp import FastMCP
ModuleNotFoundError: No module named 'mcp.server.fastmcp'
```
A **ceiling to restore service, not the destination** — the 2.x port lands separately.
Also adds the guard that would have caught this: the build runs `python -c "import docs_mcp.server"` inside the freshly built image and refuses to push if it fails. Import is side-effect-free (lazy singletons), so no Ollama/Chroma needed.
Still unpinned and due to break on their next rebuild: `morpheus-docs`, `hvm-docs`.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01FnVuG79cYPcRLTp4pC8ujR
requirements.txt asked for `mcp[fastmcp]>=1.0.0` with no upper bound.
mcp 2.0.0 (2026-07-28) removed `mcp.server.fastmcp` — renamed FastMCP to
MCPServer under mcp.server.mcpserver — and dropped the [fastmcp] extra.
docs_mcp/server.py:28 still imports the 1.x path.
The 2026-07-01 image predated 2.0.0, so it resolved to 1.x and ran fine.
The 2026-09-01 rebuild resolved to mcp 2.1.1, and the container has been
crash-looping ever since:
File "/app/docs_mcp/server.py", line 28, in <module>
from mcp.server.fastmcp import FastMCP
ModuleNotFoundError: No module named 'mcp.server.fastmcp'
That is nine days of seed-mcp being down for Drawbar's advisor. Same
failure took zerto-docs down on 2026-08-11; crop-chem-docs and
opsramp-docs were pinned then, seed-mcp was missed.
This is a ceiling to restore service, not the destination — the 2.x port
lands separately. It also adds the guard that would have caught this: the
build now runs `python -c "import docs_mcp.server"` inside the freshly
built image and refuses to push if that fails. Import is side-effect-free
(lazy singletons), so the check needs no Ollama or Chroma.
Still unpinned and due to break on their next rebuild: morpheus-docs,
hvm-docs.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01FnVuG79cYPcRLTp4pC8ujR
claude
merged commit e5ec32bff6 into main2026-09-10 14:06:30 -04:00
claude
deleted branch fix/pin-mcp-below-22026-09-10 14:06:30 -04:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
requirements.txtasked formcp[fastmcp]>=1.0.0with no upper bound. mcp 2.0.0 (2026-07-28) removedmcp.server.fastmcp, whichdocs_mcp/server.py:28imports.The Jul 1 image predated 2.0.0 and resolved to 1.x. The Sep 1 rebuild picked up mcp 2.1.1, and
drawbar-backend-seed-mcp-1on trashpanda has beenRestarting (1)ever since — nine days down.A ceiling to restore service, not the destination — the 2.x port lands separately.
Also adds the guard that would have caught this: the build runs
python -c "import docs_mcp.server"inside the freshly built image and refuses to push if it fails. Import is side-effect-free (lazy singletons), so no Ollama/Chroma needed.Still unpinned and due to break on their next rebuild:
morpheus-docs,hvm-docs.🤖 Generated with Claude Code
https://claude.ai/code/session_01FnVuG79cYPcRLTp4pC8ujR
requirements.txt asked for `mcp[fastmcp]>=1.0.0` with no upper bound. mcp 2.0.0 (2026-07-28) removed `mcp.server.fastmcp` — renamed FastMCP to MCPServer under mcp.server.mcpserver — and dropped the [fastmcp] extra. docs_mcp/server.py:28 still imports the 1.x path. The 2026-07-01 image predated 2.0.0, so it resolved to 1.x and ran fine. The 2026-09-01 rebuild resolved to mcp 2.1.1, and the container has been crash-looping ever since: File "/app/docs_mcp/server.py", line 28, in <module> from mcp.server.fastmcp import FastMCP ModuleNotFoundError: No module named 'mcp.server.fastmcp' That is nine days of seed-mcp being down for Drawbar's advisor. Same failure took zerto-docs down on 2026-08-11; crop-chem-docs and opsramp-docs were pinned then, seed-mcp was missed. This is a ceiling to restore service, not the destination — the 2.x port lands separately. It also adds the guard that would have caught this: the build now runs `python -c "import docs_mcp.server"` inside the freshly built image and refuses to push if that fails. Import is side-effect-free (lazy singletons), so the check needs no Ollama or Chroma. Still unpinned and due to break on their next rebuild: morpheus-docs, hvm-docs. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_01FnVuG79cYPcRLTp4pC8ujR