From db1f6fb6d15f4ee5f7313ecd5f291a962bc6b6d9 Mon Sep 17 00:00:00 2001 From: Hare Date: Sat, 20 Jun 2026 17:29:31 +0900 Subject: [PATCH] ticket: record mcp tool registration implementation report --- .yoi/tickets/00001KVHR3WS6/item.md | 2 +- .yoi/tickets/00001KVHR3WS6/thread.md | 48 ++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/.yoi/tickets/00001KVHR3WS6/item.md b/.yoi/tickets/00001KVHR3WS6/item.md index f84c353d..24758289 100644 --- a/.yoi/tickets/00001KVHR3WS6/item.md +++ b/.yoi/tickets/00001KVHR3WS6/item.md @@ -2,7 +2,7 @@ title: 'MCP: register server tools into ToolRegistry' state: 'inprogress' created_at: '2026-06-20T05:30:04Z' -updated_at: '2026-06-20T08:01:48Z' +updated_at: '2026-06-20T08:29:21Z' assignee: null readiness: 'implementation_ready' risk_flags: ['mcp', 'tools-list', 'tool-registry', 'schema', 'untrusted-metadata'] diff --git a/.yoi/tickets/00001KVHR3WS6/thread.md b/.yoi/tickets/00001KVHR3WS6/thread.md index 312099ec..d5e87a44 100644 --- a/.yoi/tickets/00001KVHR3WS6/thread.md +++ b/.yoi/tickets/00001KVHR3WS6/thread.md @@ -108,3 +108,51 @@ Next action: - Wait for Coder implementation report, then inspect branch diff/validation evidence and route to Reviewer。 --- + + + +## Implementation report + +Coder implementation report received from `yoi-coder-00001KVHR3WS6`. + +Implementation commit: +- `66fa9d55 mcp: register stdio server tools` + +Changed areas reported: +- `crates/mcp`: + - Added MCP `tools/list` protocol result/tool types。 + - Added `list_tools_page` and bounded paginated `list_tools_bounded`。 + - Added mock-server coverage for paginated `tools/list` and assertion that `tools/call` is not sent。 +- `crates/pod`: + - Added MCP stdio discovery feature module。 + - Resolves configured stdio servers, initializes them, calls bounded `tools/list`, normalizes discovered tools, and registers them through existing protocol-provider / ToolRegistry contribution paths。 + - Namespaces tools as stable names like `Mcp__`。 + - Rejects invalid schemas and duplicate normalized names with bounded diagnostics。 + - Ignores untrusted MCP metadata/annotations/instructions for authority purposes。 + - Registered tools are discovery-only and return explicit not-implemented error if invoked; no MCP `tools/call` execution is implemented in this Ticket。 +- `package.nix` / `Cargo.lock`: updated for new `pod -> mcp` dependency and refreshed `cargoHash`。 + +Coder validation reported: +- `cargo test -p mcp list_tools --test stdio_lifecycle` +- `cargo test -p pod feature::mcp --lib` +- `cargo test -p mcp` +- `cargo fmt --check` +- `cargo check -p pod -p mcp` +- `git diff --check` +- `nix build .#yoi --no-link` after refreshing stale `cargoHash`。 + +Known risks / deferrals reported: +- MCP tool execution remains intentionally unimplemented; registered discovery-only stubs never send `tools/call`。 +- Resources/prompts and `list_changed` handling are deferred。 +- Secret-backed MCP stdio env resolution currently passes no Pod secret store from this integration path; non-secret stdio configs are supported by this Ticket。 + +Orchestrator evidence checked before review dispatch: +- Implementation worktree is clean。 +- HEAD is `66fa9d55`。 +- Diff from acceptance `a59e5c1e..HEAD` is one implementation commit touching 9 files, about 852 insertions / 4 deletions。 +- `git diff --check a59e5c1e..HEAD` produced no diagnostics。 + +Next action: +- Dispatch Reviewer for r1 review against Ticket requirements, with focus on ToolRegistry contribution path, schema/name normalization, no `tools/call`, discovery-only invocation behavior, metadata authority boundaries, secret-store deferral, and tests。 + +---