| 1 | { |
| 2 | "description": "Tool annotations and the approval path. Pins Rust approval_hint_for / McpPool::record_tool_approval_hints through McpPool::to_api_tools: a server-declared destructiveHint makes the tool Destructive (each call keeps its prompt), but a readOnlyHint on an ordinary (non-reviewed-plugin) server relaxes nothing: annotations are claims, not proof. destructiveHint wins over readOnlyHint. The trusted-read-only hint needs a reviewed plugin and is not reachable from a transcript.", |
| 3 | "server_name": "conformance", |
| 4 | "server": { |
| 5 | "initialize": { |
| 6 | "result": { |
| 7 | "protocolVersion": "2025-06-18", |
| 8 | "serverInfo": { |
| 9 | "name": "catalog-fixture", |
| 10 | "version": "1.0.0" |
| 11 | }, |
| 12 | "capabilities": { |
| 13 | "tools": {} |
| 14 | } |
| 15 | } |
| 16 | }, |
| 17 | "tools/list": { |
| 18 | "result": { |
| 19 | "tools": [ |
| 20 | { |
| 21 | "name": "plain", |
| 22 | "inputSchema": { |
| 23 | "type": "object" |
| 24 | } |
| 25 | }, |
| 26 | { |
| 27 | "name": "reader", |
| 28 | "inputSchema": { |
| 29 | "type": "object" |
| 30 | }, |
| 31 | "annotations": { |
| 32 | "readOnlyHint": true |
| 33 | } |
| 34 | }, |
| 35 | { |
| 36 | "name": "deleter", |
| 37 | "inputSchema": { |
| 38 | "type": "object" |
| 39 | }, |
| 40 | "annotations": { |
| 41 | "destructiveHint": true |
| 42 | } |
| 43 | }, |
| 44 | { |
| 45 | "name": "confused", |
| 46 | "inputSchema": { |
| 47 | "type": "object" |
| 48 | }, |
| 49 | "annotations": { |
| 50 | "readOnlyHint": true, |
| 51 | "destructiveHint": true |
| 52 | } |
| 53 | }, |
| 54 | { |
| 55 | "name": "gentle_writer", |
| 56 | "inputSchema": { |
| 57 | "type": "object" |
| 58 | }, |
| 59 | "annotations": { |
| 60 | "destructiveHint": false |
| 61 | } |
| 62 | } |
| 63 | ] |
| 64 | } |
| 65 | } |
| 66 | }, |
| 67 | "steps": [ |
| 68 | { |
| 69 | "op": "catalog" |
| 70 | }, |
| 71 | { |
| 72 | "op": "approval_hints", |
| 73 | "tools": [ |
| 74 | "mcp_conformance_plain", |
| 75 | "mcp_conformance_reader", |
| 76 | "mcp_conformance_deleter", |
| 77 | "mcp_conformance_confused", |
| 78 | "mcp_conformance_gentle_writer" |
| 79 | ] |
| 80 | } |
| 81 | ] |
| 82 | } |
| 83 |