1.8 KiB
1.8 KiB
| title | state | created_at | updated_at | assignee | readiness | risk_flags | queued_by | queued_at | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MCP: register server tools into ToolRegistry | inprogress | 2026-06-20T05:30:04Z | 2026-06-20T08:29:21Z | null | implementation_ready |
|
workspace-panel | 2026-06-20T05:58:58Z |
Background
Once a configured MCP stdio server can initialize, Yoi should expose discovered MCP tools as ordinary model-visible Yoi tools through the existing ToolRegistry path. Server-provided tool metadata and schemas are untrusted data.
This Ticket only registers tools discovered through tools/list. It does not implement tools/call execution.
Requirements
- Call MCP
tools/listafter initialize where supported. - Handle pagination / bounded listing.
- Normalize MCP tool names into stable namespaced Yoi tool names that include server namespace.
- Validate/normalize tool descriptions and input schemas as untrusted metadata.
- Reject invalid schemas, duplicate names, and collisions fail-closed with diagnostics.
- Register contributions through
pod::feature/ normal ToolRegistry path; no private MCP bypass. - Do not register resources/prompts in this Ticket.
Acceptance criteria
- MCP mock server tool appears as model-visible Yoi tool with stable namespaced name.
- Invalid schema is rejected with bounded diagnostic.
- Duplicate/colliding names are rejected fail-closed.
- Server metadata cannot weaken Yoi instructions/scope/permissions.
- No
tools/callrequest is sent during registration. - Tests cover valid registration, pagination/bounds, invalid schema, duplicate/collision, and untrusted metadata normalization.
Non-goals
- MCP tool execution.
- Resources/prompts operations.
- list_changed notifications.
Related work
- Depends on
00001KVHR3WRY. - Objective:
00001KTR80WMN.