feat: add MCP server module exposing search_regulations tool
- New backend/app/mcp/ module: MCPServer instance with a single search_regulations tool backed by the existing AgentConversationService. - MCPAuthMiddleware reuses existing JWT auth (no new auth mechanism). - Mounted at /mcp/ in api/main.py via Streamable HTTP transport; wired the MCP session manager into the existing lifespan() via AsyncExitStack (app.mount() does not propagate nested ASGI lifespans automatically). - Fixed a doubled /mcp/mcp path by setting streamable_http_path to "/" (MCPServer.streamable_http_app() defaults to registering its own /mcp route). - Verified end-to-end with the real mcp Python client: list_tools() returns search_regulations, auth correctly 401s without or with an invalid token. - 7 new tests, 76 total (up from 69), all passing. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -2,6 +2,10 @@
|
||||
fastapi>=0.110.0
|
||||
uvicorn[standard]>=0.27.0
|
||||
python-multipart>=0.0.9
|
||||
# MCP server module (backend/app/mcp/) — pin >=2.0.0: that release renamed the
|
||||
# older "FastMCP" class to "MCPServer" (mcp.server.MCPServer), which is the
|
||||
# class actually used in app/mcp/server.py.
|
||||
mcp>=2.0.0
|
||||
|
||||
# ── Config & utilities ────────────────────────────────────────────────────────
|
||||
pydantic>=2.0.0
|
||||
|
||||
Reference in New Issue
Block a user