返回 CodeWhale
stdio_tools_and_exit.case.json
根目录 / crates / tui / tests / fixtures / conformance / mcp / stdio_tools_and_exit.case.json
1 {
2 "description": "A stdio server (a real POSIX-shell child the dispatch spawns): catalog, a plain result, an isError result, a JSON-RPC error, then a server that dies after reading its call. Pins Rust McpConnection::call_method / McpPool::call_tool_with_decision: a call whose child exited mid-flight fails as outcome-unknown and is NOT replayed (the server saw it once), and the next call reconnects a fresh child.",
3 "transport": "stdio",
4 "server_name": "conformance",
5 "server": {
6 "initialize": {
7 "result": {
8 "protocolVersion": "2024-11-05",
9 "serverInfo": {
10 "name": "stdio-fixture",
11 "version": "1.0.0"
12 },
13 "capabilities": {
14 "tools": {}
15 }
16 }
17 },
18 "tools/list": {
19 "result": {
20 "tools": [
21 {
22 "name": "echo",
23 "description": "Echo the text argument.",
24 "inputSchema": {
25 "type": "object",
26 "properties": {
27 "text": {
28 "type": "string"
29 }
30 }
31 }
32 },
33 {
34 "name": "fails",
35 "description": "Always reports a tool-level error.",
36 "inputSchema": {
37 "type": "object"
38 }
39 },
40 {
41 "name": "rpc-error",
42 "inputSchema": {
43 "type": "object"
44 }
45 },
46 {
47 "name": "dies",
48 "description": "Exits after reading the call, without answering.",
49 "inputSchema": {
50 "type": "object"
51 }
52 }
53 ]
54 }
55 },
56 "tools/call": [
57 {
58 "match": {
59 "name": "echo"
60 },
61 "result": {
62 "content": [
63 {
64 "type": "text",
65 "text": "echo from stdio"
66 }
67 ]
68 }
69 },
70 {
71 "match": {
72 "name": "fails"
73 },
74 "result": {
75 "content": [
76 {
77 "type": "text",
78 "text": "the stdio fixture tool failed on purpose"
79 }
80 ],
81 "isError": true
82 }
83 },
84 {
85 "match": {
86 "name": "rpc-error"
87 },
88 "error": {
89 "code": -32602,
90 "message": "invalid params: stdio"
91 }
92 },
93 {
94 "match": {
95 "name": "dies"
96 },
97 "exit": true
98 }
99 ]
100 },
101 "steps": [
102 {
103 "op": "catalog"
104 },
105 {
106 "op": "call",
107 "tool": "mcp_conformance_echo",
108 "input": {
109 "text": "hi"
110 }
111 },
112 {
113 "op": "call",
114 "tool": "mcp_conformance_fails",
115 "input": {}
116 },
117 {
118 "op": "call",
119 "tool": "mcp_conformance_rpc-error",
120 "input": {}
121 },
122 {
123 "op": "call",
124 "tool": "mcp_conformance_dies",
125 "input": {}
126 },
127 {
128 "op": "call",
129 "tool": "mcp_conformance_echo",
130 "input": {
131 "text": "after the child died"
132 }
133 },
134 {
135 "op": "catalog"
136 }
137 ]
138 }
139
139 lines JSON