ticket: split mcp stdio roadmap
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"version": 1,
|
||||
"relations": [
|
||||
{
|
||||
"ticket_id": "00001KVHR3WS6",
|
||||
"kind": "depends_on",
|
||||
"target": "00001KVHR3WRY",
|
||||
"note": "Tool registration requires initialized MCP stdio lifecycle.",
|
||||
"author": "yoi ticket",
|
||||
"at": "2026-06-20T05:33:03Z"
|
||||
},
|
||||
{
|
||||
"ticket_id": "00001KVHR3WS6",
|
||||
"kind": "related",
|
||||
"target": "00001KTR81P9X",
|
||||
"note": "MCP tool registration uses feature dynamic contribution plumbing.",
|
||||
"author": "yoi ticket",
|
||||
"at": "2026-06-20T05:33:03Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
title: 'MCP: register server tools into ToolRegistry'
|
||||
state: 'ready'
|
||||
created_at: '2026-06-20T05:30:04Z'
|
||||
updated_at: '2026-06-20T05:33:03Z'
|
||||
assignee: null
|
||||
readiness: 'implementation_ready'
|
||||
risk_flags: ['mcp', 'tools-list', 'tool-registry', 'schema', 'untrusted-metadata']
|
||||
---
|
||||
|
||||
## 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/list` after 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/call` request 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`.
|
||||
@@ -0,0 +1,7 @@
|
||||
<!-- event: create author: "yoi ticket" at: 2026-06-20T05:30:04Z -->
|
||||
|
||||
## 作成
|
||||
|
||||
LocalTicketBackend によって作成されました。
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user