Highlights
Adopts the MCP spec 2026-07-28 — stateless request/response core, per-request _meta.io.modelcontextprotocol/protocolVersion + clientCapabilities, serverInfo on responses — by moving directly to the Anthropic Tier 1 Python SDK (mcp>=2.0.0,<3.0.0).
Delivers the follow-up promised in the v4.5.0-post CHANGELOG note about migrating off mcp.server.fastmcp.
What changed
mcp>=1.6.0,<2.0.0→mcp>=2.0.0,<3.0.0from mcp.server.fastmcp import FastMCP→from mcp.server import MCPServerFastMCP("knowledge-rag", host=, port=)→MCPServer("knowledge-rag", version="4.6.0")host/portnow belong tomcp.run()on non-stdio transports (v2 spec direction)- Server now advertises
version="4.6.0"inserverInfoper the 2026-07-28 spec
@mcp.tool() / @mcp.resource() / @mcp.prompt() decorator ergonomics are unchanged — the migration is a class rename + import path change.
Backwards compatibility
- All 13 MCP tool signatures unchanged (
check_api_surface --check: OK) - Every public function under
mcp_server.*frozen (test_backwards_compat.pygreen) - stdio users see zero behaviour change
- Suite: 417 passed / 0 failed across the 9-cell OS × Python matrix
Why not the third-party fastmcp package
An initial attempt via fastmcp (see closed PR #134) tripped Pillar 5 (perf regression gate): test_bench_orchestrator_idle_rss +21.9% RSS and test_bench_query_cache_5000_entries +17.1% RSS. Cutting the extras to fastmcp-slim[mcp] broke @mcp.tool() at runtime. Anthropic's mcp 2.x is the direct upstream reference — no third-party intermediary, no dependency bloat.
Install / upgrade
pip install --upgrade knowledge-rag # PyPI
npx -y knowledge-rag@4.6.0 # NPM
docker pull ghcr.io/lyonzin/knowledge-rag:4.6.0
Full changelog
See README.md#changelog — v4.6.0 entry.