ticket: close mcp tools call
This commit is contained in:
parent
656b0220c4
commit
24c8297df1
|
|
@ -1,8 +1,8 @@
|
||||||
---
|
---
|
||||||
title: 'MCP: execute tools/call through ordinary Tool path'
|
title: 'MCP: execute tools/call through ordinary Tool path'
|
||||||
state: 'done'
|
state: 'closed'
|
||||||
created_at: '2026-06-20T05:30:04Z'
|
created_at: '2026-06-20T05:30:04Z'
|
||||||
updated_at: '2026-06-20T09:18:12Z'
|
updated_at: '2026-06-20T09:18:51Z'
|
||||||
assignee: null
|
assignee: null
|
||||||
readiness: 'implementation_ready'
|
readiness: 'implementation_ready'
|
||||||
risk_flags: ['mcp', 'tools-call', 'permission', 'history', 'bounded-output']
|
risk_flags: ['mcp', 'tools-call', 'permission', 'history', 'bounded-output']
|
||||||
|
|
|
||||||
37
.yoi/tickets/00001KVHR3WSD/resolution.md
Normal file
37
.yoi/tickets/00001KVHR3WSD/resolution.md
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
## Resolution
|
||||||
|
|
||||||
|
`00001KVHR3WSD` を完了しました。
|
||||||
|
|
||||||
|
実装内容:
|
||||||
|
- MCP `tools/call` typed request/result/content types を追加しました。
|
||||||
|
- `McpStdioClient::call_tool(...)` を追加しました。
|
||||||
|
- MCP discovered tool の discovery-only stub を executable `McpStdioTool` に置き換えました。
|
||||||
|
- Execution は configured stdio MCP server を spawn/initialize し、`tools/call` を送信して shutdown します。
|
||||||
|
- Permission denial は ordinary Worker `PreToolCall` path により Tool execution 前に適用されるため、denied call は MCP server に送信されません。
|
||||||
|
- Results は ordinary Tool result/history path を通ります。Hidden context injection はありません。
|
||||||
|
- Normal MCP result、MCP `isError: true`、JSON-RPC protocol error を区別しました。
|
||||||
|
- MCP content / structuredContent / `_meta` / rich output は untrusted data として bounded に serialization されます。
|
||||||
|
- Image/audio data は raw payload を落とし、size metadata のみ残します。
|
||||||
|
- Resources/read、prompts/get、list_changed、sampling、elicitation は実装していません。
|
||||||
|
|
||||||
|
主な commit:
|
||||||
|
- `9a245403 mcp: execute stdio tool calls`
|
||||||
|
- `399a9d43 merge: mcp tools call`
|
||||||
|
|
||||||
|
Review:
|
||||||
|
- r1 は `approve`。
|
||||||
|
- Reviewer は permission-before-call、ordinary Tool result/history path、`isError` と protocol error の区別、bounded/untrusted result handling、out-of-scope surface が無いことを確認しました。
|
||||||
|
|
||||||
|
最終 validation:
|
||||||
|
- `cargo fmt --check`
|
||||||
|
- `git diff --check HEAD^1..HEAD`
|
||||||
|
- `cargo test -p mcp --test stdio_lifecycle`
|
||||||
|
- `cargo test -p pod feature::mcp`
|
||||||
|
- `cargo check -p mcp -p pod`
|
||||||
|
- `nix build .#yoi --no-link`
|
||||||
|
|
||||||
|
Package impact:
|
||||||
|
- `nix path-info -S .#yoi`: `113196368`
|
||||||
|
|
||||||
|
Validation log:
|
||||||
|
- `/run/user/1000/yoi/yoi-orchestrator/bash-output/bash-lkjYsX.log`
|
||||||
|
|
@ -259,3 +259,56 @@ Final state:
|
||||||
Implementation was merged into Orchestrator branch at `399a9d43`, review approved, and final Orchestrator validation passed: `cargo fmt --check`, `git diff --check HEAD^1..HEAD`, `cargo test -p mcp --test stdio_lifecycle`, `cargo test -p pod feature::mcp`, `cargo check -p mcp -p pod`, and `nix build .#yoi --no-link`.
|
Implementation was merged into Orchestrator branch at `399a9d43`, review approved, and final Orchestrator validation passed: `cargo fmt --check`, `git diff --check HEAD^1..HEAD`, `cargo test -p mcp --test stdio_lifecycle`, `cargo test -p pod feature::mcp`, `cargo check -p mcp -p pod`, and `nix build .#yoi --no-link`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<!-- event: state_changed author: hare at: 2026-06-20T09:18:51Z from: done to: closed reason: closed field: state -->
|
||||||
|
|
||||||
|
## State changed
|
||||||
|
|
||||||
|
Ticket を closed にしました。
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: close author: hare at: 2026-06-20T09:18:51Z status: closed -->
|
||||||
|
|
||||||
|
## 完了
|
||||||
|
|
||||||
|
## Resolution
|
||||||
|
|
||||||
|
`00001KVHR3WSD` を完了しました。
|
||||||
|
|
||||||
|
実装内容:
|
||||||
|
- MCP `tools/call` typed request/result/content types を追加しました。
|
||||||
|
- `McpStdioClient::call_tool(...)` を追加しました。
|
||||||
|
- MCP discovered tool の discovery-only stub を executable `McpStdioTool` に置き換えました。
|
||||||
|
- Execution は configured stdio MCP server を spawn/initialize し、`tools/call` を送信して shutdown します。
|
||||||
|
- Permission denial は ordinary Worker `PreToolCall` path により Tool execution 前に適用されるため、denied call は MCP server に送信されません。
|
||||||
|
- Results は ordinary Tool result/history path を通ります。Hidden context injection はありません。
|
||||||
|
- Normal MCP result、MCP `isError: true`、JSON-RPC protocol error を区別しました。
|
||||||
|
- MCP content / structuredContent / `_meta` / rich output は untrusted data として bounded に serialization されます。
|
||||||
|
- Image/audio data は raw payload を落とし、size metadata のみ残します。
|
||||||
|
- Resources/read、prompts/get、list_changed、sampling、elicitation は実装していません。
|
||||||
|
|
||||||
|
主な commit:
|
||||||
|
- `9a245403 mcp: execute stdio tool calls`
|
||||||
|
- `399a9d43 merge: mcp tools call`
|
||||||
|
|
||||||
|
Review:
|
||||||
|
- r1 は `approve`。
|
||||||
|
- Reviewer は permission-before-call、ordinary Tool result/history path、`isError` と protocol error の区別、bounded/untrusted result handling、out-of-scope surface が無いことを確認しました。
|
||||||
|
|
||||||
|
最終 validation:
|
||||||
|
- `cargo fmt --check`
|
||||||
|
- `git diff --check HEAD^1..HEAD`
|
||||||
|
- `cargo test -p mcp --test stdio_lifecycle`
|
||||||
|
- `cargo test -p pod feature::mcp`
|
||||||
|
- `cargo check -p mcp -p pod`
|
||||||
|
- `nix build .#yoi --no-link`
|
||||||
|
|
||||||
|
Package impact:
|
||||||
|
- `nix path-info -S .#yoi`: `113196368`
|
||||||
|
|
||||||
|
Validation log:
|
||||||
|
- `/run/user/1000/yoi/yoi-orchestrator/bash-output/bash-lkjYsX.log`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user