PR #304 closed #206 by wiring the v3 dashboard MCP page to read-only /api/mcp/* introspection routes. The lifecycle mutations were intentionally stubbed with 501 mcp.not_implemented:
POST /api/mcp/install
DELETE /api/mcp/{id}
POST /api/mcp/{id}/{action} (start / stop / restart)
PATCH /api/mcp/{id}/config
This issue tracks landing the real implementations as part of ADR-0013's mcp_client.py allow-list work. Acceptance:
Reference:
PR #304 closed #206 by wiring the v3 dashboard MCP page to read-only
/api/mcp/*introspection routes. The lifecycle mutations were intentionally stubbed with501 mcp.not_implemented:POST /api/mcp/installDELETE /api/mcp/{id}POST /api/mcp/{id}/{action}(start / stop / restart)PATCH /api/mcp/{id}/configThis issue tracks landing the real implementations as part of ADR-0013's
mcp_client.pyallow-list work. Acceptance:{id, state: "installing"}and emits SSE progress framesui/src/api/hooks/useMcp.ts) keeps the existing surface; remove the 501-catch + toast paths once the routes go live_CATALOGinsrc/hal0/api/routes/mcp.pywith a real registry probeReference: