staff-mcp 1.0.14 → 1.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -1
- package/README_zh.md +14 -1
- package/dist/src/index.js +36 -12
- package/dist/src/index.js.map +1 -1
- package/dist/src/server.d.ts +1 -1
- package/dist/src/server.js +17 -15
- package/dist/src/server.js.map +1 -1
- package/dist/src/tools/mcp-client-tools.d.ts +3 -1
- package/dist/src/tools/mcp-client-tools.js +18 -6
- package/dist/src/tools/mcp-client-tools.js.map +1 -1
- package/dist/src/tools/shell-tools.js +11 -2
- package/dist/src/tools/shell-tools.js.map +1 -1
- package/dist/src/transports/http.d.ts +1 -12
- package/dist/src/transports/http.js +37 -51
- package/dist/src/transports/http.js.map +1 -1
- package/dist/src/transports/reverse.d.ts +13 -0
- package/dist/src/transports/reverse.js +43 -0
- package/dist/src/transports/reverse.js.map +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -46,6 +46,16 @@ Add the following to your `claude_desktop_config.json`:
|
|
|
46
46
|
}
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
+
### 4. Reverse MCP Mode (Intranet Penetration)
|
|
50
|
+
Connect your local machine to a centralized remote gateway (like `chat-ai`) from behind NAT/Firewalls. No local open ports required! It automatically handles disconnects and infinite retries.
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npx -y staff-mcp@latest -t reverse \
|
|
54
|
+
--ru https://chat.your-domain.com/api/mcp-reverse \
|
|
55
|
+
--rt your_secure_token_here \
|
|
56
|
+
--rn my-macbook-pro
|
|
57
|
+
```
|
|
58
|
+
|
|
49
59
|
---
|
|
50
60
|
|
|
51
61
|
## 🛠️ Core Capabilities
|
|
@@ -91,9 +101,12 @@ It will securely download, configure, and reload the skill without you lifting a
|
|
|
91
101
|
| `-r, --profile` | The active profile for skills (e.g., android-reverse) | `default` |
|
|
92
102
|
| `--docker` | Run inside a Docker container using this image | `undefined` |
|
|
93
103
|
| `-D, --docker-args` | Extra args for `docker run` (e.g., `-e FOO=BAR`) | `[]` |
|
|
94
|
-
| `-t, --transport` | Transport type (`stdio` or `
|
|
104
|
+
| `-t, --transport` | Transport type (`stdio`, `http`, or `reverse`) | `stdio` |
|
|
95
105
|
| `-p, --port` | Port for HTTP server | `3000` |
|
|
96
106
|
| `-h, --host` | Host for HTTP server | `127.0.0.1` |
|
|
107
|
+
| `--ru, --reverse-url` | URL for Reverse MCP Gateway | `undefined` |
|
|
108
|
+
| `--rt, --reverse-token` | Security token for Reverse MCP | `undefined` |
|
|
109
|
+
| `--rn, --reverse-name` | Server name for Reverse MCP | `undefined` |
|
|
97
110
|
|
|
98
111
|
### Hardware Pass-through Example (Android Reverse Engineering)
|
|
99
112
|
If you need the AI to interact with an Android device connected via USB while running inside a container, utilizing network-based ADB pass-through is the most reliable cross-platform solution:
|
package/README_zh.md
CHANGED
|
@@ -46,6 +46,16 @@ npx -y staff-mcp@latest --docker chineseastar/security:latest --profile android-
|
|
|
46
46
|
}
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
+
### 4. Reverse MCP 模式 (内网穿透)
|
|
50
|
+
身处 NAT 或防火墙深处?无需公网 IP 和端口映射,主动连回中心化的远端网关 (如 `chat-ai`)!自带断线重连与无限重试机制。
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npx -y staff-mcp@latest -t reverse \
|
|
54
|
+
--ru https://chat.your-domain.com/api/mcp-reverse \
|
|
55
|
+
--rt your_secure_token_here \
|
|
56
|
+
--rn my-macbook-pro
|
|
57
|
+
```
|
|
58
|
+
|
|
49
59
|
---
|
|
50
60
|
|
|
51
61
|
## 🛠️ 核心能力
|
|
@@ -91,9 +101,12 @@ npx -y staff-mcp@latest --profile android-reverse
|
|
|
91
101
|
| `-r, --profile` | 当前激活的技能档案/工种 (如 android-reverse) | `default` |
|
|
92
102
|
| `--docker` | 在指定的 Docker 镜像内运行 AI | `undefined` |
|
|
93
103
|
| `-D, --docker-args` | 传递给 `docker run` 的自定义底层参数 | `[]` |
|
|
94
|
-
| `-t, --transport` | 传输协议 (`stdio` 或 `
|
|
104
|
+
| `-t, --transport` | 传输协议 (`stdio`, `http`, 或 `reverse`) | `stdio` |
|
|
95
105
|
| `-p, --port` | HTTP 服务的监听端口 | `3000` |
|
|
96
106
|
| `-h, --host` | HTTP 服务的监听地址 | `127.0.0.1` |
|
|
107
|
+
| `--ru, --reverse-url` | Reverse MCP 网关的远端 URL | `undefined` |
|
|
108
|
+
| `--rt, --reverse-token` | Reverse MCP 的安全认证令牌 | `undefined` |
|
|
109
|
+
| `--rn, --reverse-name` | Reverse MCP 的服务注册名称 | `undefined` |
|
|
97
110
|
|
|
98
111
|
### 硬件透传案例 (Android 移动端逆向)
|
|
99
112
|
如果你希望 AI 在容器内运行时,仍能连接并控制物理机上的 Android 手机,利用基于网络端口的 ADB 透传是最稳妥的跨平台方案:
|
package/dist/src/index.js
CHANGED
|
@@ -5,9 +5,10 @@ import * as fs from "fs";
|
|
|
5
5
|
import * as os from "os";
|
|
6
6
|
import { spawn } from "child_process";
|
|
7
7
|
import { fileURLToPath } from "url";
|
|
8
|
-
import {
|
|
8
|
+
import { createServerFactory } from "./server.js";
|
|
9
9
|
import { startStdioServer } from "./transports/stdio.js";
|
|
10
10
|
import { startHttpServer } from "./transports/http.js";
|
|
11
|
+
import { startReverseServer } from "./transports/reverse.js";
|
|
11
12
|
import { ensureStaffDirs } from "./utils/paths.js";
|
|
12
13
|
// Global error handlers to prevent the MCP server from crashing due to unhandled child process errors
|
|
13
14
|
process.on("uncaughtException", (err) => {
|
|
@@ -28,12 +29,16 @@ program
|
|
|
28
29
|
.name("staff-mcp")
|
|
29
30
|
.description("MCP Server with file, shell, and LSP capabilities.")
|
|
30
31
|
.version("1.0.0")
|
|
31
|
-
.option("-t, --transport <type>", "Transport type (stdio
|
|
32
|
+
.option("-t, --transport <type>", "Transport type (stdio, http, reverse)", "stdio")
|
|
32
33
|
.option("-p, --port <number>", "Port for HTTP server", "3000")
|
|
33
34
|
.option("-h, --host <address>", "Host for HTTP server", "127.0.0.1")
|
|
35
|
+
.option("--ru, --reverse-url <url>", "URL for Reverse MCP Gateway (e.g. http://localhost:3000/api/mcp-reverse)")
|
|
36
|
+
.option("--rt, --reverse-token <token>", "Security token for Reverse MCP")
|
|
37
|
+
.option("--rn, --reverse-name <name>", "Server name for Reverse MCP")
|
|
34
38
|
.option("-w, --working-dir <path>", "Working directory for the server (defaults to current execution path)", process.cwd())
|
|
35
39
|
.option("-d, --allowed-dir <paths...>", "Additional directories allowed for sandbox", [])
|
|
36
40
|
.option("-r, --profile <name>", "The active profile for skills and instructions (e.g., android-reverse, default)", "default")
|
|
41
|
+
.option("-m, --max-mcp-sessions <number>", "Maximum number of concurrent MCP sessions allowed", "5")
|
|
37
42
|
.option("--docker <image>", "Run the MCP server inside a Docker container using the specified image")
|
|
38
43
|
.option("-D, --docker-args <args...>", "Additional arguments to pass to the docker run command (e.g., -e ADB_SERVER_SOCKET=...)")
|
|
39
44
|
.allowUnknownOption()
|
|
@@ -97,13 +102,23 @@ program
|
|
|
97
102
|
// 9. Reconstruct the command inside the container
|
|
98
103
|
dockerArgs.push("node", "/opt/staff-mcp/dist/src/index.js");
|
|
99
104
|
dockerArgs.push("-t", options.transport);
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
105
|
+
if (options.transport === "reverse") {
|
|
106
|
+
if (options.reverseUrl)
|
|
107
|
+
dockerArgs.push("--ru", options.reverseUrl);
|
|
108
|
+
if (options.reverseToken)
|
|
109
|
+
dockerArgs.push("--rt", options.reverseToken);
|
|
110
|
+
if (options.reverseName)
|
|
111
|
+
dockerArgs.push("--rn", options.reverseName);
|
|
104
112
|
}
|
|
105
113
|
else {
|
|
106
|
-
dockerArgs.push("-
|
|
114
|
+
dockerArgs.push("-p", String(options.port));
|
|
115
|
+
// Inside container, we must listen on all interfaces for HTTP to be exposed
|
|
116
|
+
if (options.transport === "http") {
|
|
117
|
+
dockerArgs.push("-h", "0.0.0.0");
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
dockerArgs.push("-h", options.host);
|
|
121
|
+
}
|
|
107
122
|
}
|
|
108
123
|
dockerArgs.push("-w", "/workspace");
|
|
109
124
|
if (options.allowedDir && options.allowedDir.length > 0) {
|
|
@@ -112,6 +127,7 @@ program
|
|
|
112
127
|
});
|
|
113
128
|
}
|
|
114
129
|
dockerArgs.push("-r", options.profile);
|
|
130
|
+
dockerArgs.push("-m", String(options.maxMcpSessions));
|
|
115
131
|
// 10. Spawn Docker and pipe I/O natively
|
|
116
132
|
const child = spawn("docker", dockerArgs, { stdio: ["pipe", "inherit", "inherit"] });
|
|
117
133
|
process.stdin.pipe(child.stdin);
|
|
@@ -127,8 +143,8 @@ program
|
|
|
127
143
|
// -------------------------------------------------------------
|
|
128
144
|
// Auto-exit if we are running as a proxy child and the host pipe breaks
|
|
129
145
|
if (process.env.STAFF_MCP_IS_DOCKER === "1") {
|
|
130
|
-
if (options.transport
|
|
131
|
-
process.stdin.resume(); // keep reading to detect end in
|
|
146
|
+
if (options.transport !== "stdio") {
|
|
147
|
+
process.stdin.resume(); // keep reading to detect end in non-stdio modes
|
|
132
148
|
}
|
|
133
149
|
process.stdin.on("end", () => {
|
|
134
150
|
console.error("[staff-mcp] Host pipe closed, terminating container...");
|
|
@@ -142,12 +158,20 @@ program
|
|
|
142
158
|
const workingDir = path.resolve(options.workingDir);
|
|
143
159
|
const allowedDirs = options.allowedDir.map((d) => path.resolve(d));
|
|
144
160
|
const profile = options.profile;
|
|
145
|
-
const
|
|
161
|
+
const maxMcpSessions = parseInt(options.maxMcpSessions, 10) || 5;
|
|
162
|
+
const serverFactory = createServerFactory("staff-mcp", "1.0.0", workingDir, allowedDirs, profile, maxMcpSessions);
|
|
146
163
|
if (options.transport === "http") {
|
|
147
|
-
await startHttpServer(
|
|
164
|
+
await startHttpServer(serverFactory, parseInt(options.port, 10), options.host);
|
|
165
|
+
}
|
|
166
|
+
else if (options.transport === "reverse") {
|
|
167
|
+
if (!options.reverseUrl || !options.reverseToken || !options.reverseName) {
|
|
168
|
+
console.error("[staff-mcp] Error: --ru (reverse-url), --rt (reverse-token), and --rn (reverse-name) are required for reverse transport.");
|
|
169
|
+
process.exit(1);
|
|
170
|
+
}
|
|
171
|
+
await startReverseServer(serverFactory(), options.reverseUrl, options.reverseToken, options.reverseName);
|
|
148
172
|
}
|
|
149
173
|
else {
|
|
150
|
-
await startStdioServer(
|
|
174
|
+
await startStdioServer(serverFactory());
|
|
151
175
|
}
|
|
152
176
|
});
|
|
153
177
|
program.parse(process.argv);
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/server.d.ts
CHANGED
|
@@ -8,4 +8,4 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
8
8
|
* @param profile The active profile for skills and instructions.
|
|
9
9
|
* @returns An initialized McpServer instance.
|
|
10
10
|
*/
|
|
11
|
-
export declare function
|
|
11
|
+
export declare function createServerFactory(name: string, version: string, workingDir: string, allowedDirs: string[], profile?: string, maxMcpSessions?: number): () => McpServer;
|
package/dist/src/server.js
CHANGED
|
@@ -15,23 +15,25 @@ import { getMcpInstructions } from "./tools/system-tools.js";
|
|
|
15
15
|
* @param profile The active profile for skills and instructions.
|
|
16
16
|
* @returns An initialized McpServer instance.
|
|
17
17
|
*/
|
|
18
|
-
export function
|
|
18
|
+
export function createServerFactory(name, version, workingDir, allowedDirs, profile = "default", maxMcpSessions = 5) {
|
|
19
19
|
const security = new SecurityManager(workingDir, allowedDirs);
|
|
20
20
|
// Generate instructions with system-specific details (OS, shell, etc.)
|
|
21
21
|
const instructions = getMcpInstructions(workingDir, security);
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
22
|
+
return () => {
|
|
23
|
+
const server = new McpServer({
|
|
24
|
+
name,
|
|
25
|
+
version,
|
|
26
|
+
}, {
|
|
27
|
+
// Pass the instruction string to the initialize response
|
|
28
|
+
instructions,
|
|
29
|
+
});
|
|
30
|
+
// Register all functional tool modules
|
|
31
|
+
registerFileTools(server, security);
|
|
32
|
+
registerShellTools(server, security);
|
|
33
|
+
registerLspTools(server, security);
|
|
34
|
+
registerSkillTools(server, workingDir, security, profile);
|
|
35
|
+
registerMcpClientTools(server, { maxSessions: maxMcpSessions });
|
|
36
|
+
return server;
|
|
37
|
+
};
|
|
36
38
|
}
|
|
37
39
|
//# sourceMappingURL=server.js.map
|
package/dist/src/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,OAAe,EAAE,UAAkB,EAAE,WAAqB,EAAE,UAAkB,SAAS,EAAE,iBAAyB,CAAC;IACnK,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAE9D,uEAAuE;IACvE,MAAM,YAAY,GAAG,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAE9D,OAAO,GAAG,EAAE;QACV,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;YACE,IAAI;YACJ,OAAO;SACR,EACD;YACE,yDAAyD;YACzD,YAAY;SACb,CACF,CAAC;QAEF,uCAAuC;QACvC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACnC,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1D,sBAAsB,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;QAEhE,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -18,7 +18,7 @@ function getReadySession(sessionId) {
|
|
|
18
18
|
}
|
|
19
19
|
return session;
|
|
20
20
|
}
|
|
21
|
-
export function registerMcpClientTools(server) {
|
|
21
|
+
export function registerMcpClientTools(server, options = { maxSessions: 5 }) {
|
|
22
22
|
// 1. manage_mcp_session (combines start, stop, list)
|
|
23
23
|
server.registerTool("manage_mcp_session", {
|
|
24
24
|
description: "Manage background Model Context Protocol (MCP) server processes. Actions: 'start' (requires sessionId, command, args), 'stop' (requires sessionId), 'list'.",
|
|
@@ -60,6 +60,18 @@ export function registerMcpClientTools(server) {
|
|
|
60
60
|
isError: true
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
|
+
if (sessions.size >= options.maxSessions) {
|
|
64
|
+
const activeSessions = Array.from(sessions.entries()).map(([id, s]) => `- [${id}] (Command: ${s.command} ${s.args.join(" ")}) - Status: ${s.status}`).join("\n");
|
|
65
|
+
return {
|
|
66
|
+
content: [{
|
|
67
|
+
type: "text",
|
|
68
|
+
text: `Error: Maximum active MCP session limit (${options.maxSessions}) reached.\n` +
|
|
69
|
+
`Please use the 'stop' action to close an unused session before starting a new one.\n\n` +
|
|
70
|
+
`Current active sessions:\n${activeSessions}`
|
|
71
|
+
}],
|
|
72
|
+
isError: true
|
|
73
|
+
};
|
|
74
|
+
}
|
|
63
75
|
try {
|
|
64
76
|
const client = new Client({ name: "staff-mcp-proxy", version: "1.0.0" }, { capabilities: {} });
|
|
65
77
|
let transport;
|
|
@@ -106,7 +118,7 @@ export function registerMcpClientTools(server) {
|
|
|
106
118
|
sessionId, command, args, process: sessionProcess, client, transport,
|
|
107
119
|
status: "ready", startedAt: new Date()
|
|
108
120
|
});
|
|
109
|
-
return { content: [{ type: "text", text: `Successfully started and connected to MCP session '${sessionId}' via http transport.
|
|
121
|
+
return { content: [{ type: "text", text: `Successfully started and connected to MCP session '${sessionId}' via http transport. (Active sessions: ${sessions.size}/${options.maxSessions})\nUse 'explore_mcp_session' to discover available tools.` }] };
|
|
110
122
|
}
|
|
111
123
|
else {
|
|
112
124
|
transport = new StdioClientTransport({ command, args });
|
|
@@ -116,7 +128,7 @@ export function registerMcpClientTools(server) {
|
|
|
116
128
|
});
|
|
117
129
|
await client.connect(transport);
|
|
118
130
|
sessions.get(sessionId).status = "ready";
|
|
119
|
-
return { content: [{ type: "text", text: `Successfully started and connected to MCP session '${sessionId}' via stdio.
|
|
131
|
+
return { content: [{ type: "text", text: `Successfully started and connected to MCP session '${sessionId}' via stdio. (Active sessions: ${sessions.size}/${options.maxSessions})\nUse 'explore_mcp_session' to discover available tools.` }] };
|
|
120
132
|
}
|
|
121
133
|
}
|
|
122
134
|
catch (err) {
|
|
@@ -145,13 +157,13 @@ export function registerMcpClientTools(server) {
|
|
|
145
157
|
finally {
|
|
146
158
|
sessions.delete(sessionId);
|
|
147
159
|
}
|
|
148
|
-
return { content: [{ type: "text", text: `Session '${sessionId}' successfully stopped
|
|
160
|
+
return { content: [{ type: "text", text: `Session '${sessionId}' successfully stopped. (Active sessions: ${sessions.size}/${options.maxSessions})` }] };
|
|
149
161
|
}
|
|
150
162
|
else if (action === "list") {
|
|
151
163
|
if (sessions.size === 0) {
|
|
152
|
-
return { content: [{ type: "text", text:
|
|
164
|
+
return { content: [{ type: "text", text: `No active MCP sessions. (Active sessions: 0/${options.maxSessions})` }] };
|
|
153
165
|
}
|
|
154
|
-
let output =
|
|
166
|
+
let output = `Active MCP Sessions (${sessions.size}/${options.maxSessions}):\n`;
|
|
155
167
|
for (const [id, session] of sessions.entries()) {
|
|
156
168
|
output += `- [${id}] Status: ${session.status}, Command: ${session.command} ${session.args.join(" ")}\n`;
|
|
157
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client-tools.js","sourceRoot":"","sources":["../../../src/tools/mcp-client-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-client-tools.js","sourceRoot":"","sources":["../../../src/tools/mcp-client-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAcnG,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE/C;;GAEG;AACH,SAAS,eAAe,CAAC,SAAiB;IACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,SAAS,yFAAyF,CAAC,CAAC;IACtI,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,gBAAgB,SAAS,4CAA4C,OAAO,CAAC,MAAM,sEAAsE,CAAC,CAAC;IAC7K,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,UAAmC,EAAE,WAAW,EAAE,CAAC,EAAE;IAC7G,qDAAqD;IACrD,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EAAE,6JAA6J;QAC1K,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YAC5F,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;YACnH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;YAC1G,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;YACxG,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sGAAsG,CAAC;YACpK,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8FAA8F,CAAC;SACrI,CAAC,CAAC,MAAM,EAAE;KACZ,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE;QAClE,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;gBACpC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,4EAA4E,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC5I,CAAC;YAED,iDAAiD;YACjD,IAAI,kBAAkB,GAAG,aAAa,IAAI,OAAO,CAAC;YAClD,IAAI,aAAa,GAAG,IAAI,CAAC;YAEzB,6DAA6D;YAC7D,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;gBAC1B,kBAAkB,GAAG,MAAM,CAAC;YAC/B,CAAC;YAED,+EAA+E;YAC/E,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC7G,kBAAkB,GAAG,MAAM,CAAC;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACtF,IAAI,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;oBACf,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpD,CAAC;qBAAM,CAAC;oBACJ,aAAa,GAAG,IAAI,CAAC;gBACzB,CAAC;YACL,CAAC;YACD,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;gBAC1C,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,SAAS,iCAAiC,QAAQ,CAAC,MAAM,gDAAgD,EAAE,CAAC;oBACxJ,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACzC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CACpE,MAAM,EAAE,eAAe,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAC9E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEb,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,4CAA4C,OAAO,CAAC,WAAW,cAAc;gCAC7E,wFAAwF;gCACxF,6BAA6B,cAAc,EAAE;yBACpD,CAAC;oBACF,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC/F,IAAI,SAAc,CAAC;gBACnB,IAAI,cAAc,GAAwB,IAAI,CAAC;gBAE/C,IAAI,kBAAkB,KAAK,MAAM,EAAE,CAAC;oBAChC,IAAI,CAAC,aAAa,EAAE,CAAC;wBACjB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+CAA+C,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oBACjH,CAAC;oBACD,cAAc,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC3E,cAAc,CAAC,KAAK,EAAE,CAAC;oBAEvB,6BAA6B;oBAC7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;oBAExD,IAAI,SAAS,GAAG,KAAK,CAAC;oBACtB,IAAI,OAAY,CAAC;oBAEjB,+BAA+B;oBAC/B,IAAI,CAAC;wBACD,SAAS,GAAG,IAAI,6BAA6B,CAAC,IAAI,GAAG,CAAC,oBAAoB,aAAa,MAAM,CAAC,CAAC,CAAC;wBAChG,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;wBAChC,SAAS,GAAG,IAAI,CAAC;oBACrB,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACT,OAAO,GAAG,CAAC,CAAC;wBACZ,qBAAqB;wBACrB,IAAI,CAAC;4BACD,0GAA0G;4BAC1G,SAAS,GAAG,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,oBAAoB,aAAa,MAAM,CAAC,CAAC,CAAC;4BACrF,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;4BAChC,SAAS,GAAG,IAAI,CAAC;wBACrB,CAAC;wBAAC,OAAO,EAAE,EAAE,CAAC;4BACV,OAAO,GAAG,EAAE,CAAC;wBACjB,CAAC;oBACL,CAAC;oBAED,IAAI,CAAC,SAAS,EAAE,CAAC;wBACb,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC;4BACrB,IAAI,CAAC;gCAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;4BAAC,CAAC;4BAAC,OAAM,CAAC,EAAE,CAAC,CAAA,CAAC;wBACpE,CAAC;wBACD,MAAM,IAAI,KAAK,CAAC,mFAAmF,aAAa,MAAM,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;oBACjK,CAAC;oBAED,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE;wBACtB,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS;wBACpE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE;qBACvC,CAAC,CAAC;oBAEH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sDAAsD,SAAS,2CAA2C,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,2DAA2D,EAAE,CAAC,EAAE,CAAC;gBAC5P,CAAC;qBAAM,CAAC;oBACJ,SAAS,GAAG,IAAI,oBAAoB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;oBAExD,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE;wBACtB,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS;wBACpE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE;qBAC1C,CAAC,CAAC;oBAEH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAChC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,MAAM,GAAG,OAAO,CAAC;oBAE1C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sDAAsD,SAAS,kCAAkC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,2DAA2D,EAAE,CAAC,EAAE,CAAC;gBACnP,CAAC;YACH,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC3B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,SAAS,MAAM,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC5H,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mDAAmD,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACnH,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,SAAS,cAAc,EAAE,CAAC,EAAE,CAAC;YACpF,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC7B,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;oBAC1C,IAAI,CAAC;wBAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAAC,CAAC;oBAAC,OAAM,CAAC,EAAE,CAAC,CAAA,CAAC;gBACpE,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;oBAAS,CAAC;gBACtB,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,SAAS,6CAA6C,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC;QAC1J,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+CAA+C,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC;YACtH,CAAC;YACD,IAAI,MAAM,GAAG,wBAAwB,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,MAAM,CAAC;YAChF,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC/C,MAAM,IAAI,MAAM,EAAE,aAAa,OAAO,CAAC,MAAM,cAAc,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAC3G,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACvD,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3F,CAAC,CACF,CAAC;IAEF,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,gIAAgI;QAC7I,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAC3D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;SACjH,CAAC,CAAC,MAAM,EAAE;KACZ,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;YAE3C,yCAAyC;YACzC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAErD,IAAI,QAAQ,EAAE,CAAC;gBACb,2DAA2D;gBAC3D,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;gBAChE,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,QAAQ,2BAA2B,SAAS,uBAAuB,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;wBAC9J,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,IAAI,MAAM,GAAG,SAAS,IAAI,CAAC,IAAI,kBAAkB,IAAI,CAAC,WAAW,IAAI,KAAK,uCAAuC,CAAC;gBAClH,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACpD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAEvD,CAAC;iBAAM,CAAC;gBACN,2DAA2D;gBAC3D,IAAI,MAAM,GAAG,YAAY,SAAS,IAAI,CAAC;gBAEvC,kBAAkB;gBAClB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBACxD,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,IAAI,WAAW,aAAa,CAAC,IAAI,KAAK,aAAa,CAAC,OAAO,IAAI,CAAC;gBACxE,CAAC;gBACD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACpD,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAsB,CAAC,CAAC,CAAC;oBAC7E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxB,MAAM,IAAI,iBAAiB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBACrD,CAAC;gBACH,CAAC;gBACD,MAAM,IAAI,IAAI,CAAC;gBAEf,qEAAqE;gBACrE,IAAI,CAAC;oBACH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;oBAC5D,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,IAAI,0BAA0B,YAAY,MAAM,CAAC;oBACzD,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,kEAAkE;gBACpE,CAAC;gBAED,2EAA2E;gBAC3E,MAAM,IAAI,oBAAoB,WAAW,CAAC,KAAK,CAAC,MAAM,YAAY,CAAC;gBACnE,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;oBAClC,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC;oBACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvD,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC;oBAE/C,MAAM,IAAI,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC;oBAC5B,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;wBAClB,MAAM,IAAI,SAAS,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,CAAC;oBACD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;wBACjB,MAAM,IAAI,eAAe,QAAQ,eAAe,CAAC;wBACjD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACxB,MAAM,IAAI,eAAe,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;wBAClD,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,kBAAkB,CAAC;oBAC/B,CAAC;gBACH,CAAC;gBAED,oCAAoC;gBACpC,IAAI,CAAC;oBACH,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBACzD,IAAI,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvC,MAAM,IAAI,0BAA0B,aAAa,CAAC,OAAO,CAAC,MAAM,YAAY,CAAC;wBAC7E,KAAK,MAAM,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;4BACtC,MAAM,IAAI,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,IAAI,EAAE,IAAI,CAAC;wBACrD,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,qCAAqC;gBACvC,CAAC;gBAED,MAAM,IAAI,+GAA+G,CAAC;gBAC1H,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YACvD,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC9E,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,2BAA2B;IAC3B,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EAAE,mFAAmF;QAChG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAChD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;YAC1E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+FAA+F,CAAC;SACxI,CAAC,CAAC,MAAM,EAAE;KACZ,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;QACtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;YAE3C,mEAAmE;YACnE,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACrD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAE5D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrE,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,2BAA2B,SAAS,uBAAuB,cAAc,EAAE,EAAE,CAAC;oBAC7H,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACnC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,CAAC,CAAC,OAAO,qFAAqF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;oBAC5M,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;oBAC3C,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE,YAAY;iBACxB,CAAC,CAAC;gBAEH,4BAA4B;gBAC5B,IAAI,aAAa,GAAG,KAAK,CAAC;gBAC1B,IAAI,YAAY,GAAwC,EAAE,CAAC;gBAE3D,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1C,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;wBACzC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;4BACnC,OAAO,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC3D,CAAC;6BAAM,CAAC;4BACJ,OAAO,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,kCAAkC,EAAE,CAAC;wBACzF,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,MAAM,IAAK,MAAc,CAAC,OAAO,EAAE,CAAC;oBACpC,aAAa,GAAG,IAAI,CAAC;oBACrB,wGAAwG;oBACxG,YAAY,CAAC,IAAI,CAAC;wBAChB,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,aAAa,MAAM,qGAAqG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;qBAC1K,CAAC,CAAC;gBACP,CAAC;gBAED,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;YAC3D,CAAC;YAAC,OAAO,SAAc,EAAE,CAAC;gBACvB,qCAAqC;gBACrC,MAAM,YAAY,GAAG,wBAAwB,MAAM,MAAM,SAAS,CAAC,OAAO,qFAAqF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC3M,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;oBAC/C,OAAO,EAAE,IAAI;iBACd,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;gBACtE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -50,21 +50,30 @@ export function registerShellTools(server, security) {
|
|
|
50
50
|
return out;
|
|
51
51
|
};
|
|
52
52
|
const output = [
|
|
53
|
+
`Exit Code: 0`,
|
|
53
54
|
stdout ? `STDOUT:\n${formatOutput(stdout)}` : "",
|
|
54
55
|
stderr ? `STDERR:\n${formatOutput(stderr)}` : "",
|
|
55
56
|
].filter(Boolean).join("\n\n");
|
|
56
57
|
return {
|
|
57
|
-
content: [{ type: "text", text: output || "(No output from command)" }],
|
|
58
|
+
content: [{ type: "text", text: output || "Exit Code: 0\n(No output from command)" }],
|
|
58
59
|
};
|
|
59
60
|
}
|
|
60
61
|
catch (error) {
|
|
61
62
|
// If timed out or error occurred, still try to return what we have or a meaningful error
|
|
63
|
+
let exitCodeStr = "Exit Code: " + (error.code !== undefined ? error.code : "unknown");
|
|
62
64
|
let errorMessage = error.message;
|
|
63
65
|
if (error.killed && error.signal === 'SIGTERM') {
|
|
66
|
+
exitCodeStr = "Exit Code: timed out";
|
|
64
67
|
errorMessage = `Command timed out after ${timeout}ms.`;
|
|
65
68
|
}
|
|
69
|
+
const errOutput = [
|
|
70
|
+
exitCodeStr,
|
|
71
|
+
`Error Details:\n${errorMessage}`,
|
|
72
|
+
error.stdout ? `STDOUT (partial):\n${error.stdout}` : "",
|
|
73
|
+
error.stderr ? `STDERR (partial):\n${error.stderr}` : ""
|
|
74
|
+
].filter(Boolean).join("\n\n");
|
|
66
75
|
return {
|
|
67
|
-
content: [{ type: "text", text:
|
|
76
|
+
content: [{ type: "text", text: errOutput }],
|
|
68
77
|
isError: true,
|
|
69
78
|
};
|
|
70
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-tools.js","sourceRoot":"","sources":["../../../src/tools/shell-tools.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"shell-tools.js","sourceRoot":"","sources":["../../../src/tools/shell-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAUlC,MAAM,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;AAE1D;;;GAGG;AACH,SAAS,eAAe;IACtB,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC,CAAC,4DAA4D;IAChF,CAAC;IACD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,aAAa,GAAG,eAAe,EAAE,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,QAAyB;IAC7E,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,wFAAwF;QACrG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAC7D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sFAAsF,CAAC;YAC3H,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,qCAAqC,eAAe,MAAM,CAAC;SAC7H,CAAC,CAAC,MAAM,EAAE;KACZ,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,QAAQ,CAAC,iBAAiB,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;YAE5D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE;gBAClD,GAAG,EAAE,YAAY;gBACjB,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,aAAa,EAAE,wDAAwD;aAC/E,CAAC,CAAC;YAEH,8BAA8B;YAC9B,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;gBACnC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACjC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBACvB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;wBAC9B,WAAW,KAAK,CAAC,MAAM,GAAG,GAAG,sCAAsC;wBACnE,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,CAAC;YAEF,MAAM,MAAM,GAAG;gBACb,cAAc;gBACd,MAAM,CAAC,CAAC,CAAC,YAAY,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;gBAChD,MAAM,CAAC,CAAC,CAAC,YAAY,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;aACjD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE/B,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,wCAAwC,EAAE,CAAC;aACtF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,yFAAyF;YACzF,IAAI,WAAW,GAAG,aAAa,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACtF,IAAI,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;YACjC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/C,WAAW,GAAG,sBAAsB,CAAC;gBACrC,YAAY,GAAG,2BAA2B,OAAO,KAAK,CAAC;YACzD,CAAC;YAED,MAAM,SAAS,GAAG;gBAChB,WAAW;gBACX,mBAAmB,YAAY,EAAE;gBACjC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;gBACxD,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;aACzD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE/B,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gBAC5C,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,4DAA4D;IAC5D,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,WAAW,EAAE,yKAAyK;QACtL,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACpF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;YAC5F,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6EAA6E,CAAC;YAClH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;YAC7F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,8DAA8D,CAAC;SAClH,CAAC,CAAC,MAAM,EAAE;KACZ,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;QAC/C,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kDAAkD,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAClH,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,QAAQ,CAAC,iBAAiB,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;gBAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE;oBAC3B,GAAG,EAAE,YAAY;oBACjB,KAAK,EAAE,aAAa,IAAI,IAAI;iBAC7B,CAAC,CAAC;gBAEH,MAAM,SAAS,GAAG,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACvE,MAAM,IAAI,GAAa,EAAE,CAAC;gBAE1B,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI;wBAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACvC,CAAC,CAAC,CAAC;gBAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACrC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI;wBAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACvC,CAAC,CAAC,CAAC;gBAEH,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE;oBAC7B,OAAO,EAAE,KAAK;oBACd,IAAI;oBACJ,OAAO;oBACP,GAAG,EAAE,YAAY;oBACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CAAC;gBAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACxB,IAAI,CAAC,IAAI,CAAC,6BAA6B,IAAI,GAAG,CAAC,CAAC;gBAClD,CAAC,CAAC,CAAC;gBAEH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC;YACrF,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACvG,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvE,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG;aAC/F,CAAC,CAAC,CAAC;YAEJ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,EAAE,CAAC;YAC7E,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC/E,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gDAAgD,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAChH,CAAC;YACD,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,MAAM,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3F,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;YACjD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC,EAAE,CAAC;QACrF,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gDAAgD,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAChH,CAAC;YACD,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,MAAM,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3F,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,MAAM,UAAU,EAAE,CAAC,EAAE,CAAC;QACzE,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3F,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,13 +1,2 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
-
|
|
3
|
-
* Starts an Express server that hosts the MCP server over Streamable HTTP.
|
|
4
|
-
*
|
|
5
|
-
* Transport lifecycle:
|
|
6
|
-
* - Each client session gets its own StreamableHTTPServerTransport instance.
|
|
7
|
-
* - When a session ends (DELETE, client disconnect, etc.), the transport fires
|
|
8
|
-
* its onclose callback, which schedules a reset via setTimeout(0).
|
|
9
|
-
* - The setTimeout deferral is critical: it lets Protocol._onclose() finish
|
|
10
|
-
* (setting _transport = undefined) before we call server.connect() again.
|
|
11
|
-
* - During the reset window, incoming requests receive 503 to trigger client retry.
|
|
12
|
-
*/
|
|
13
|
-
export declare function startHttpServer(server: McpServer, port: number, host?: string): Promise<void>;
|
|
2
|
+
export declare function startHttpServer(serverFactory: () => McpServer, port: number, host?: string): Promise<void>;
|
|
@@ -2,69 +2,55 @@ import express from "express";
|
|
|
2
2
|
import cors from "cors";
|
|
3
3
|
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
5
|
-
|
|
6
|
-
* Starts an Express server that hosts the MCP server over Streamable HTTP.
|
|
7
|
-
*
|
|
8
|
-
* Transport lifecycle:
|
|
9
|
-
* - Each client session gets its own StreamableHTTPServerTransport instance.
|
|
10
|
-
* - When a session ends (DELETE, client disconnect, etc.), the transport fires
|
|
11
|
-
* its onclose callback, which schedules a reset via setTimeout(0).
|
|
12
|
-
* - The setTimeout deferral is critical: it lets Protocol._onclose() finish
|
|
13
|
-
* (setting _transport = undefined) before we call server.connect() again.
|
|
14
|
-
* - During the reset window, incoming requests receive 503 to trigger client retry.
|
|
15
|
-
*/
|
|
16
|
-
export async function startHttpServer(server, port, host = "0.0.0.0") {
|
|
5
|
+
export async function startHttpServer(serverFactory, port, host = "0.0.0.0") {
|
|
17
6
|
const app = express();
|
|
18
7
|
// Enable CORS for all origins, including the MCP Inspector
|
|
19
8
|
app.use(cors());
|
|
20
9
|
// Necessary for processing JSON-RPC messages (POST)
|
|
21
10
|
app.use(express.json());
|
|
22
|
-
//
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
11
|
+
// === Session Pool ===
|
|
12
|
+
const sessions = new Map();
|
|
13
|
+
const mcpHandler = async (req, res) => {
|
|
14
|
+
const sessionId = req.headers["mcp-session-id"];
|
|
15
|
+
// 1. 尝试复用已有会话
|
|
16
|
+
if (sessionId && sessions.has(sessionId)) {
|
|
17
|
+
const t = sessions.get(sessionId);
|
|
18
|
+
try {
|
|
19
|
+
await t.handleRequest(req, res, req.body);
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
console.error("[MCP HTTP Error]:", error);
|
|
23
|
+
if (!res.headersSent) {
|
|
24
|
+
res.status(500).json({
|
|
25
|
+
error: "Internal Server Error",
|
|
26
|
+
message: error instanceof Error ? error.message : String(error)
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
// 2. 没有对应会话,或者是一个新的 GET 请求,创建新的
|
|
33
|
+
const newSessionId = randomUUID();
|
|
34
|
+
const server = serverFactory();
|
|
35
|
+
// 如果客户端带了旧的、已失效的 sessionId 试图重连,
|
|
36
|
+
// 必须从 headers 中抹除,否则底层 SDK 会因为它与新分配的 newSessionId 不一致而直接报错 400
|
|
37
|
+
if (sessionId) {
|
|
38
|
+
delete req.headers["mcp-session-id"];
|
|
39
|
+
delete req.headers["last-event-id"];
|
|
40
|
+
}
|
|
33
41
|
const t = new StreamableHTTPServerTransport({
|
|
34
|
-
sessionIdGenerator: () =>
|
|
35
|
-
// Enable JSON responses for POST requests so the client receives
|
|
36
|
-
// tool lists / call results directly in the response body.
|
|
42
|
+
sessionIdGenerator: () => newSessionId,
|
|
37
43
|
enableJsonResponse: true,
|
|
38
44
|
});
|
|
39
|
-
//
|
|
40
|
-
// We use setTimeout(0) to defer past Protocol._onclose(), which
|
|
41
|
-
// clears _transport = undefined and makes connect() possible.
|
|
45
|
+
// 监听关闭事件,正常触发时清理自身
|
|
42
46
|
t.onclose = () => {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
console.error("[MCP HTTP] Failed to reset transport:", err);
|
|
46
|
-
});
|
|
47
|
-
}, 0);
|
|
47
|
+
console.log(`[HTTP] Session Closed: ${newSessionId}`);
|
|
48
|
+
sessions.delete(newSessionId);
|
|
48
49
|
};
|
|
49
50
|
await server.connect(t);
|
|
50
|
-
|
|
51
|
-
console.error("[MCP HTTP] Transport ready for new sessions");
|
|
52
|
-
}
|
|
53
|
-
// Initial transport setup.
|
|
54
|
-
await setupTransport();
|
|
55
|
-
/**
|
|
56
|
-
* Unified handler for MCP requests.
|
|
57
|
-
* Handles GET (SSE) and POST (JSON-RPC).
|
|
58
|
-
*/
|
|
59
|
-
const mcpHandler = async (req, res) => {
|
|
60
|
-
const current = transport;
|
|
61
|
-
if (!current) {
|
|
62
|
-
// Transport is being reset — tell the client to retry.
|
|
63
|
-
res.status(503).json({ error: "Server is restarting session, please retry" });
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
51
|
+
sessions.set(newSessionId, t);
|
|
66
52
|
try {
|
|
67
|
-
await
|
|
53
|
+
await t.handleRequest(req, res, req.body);
|
|
68
54
|
}
|
|
69
55
|
catch (error) {
|
|
70
56
|
console.error("[MCP HTTP Error]:", error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/transports/http.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/transports/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
/**
|
|
3
|
+
* Start a reverse MCP connection to a public gateway.
|
|
4
|
+
*
|
|
5
|
+
* The ReverseMCPClient handles all transport lifecycle, reconnection,
|
|
6
|
+
* and MCP protocol re-binding automatically.
|
|
7
|
+
*
|
|
8
|
+
* @param server The McpServer instance (with all tools registered)
|
|
9
|
+
* @param url Base URL of the reverse MCP endpoint
|
|
10
|
+
* @param token Authentication token
|
|
11
|
+
* @param name Server name for identification
|
|
12
|
+
*/
|
|
13
|
+
export declare function startReverseServer(server: McpServer, url: string, token: string, name: string): Promise<void>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ReverseMCPClient } from "mcp-reverse/client";
|
|
2
|
+
/**
|
|
3
|
+
* Start a reverse MCP connection to a public gateway.
|
|
4
|
+
*
|
|
5
|
+
* The ReverseMCPClient handles all transport lifecycle, reconnection,
|
|
6
|
+
* and MCP protocol re-binding automatically.
|
|
7
|
+
*
|
|
8
|
+
* @param server The McpServer instance (with all tools registered)
|
|
9
|
+
* @param url Base URL of the reverse MCP endpoint
|
|
10
|
+
* @param token Authentication token
|
|
11
|
+
* @param name Server name for identification
|
|
12
|
+
*/
|
|
13
|
+
export async function startReverseServer(server, url, token, name) {
|
|
14
|
+
const client = await ReverseMCPClient.createSSE(server, {
|
|
15
|
+
url,
|
|
16
|
+
serverName: name,
|
|
17
|
+
authToken: token,
|
|
18
|
+
reconnect: {
|
|
19
|
+
initialDelay: 1000,
|
|
20
|
+
maxDelay: 30000,
|
|
21
|
+
multiplier: 2,
|
|
22
|
+
maxRetries: 0, // 0 = infinite
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
client.on("connected", () => {
|
|
26
|
+
console.log(`[staff-mcp] 🚀 Successfully connected to Reverse Gateway as "${name}"`);
|
|
27
|
+
});
|
|
28
|
+
client.on("disconnected", () => {
|
|
29
|
+
console.log("[staff-mcp] Connection lost, reconnecting...");
|
|
30
|
+
});
|
|
31
|
+
client.on("reconnecting", (attempt) => {
|
|
32
|
+
console.log(`[staff-mcp] Reconnecting, attempt ${attempt}...`);
|
|
33
|
+
});
|
|
34
|
+
client.on("error", (error) => {
|
|
35
|
+
console.error(`[staff-mcp] Transport error:`, error.message);
|
|
36
|
+
});
|
|
37
|
+
client.on("failed", () => {
|
|
38
|
+
console.error("[staff-mcp] Permanent connection failure, exiting");
|
|
39
|
+
process.exit(1);
|
|
40
|
+
});
|
|
41
|
+
await client.start();
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=reverse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reverse.js","sourceRoot":"","sources":["../../../src/transports/reverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,MAAiB,EACjB,GAAW,EACX,KAAa,EACb,IAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE;QACpD,GAAG;QACH,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE;YACP,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,CAAC,EAAE,eAAe;SACjC;KACJ,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,gEAAgE,IAAI,GAAG,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,OAAe,EAAE,EAAE;QAC1C,OAAO,CAAC,GAAG,CAAC,qCAAqC,OAAO,KAAK,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;QAChC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "staff-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.16",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/ChineseAStar/staff-mcp.git"
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"commander": "^12.1.0",
|
|
31
31
|
"cors": "^2.8.5",
|
|
32
32
|
"express": "^4.21.1",
|
|
33
|
-
"
|
|
33
|
+
"mcp-reverse": "^1.0.8",
|
|
34
34
|
"zod": "^3.23.8"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|