mcp 2.0.0 moved mcp.server.fastmcp to mcp.server.mcpserver, renamed FastMCP to MCPServer, and drops the [fastmcp] extra this file requests. With no upper bound, the next image rebuild resolves to 2.0.0 and the server crash-loops on import. That is not hypothetical: it happened to zerto-docs on 2026-08-11 at 02:27 UTC and took the server down until the host was rolled back. This repo shares the same unpinned line and would fail identically on its next rebuild. A ceiling, not a migration. The 2.x port is small (the import, the constructor, and stateless_http moving from the constructor to run()) but it changes how tool schemas are emitted, which is what decides tool routing, so it wants a before/after tools/list diff rather than a version bump.
34 lines
1.1 KiB
Plaintext
34 lines
1.1 KiB
Plaintext
# MCP server
|
|
# Pinned below 2.0: mcp 2.0.0 removed `mcp.server.fastmcp`, which this
|
|
# server imports. The unpinned floor pulled 2.0.0 into a rebuild on
|
|
# 2026-08-11 and crash-looped zerto-docs with
|
|
# "ModuleNotFoundError: No module named 'mcp.server.fastmcp'".
|
|
# 2.0 also drops the [fastmcp] extra. Migrating to the 2.x API is a
|
|
# deliberate piece of work — do not lift this pin without it.
|
|
mcp[fastmcp]>=1.0.0,<2
|
|
pydantic>=2.0
|
|
httpx>=0.27
|
|
|
|
# Vector store + embeddings
|
|
chromadb>=0.5.0
|
|
ollama>=0.4.0 # if using Ollama-hosted embedder; swap if not
|
|
|
|
# Scraping (Phase 1; adjust per product)
|
|
beautifulsoup4>=4.12
|
|
requests>=2.31
|
|
curl_cffi>=0.7 # for HPE QuickSpecs scrape (Chrome TLS impersonation)
|
|
markdownify>=0.11
|
|
# playwright>=1.40 # uncomment if you need headless browser fallback
|
|
|
|
# Evaluation
|
|
numpy>=1.26
|
|
|
|
# Reranker is a sidecar (see deploy/docker-compose.yml). The MCP server
|
|
# only needs httpx (declared above) to call it. For the dev / CPU
|
|
# fallback reranker (scripts/rerank_server.py), install
|
|
# requirements-rerank.txt separately — it pulls in PyTorch which would
|
|
# triple the production image size.
|
|
|
|
# Dev / utility
|
|
python-dateutil>=2.8
|