feat(runtime+tools): McpToolRegistry — MCP lifecycle bridge for tool surface

Add McpToolRegistry in crates/runtime/src/mcp_tool_bridge.rs and wire
it into all 4 MCP tool handlers in crates/tools/src/lib.rs.

Runtime additions:
- McpToolRegistry: register/get/list servers, list/read resources,
  call tools, set auth status, disconnect
- McpConnectionStatus enum (Disconnected/Connecting/Connected/AuthRequired/Error)
- Connection-state validation (reject ops on disconnected servers)
- Resource URI lookup, tool name validation before dispatch

Tool wiring:
- ListMcpResources: queries registry for server resources
- ReadMcpResource: looks up specific resource by URI
- McpAuth: returns server auth/connection status
- MCP (tool proxy): validates + dispatches tool calls through registry

8 new tests covering all lifecycle paths + error cases.
Bridges to existing McpServerManager for actual JSON-RPC execution.
This commit is contained in:
Jobdori
2026-04-03 17:39:35 +09:00
parent 0195162f57
commit 730667f433
3 changed files with 491 additions and 24 deletions

View File

@@ -9,6 +9,7 @@ mod json;
mod mcp;
mod mcp_client;
mod mcp_stdio;
pub mod mcp_tool_bridge;
mod oauth;
mod permissions;
mod prompt;