staff-mcp 1.1.2 → 1.3.0

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.
Files changed (66) hide show
  1. package/README.md +46 -1
  2. package/README_zh.md +36 -1
  3. package/dist/src/constants.d.ts +6 -0
  4. package/dist/src/constants.js +6 -0
  5. package/dist/src/constants.js.map +1 -1
  6. package/dist/src/index.js +41 -5
  7. package/dist/src/index.js.map +1 -1
  8. package/dist/src/lsp/manager.d.ts +2 -0
  9. package/dist/src/lsp/manager.js +22 -10
  10. package/dist/src/lsp/manager.js.map +1 -1
  11. package/dist/src/server.js +1 -1
  12. package/dist/src/server.js.map +1 -1
  13. package/dist/src/tools/mcp-client-tools.js +7 -3
  14. package/dist/src/tools/mcp-client-tools.js.map +1 -1
  15. package/dist/src/tools/shell-tools.js +13 -4
  16. package/dist/src/tools/shell-tools.js.map +1 -1
  17. package/dist/src/tools/skills.js +2 -2
  18. package/dist/src/tools/skills.js.map +1 -1
  19. package/dist/src/tools/system-tools.d.ts +9 -3
  20. package/dist/src/tools/system-tools.js +31 -48
  21. package/dist/src/tools/system-tools.js.map +1 -1
  22. package/dist/src/transports/http.d.ts +2 -1
  23. package/dist/src/transports/http.js +26 -3
  24. package/dist/src/transports/http.js.map +1 -1
  25. package/dist/src/transports/reverse.d.ts +5 -1
  26. package/dist/src/transports/reverse.js +4 -2
  27. package/dist/src/transports/reverse.js.map +1 -1
  28. package/dist/src/transports/stdio.d.ts +1 -0
  29. package/dist/src/transports/stdio.js +6 -4
  30. package/dist/src/transports/stdio.js.map +1 -1
  31. package/dist/src/utils/proxy.d.ts +1 -1
  32. package/dist/src/utils/proxy.js.map +1 -1
  33. package/package.json +15 -16
  34. package/dist/tests/docker-proxy.test.d.ts +0 -1
  35. package/dist/tests/docker-proxy.test.js +0 -395
  36. package/dist/tests/docker-proxy.test.js.map +0 -1
  37. package/dist/tests/file-write-queue.test.d.ts +0 -1
  38. package/dist/tests/file-write-queue.test.js +0 -105
  39. package/dist/tests/file-write-queue.test.js.map +0 -1
  40. package/dist/tests/fte-lifecycle.test.d.ts +0 -1
  41. package/dist/tests/fte-lifecycle.test.js +0 -118
  42. package/dist/tests/fte-lifecycle.test.js.map +0 -1
  43. package/dist/tests/lsp-client.test.d.ts +0 -1
  44. package/dist/tests/lsp-client.test.js +0 -52
  45. package/dist/tests/lsp-client.test.js.map +0 -1
  46. package/dist/tests/package-info.test.d.ts +0 -1
  47. package/dist/tests/package-info.test.js +0 -54
  48. package/dist/tests/package-info.test.js.map +0 -1
  49. package/dist/tests/proxy-no-proxy.test.d.ts +0 -1
  50. package/dist/tests/proxy-no-proxy.test.js +0 -156
  51. package/dist/tests/proxy-no-proxy.test.js.map +0 -1
  52. package/dist/tests/proxy.test.d.ts +0 -1
  53. package/dist/tests/proxy.test.js +0 -89
  54. package/dist/tests/proxy.test.js.map +0 -1
  55. package/dist/tests/reverse-reconnect.test.d.ts +0 -1
  56. package/dist/tests/reverse-reconnect.test.js +0 -89
  57. package/dist/tests/reverse-reconnect.test.js.map +0 -1
  58. package/dist/tests/security.test.d.ts +0 -1
  59. package/dist/tests/security.test.js +0 -21
  60. package/dist/tests/security.test.js.map +0 -1
  61. package/dist/tests/shell-tools.test.d.ts +0 -1
  62. package/dist/tests/shell-tools.test.js +0 -113
  63. package/dist/tests/shell-tools.test.js.map +0 -1
  64. package/dist/tests/test_files/test.d.ts +0 -1
  65. package/dist/tests/test_files/test.js +0 -4
  66. package/dist/tests/test_files/test.js.map +0 -1
package/README.md CHANGED
@@ -10,6 +10,8 @@ It provides secure file management, shell execution, LSP-powered code intelligen
10
10
 
11
11
  ## 🚀 Quick Start
12
12
 
13
+ Requires **Node.js 22.22.2 or newer**.
14
+
13
15
  ### 1. Standard Host Mode
14
16
  Run directly on your physical machine or virtual environment.
15
17
  ```bash
@@ -21,7 +23,7 @@ Seamlessly spawn the AI assistant **inside any Docker container** while keeping
21
23
 
22
24
  ```bash
23
25
  # Debug a Node.js project inside a pure Alpine container
24
- npx -y staff-mcp@latest --docker node:20-alpine
26
+ npx -y staff-mcp@latest --docker node:22-alpine
25
27
 
26
28
  # Perform security analysis inside a custom reverse-engineering image
27
29
  npx -y staff-mcp@latest --docker chineseastar/security:latest --profile android-reverse
@@ -56,8 +58,49 @@ npx -y staff-mcp@latest -t reverse \
56
58
  --rn my-macbook-pro
57
59
  ```
58
60
 
61
+ ### 5. Authenticated HTTP Mode
62
+
63
+ HTTP authentication is optional for backward compatibility. Set `--ht` / `--http-token`
64
+ to a strong, random token to require authentication:
65
+
66
+ ```bash
67
+ npx -y staff-mcp@latest -t http -p 3000 \
68
+ --http-token your_secure_token_here --working-dir /path/to/your/project
69
+ ```
70
+
71
+ When a token is configured, clients must send `Authorization: Bearer <token>` on every request.
72
+ For a full Authorization-header field, enter `Bearer <token>`; for a Bearer-token
73
+ field, enter only the token. Raw tokens without the `Bearer` scheme are rejected.
74
+ Missing or incorrect credentials return HTTP 401, including requests with an
75
+ existing `mcp-session-id`. Authentication covers `/mcp` and the legacy `/sse` and
76
+ `/messages` routes. CORS `OPTIONS` preflight remains public and cannot invoke MCP.
77
+
78
+ Omitting `--http-token` preserves existing unauthenticated HTTP deployments.
79
+ Anyone who can reach such a server can invoke its tools, so use this mode only
80
+ on trusted networks. An explicitly empty token or one containing whitespace is
81
+ rejected at startup. `--docker` forwards `--http-token` to the container command
82
+ only when provided.
83
+ Command-line tokens may be visible in shell history and process listings; keep
84
+ access to those restricted. Stdio and reverse transports are unchanged;
85
+ `--reverse-token` does not configure HTTP auth.
86
+ Use HTTPS through a reverse proxy for remote access, since plain HTTP does not
87
+ protect the token in transit. This is a shared server token, not an OAuth flow.
88
+
59
89
  ---
60
90
 
91
+ ## Reverse 1.2 upgrade notes
92
+
93
+ Reverse mode uses `mcp-reverse@1.4.0` and MCP SDK `1.32.1`. Readiness is reported only after MCP initialization, and short-lived connections no longer reset exponential backoff. Reconnection never replays tool calls.
94
+
95
+ Optional CLI controls (milliseconds, also forwarded in Docker mode):
96
+
97
+ - `--reverse-connect-timeout`: 15000; 0 disables the HTTP/SSE connection deadline.
98
+ - `--reverse-initialization-timeout`: 15000; must be positive.
99
+ - `--reverse-read-timeout`: 45000; liveness monitoring, not tool execution duration.
100
+ - `--reverse-stable-time`: 30000; lifetime required before resetting the retry cycle (0 restores immediate reset).
101
+
102
+ `skill` and `read_skill_file` return `_meta: { persistent: true }` instead of putting this host hint in business `structuredContent`. Updated chat-ai reads tool-result metadata only from `_meta`; the incorrect `structuredContent.persistent` format is not supported. Older chat-ai can still connect and call tools, but does not recognize the new history-enrichment hint. Publishing or upgrading staff-mcp does not require deploying chat-ai first; cross-turn skill enrichment requires a receiver that recognizes `_meta.persistent`. No new wire protocol or storage migration is required.
103
+
61
104
  ## 🛠️ Core Capabilities
62
105
 
63
106
  ### 1. Seamless Containerization (`--docker`)
@@ -96,6 +139,7 @@ It will securely download, configure, and reload the skill without you lifting a
96
139
  ### 4. Advanced Shell & Code Intelligence
97
140
  - **Unified Shell Execution**: A single `execute_command` entry point for everything — quick commands, builds, and dev servers. If a command outlives its wait window (default 10s), it is NOT killed: it moves to the background and returns a task ID with its recent output. Follow up via `manage_background_task` (`logs` with optional blocking `wait`, `stop` kills the whole process group, `list`). Auto-detects and upgrades to `/bin/bash` if available, supporting complex pipelines.
98
141
  - **LSP Integration**: Extract symbols, get diagnostics, go to definitions, and find references for TypeScript, Python, and more.
142
+ - TypeScript/JavaScript LSP keeps a local TypeScript 5.9.3 fallback toolchain. A usable workspace TypeScript is preferred; TypeScript 7 workspaces fall back because the current LSP ecosystem still depends on the tsserver API.
99
143
  - **Secure Sandbox**: Strictly confines the AI to the specified working directory and user-defined allowed paths.
100
144
 
101
145
  ---
@@ -113,6 +157,7 @@ It will securely download, configure, and reload the skill without you lifting a
113
157
  | `-t, --transport` | Transport type (`stdio`, `http`, or `reverse`) | `stdio` |
114
158
  | `-p, --port` | Port for HTTP server | `3000` |
115
159
  | `-h, --host` | Host for HTTP server | `127.0.0.1` |
160
+ | `--ht, --http-token` | Optional bearer token for HTTP transport | `undefined` (no authentication) |
116
161
  | `--ru, --reverse-url` | URL for Reverse MCP Gateway | `undefined` |
117
162
  | `--rt, --reverse-token` | Security token for Reverse MCP | `undefined` |
118
163
  | `--rn, --reverse-name` | Server name for Reverse MCP | `undefined` |
package/README_zh.md CHANGED
@@ -10,6 +10,8 @@
10
10
 
11
11
  ## 🚀 快速开始
12
12
 
13
+ 需要 **Node.js 22.22.2 或更高版本**。
14
+
13
15
  ### 1. 标准宿主机模式
14
16
  直接在物理机或虚拟环境中运行。
15
17
  ```bash
@@ -21,7 +23,7 @@ npx -y staff-mcp@latest --working-dir /path/to/your/project
21
23
 
22
24
  ```bash
23
25
  # 在一个纯净的 Alpine Node 容器里调试你的代码
24
- npx -y staff-mcp@latest --docker node:20-alpine
26
+ npx -y staff-mcp@latest --docker node:22-alpine
25
27
 
26
28
  # 在自带逆向工程工具链的镜像里执行安全分析
27
29
  npx -y staff-mcp@latest --docker chineseastar/security:latest --profile android-reverse
@@ -56,8 +58,39 @@ npx -y staff-mcp@latest -t reverse \
56
58
  --rn my-macbook-pro
57
59
  ```
58
60
 
61
+ ### 5. 带身份验证的 HTTP 模式
62
+
63
+ 为兼容已有部署,HTTP 身份验证是可选的。设置 `--ht` / `--http-token` 即可开启,两者等价,建议使用强随机 token:
64
+
65
+ ```bash
66
+ npx -y staff-mcp@latest -t http -p 3000 \
67
+ --http-token your_secure_token_here --working-dir /path/to/your/project
68
+ ```
69
+
70
+ 配置 token 后,客户端每次请求都必须发送 `Authorization: Bearer <token>`。如果配置项接收完整的
71
+ Authorization 请求头值,填写 `Bearer <token>`;如果是 Bearer token 配置项,只填写
72
+ token。仅发送原始 token、不带 `Bearer` 前缀的请求会被拒绝。缺失或错误的凭证返回
73
+ HTTP 401,携带已有 `mcp-session-id` 也不能绕过验证。保护范围包括 `/mcp` 和兼容
74
+ 路由 `/sse`、`/messages`。CORS `OPTIONS` 预检无需凭证,但无法调用 MCP。
75
+
76
+ 不传 `--http-token` 时,保留原有无鉴权 HTTP 行为,已有部署可以继续运行。任何能够
77
+ 连接服务的客户端都能调用工具,因此仅应在可信网络中使用此模式。显式传入空 token
78
+ 或含空白字符的 token 时,服务拒绝启动。`--docker` 仅在提供 token 时将其透传到容器命令。
79
+ 命令行 token 可能出现在 shell 历史和进程列表中,请限制对这些信息的访问。
80
+ Stdio 和 reverse 模式保持不变;`--reverse-token` 不用于
81
+ HTTP 身份验证。远程访问应通过反向代理启用 HTTPS,普通 HTTP 无法保护传输中的
82
+ token。这里使用服务端共享 token,不提供 OAuth 流程。
83
+
59
84
  ---
60
85
 
86
+ ### Reverse 1.2 升级说明
87
+
88
+ - 使用 `mcp-reverse@1.4.0` 和 MCP SDK `1.32.1`。只有 MCP 初始化完成才报告 ready;SSE 打开不等于协议就绪。
89
+ - 初始化失败或短暂连接后断开会继续指数退避,默认稳定连接 30 秒后才重置失败周期,不重放工具请求。
90
+ - 可配置 `--reverse-connect-timeout`(默认 15000ms,0 禁用建连超时)、`--reverse-initialization-timeout`(15000ms)、`--reverse-read-timeout`(45000ms)和 `--reverse-stable-time`(30000ms,0 为立即重置)。Docker 模式也透传这些参数。读取活性超时与工具运行时长不同,不建议仅靠放宽超时掩盖故障。
91
+ - `skill` / `read_skill_file` 使用结果级 `_meta: { persistent: true }`,不再占用业务 `structuredContent`。`persistent` 是 chat-ai 历史回填约定,不是 MCP 标准存储选项。
92
+ - chat-ai 只从 `_meta` 读取工具结果元数据,不兼容 `structuredContent.persistent` 的错误写法。旧 chat-ai 仍能连接和调用工具,但不识别新标记,无法据此跨轮回填技能结果。发布或升级 staff-mcp 无需先部署 chat-ai;若需要跨轮回填,接收端需支持 `_meta.persistent`。
93
+
61
94
  ## 🛠️ 核心能力
62
95
 
63
96
  ### 1. 无缝容器化支持 (`--docker`)
@@ -97,6 +130,7 @@ npx -y staff-mcp@latest --profile android-reverse
97
130
  ### 4. 增强的终端与代码智能
98
131
  - **统一命令执行**:所有命令(快速命令、构建、开发服务器)统一走 `execute_command` 入口。命令超过等待窗口(默认 10s)不会被杀死,而是转入后台并返回任务 ID 和近期输出;随后用 `manage_background_task` 跟进(`logs` 支持 `wait` 阻塞等待新输出或退出、`stop` 终止整个进程组、`list` 列出全部)。自动检测并在支持的环境中升级为 `/bin/bash`,完美支持复杂管道命令。
99
132
  - **LSP 深度集成**:支持提取符号 (Symbols)、获取诊断信息 (Diagnostics)、跳转定义 (Definition) 和查找引用 (References),大幅提升 AI 理解 TypeScript/Python 等代码的能力。
133
+ - TypeScript/JavaScript LSP 会在 staff-mcp 工具目录保留 TypeScript 5.9.3 作为兼容回退;工作区 TypeScript 可用时仍优先使用,TypeScript 7 暂无 tsserver API 时会自动回退。
100
134
  - **沙盒安全**:将 AI 严格限制在你指定的工作区和允许的目录内,对全局破坏“零容忍”。
101
135
 
102
136
  ---
@@ -114,6 +148,7 @@ npx -y staff-mcp@latest --profile android-reverse
114
148
  | `-t, --transport` | 传输协议 (`stdio`, `http`, 或 `reverse`) | `stdio` |
115
149
  | `-p, --port` | HTTP 服务的监听端口 | `3000` |
116
150
  | `-h, --host` | HTTP 服务的监听地址 | `127.0.0.1` |
151
+ | `--ht, --http-token` | HTTP 模式可选的 Bearer token | `undefined`(不鉴权) |
117
152
  | `--ru, --reverse-url` | Reverse MCP 网关的远端 URL | `undefined` |
118
153
  | `--rt, --reverse-token` | Reverse MCP 的安全认证令牌 | `undefined` |
119
154
  | `--rn, --reverse-name` | Reverse MCP 的服务注册名称 | `undefined` |
@@ -1,5 +1,11 @@
1
1
  export declare const CHARACTER_LIMIT = 100000;
2
2
  export declare const DEFAULT_TIMEOUT = 10000;
3
+ /**
4
+ * Upper bound for blocking waits in execute_command. The tool must respond well before
5
+ * any MCP client-side request timeout (chat-ai: 1 hour), otherwise the caller gives up
6
+ * and the auto-backgrounded task's taskId is lost (orphaned background task).
7
+ */
8
+ export declare const MAX_WAIT_TIMEOUT = 1800000;
3
9
  export declare const SEARCH_MAX_COLUMNS = 200;
4
10
  export declare const SEARCH_MAX_MATCHES = 200;
5
11
  export declare const SEARCH_EXEC_MAX_BUFFER: number;
@@ -1,5 +1,11 @@
1
1
  export const CHARACTER_LIMIT = 100000;
2
2
  export const DEFAULT_TIMEOUT = 10000;
3
+ /**
4
+ * Upper bound for blocking waits in execute_command. The tool must respond well before
5
+ * any MCP client-side request timeout (chat-ai: 1 hour), otherwise the caller gives up
6
+ * and the auto-backgrounded task's taskId is lost (orphaned background task).
7
+ */
8
+ export const MAX_WAIT_TIMEOUT = 1800000; // 30 minutes
3
9
  export const SEARCH_MAX_COLUMNS = 200;
4
10
  export const SEARCH_MAX_MATCHES = 200;
5
11
  export const SEARCH_EXEC_MAX_BUFFER = 50 * 1024 * 1024; // 50MB
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
- import { Command } from "commander";
2
+ import { Command, InvalidArgumentError } from "commander";
3
3
  import * as path from "path";
4
4
  import * as os from "os";
5
5
  import { createServerFactory } from "./server.js";
6
6
  import { buildDockerNameHint, runDockerProxy, validateAdditionalDockerArgs } from "./docker-proxy.js";
7
7
  import { STAFF_MCP_PACKAGE_ROOT, STAFF_MCP_VERSION } from "./package-info.js";
8
- import { startStdioServer } from "./transports/stdio.js";
9
- import { startHttpServer } from "./transports/http.js";
8
+ import { redirectStdioLogsToStderr, startStdioServer } from "./transports/stdio.js";
9
+ import { getHttpAuthToken, startHttpServer } from "./transports/http.js";
10
10
  import { startReverseServer } from "./transports/reverse.js";
11
11
  import { ensureStaffDirs, STAFF_SKILLS_DIR, STAFF_PROFILES_DIR } from "./utils/paths.js";
12
12
  import { ensureRipgrep } from "./utils/tool-utils.js";
@@ -23,6 +23,13 @@ process.on("uncaughtException", (err) => {
23
23
  process.on("unhandledRejection", (reason, promise) => {
24
24
  console.error("[staff-mcp] Unhandled Rejection at:", promise, "reason:", reason);
25
25
  });
26
+ function milliseconds(value, minimum = 1) {
27
+ const parsed = Number(value);
28
+ if (!Number.isInteger(parsed) || parsed < minimum || parsed > 2_147_483_647) {
29
+ throw new InvalidArgumentError(`Expected milliseconds between ${minimum} and 2147483647.`);
30
+ }
31
+ return parsed;
32
+ }
26
33
  const program = new Command();
27
34
  program
28
35
  .name("staff-mcp")
@@ -31,9 +38,14 @@ program
31
38
  .option("-t, --transport <type>", "Transport type (stdio, http, reverse)", "stdio")
32
39
  .option("-p, --port <number>", "Port for HTTP server", "3000")
33
40
  .option("-h, --host <address>", "Host for HTTP server", "127.0.0.1")
41
+ .option("--ht, --http-token <token>", "Optional bearer token for HTTP transport")
34
42
  .option("--ru, --reverse-url <url>", "URL for Reverse MCP Gateway (e.g. http://localhost:3000/api/mcp-reverse)")
35
43
  .option("--rt, --reverse-token <token>", "Security token for Reverse MCP")
36
44
  .option("--rn, --reverse-name <name>", "Server name for Reverse MCP")
45
+ .option("--reverse-connect-timeout <ms>", "SSE connection timeout (0 disables it)", value => milliseconds(value, 0), 15000)
46
+ .option("--reverse-initialization-timeout <ms>", "MCP initialization timeout after SSE opens", value => milliseconds(value), 15000)
47
+ .option("--reverse-read-timeout <ms>", "SSE inactivity timeout, independent of tool duration", value => milliseconds(value), 45000)
48
+ .option("--reverse-stable-time <ms>", "Connection lifetime required to reset reconnect backoff", value => milliseconds(value, 0), 30000)
37
49
  .option("-w, --working-dir <path>", "Working directory for the server (defaults to current execution path)", process.cwd())
38
50
  .option("-d, --allowed-dir <paths...>", "Additional directories allowed for sandbox", [])
39
51
  .option("-r, --profile <name>", "The active profile for skills and instructions (e.g., android-reverse, default)", "default")
@@ -44,6 +56,18 @@ program
44
56
  .option("--proxy <url>", "HTTP(S) proxy for outbound requests (e.g. http://127.0.0.1:8080); defaults to honoring HTTP_PROXY/HTTPS_PROXY/NO_PROXY env vars")
45
57
  .allowUnknownOption()
46
58
  .action(async (options, command) => {
59
+ if (options.transport === "stdio") {
60
+ redirectStdioLogsToStderr();
61
+ }
62
+ if (options.transport === "http") {
63
+ try {
64
+ getHttpAuthToken(options.httpToken);
65
+ }
66
+ catch (error) {
67
+ console.error(`[staff-mcp] ${error instanceof Error ? error.message : String(error)}`);
68
+ process.exit(1);
69
+ }
70
+ }
47
71
  // Install a proxy-aware global fetch dispatcher before anything can
48
72
  // issue an outbound request. In --docker mode this also runs inside the
49
73
  // container, where the same entry point is re-executed.
@@ -130,12 +154,19 @@ program
130
154
  dockerArgs.push("--rt", options.reverseToken);
131
155
  if (options.reverseName)
132
156
  dockerArgs.push("--rn", options.reverseName);
157
+ dockerArgs.push("--reverse-connect-timeout", String(options.reverseConnectTimeout));
158
+ dockerArgs.push("--reverse-initialization-timeout", String(options.reverseInitializationTimeout));
159
+ dockerArgs.push("--reverse-read-timeout", String(options.reverseReadTimeout));
160
+ dockerArgs.push("--reverse-stable-time", String(options.reverseStableTime));
133
161
  }
134
162
  else {
135
163
  dockerArgs.push("-p", String(options.port));
136
164
  // Inside container, we must listen on all interfaces for HTTP to be exposed
137
165
  if (options.transport === "http") {
138
166
  dockerArgs.push("-h", "0.0.0.0");
167
+ if (options.httpToken !== undefined) {
168
+ dockerArgs.push("--http-token", options.httpToken);
169
+ }
139
170
  }
140
171
  else {
141
172
  dockerArgs.push("-h", options.host);
@@ -205,14 +236,19 @@ program
205
236
  const enableLsp = !!options.enableLsp;
206
237
  const serverFactory = createServerFactory("staff-mcp", STAFF_MCP_VERSION, workingDir, allowedDirs, profile, maxMcpSessions, enableLsp);
207
238
  if (options.transport === "http") {
208
- await startHttpServer(serverFactory, parseInt(options.port, 10), options.host);
239
+ await startHttpServer(serverFactory, parseInt(options.port, 10), options.host, options.httpToken);
209
240
  }
210
241
  else if (options.transport === "reverse") {
211
242
  if (!options.reverseUrl || !options.reverseToken || !options.reverseName) {
212
243
  console.error("[staff-mcp] Error: --ru (reverse-url), --rt (reverse-token), and --rn (reverse-name) are required for reverse transport.");
213
244
  process.exit(1);
214
245
  }
215
- await startReverseServer(serverFactory(), options.reverseUrl, options.reverseToken, options.reverseName);
246
+ await startReverseServer(serverFactory(), options.reverseUrl, options.reverseToken, options.reverseName, {
247
+ connectTimeout: options.reverseConnectTimeout,
248
+ initializationTimeout: options.reverseInitializationTimeout,
249
+ heartbeat: { readTimeout: options.reverseReadTimeout },
250
+ reconnect: { stableConnectionMs: options.reverseStableTime },
251
+ });
216
252
  }
217
253
  else {
218
254
  await startStdioServer(serverFactory());
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ export interface LSPConfig {
2
2
  command: string[];
3
3
  installCommand?: string;
4
4
  extensions: string[];
5
+ initializationOptions?: Record<string, unknown>;
6
+ requiredPaths?: string[];
5
7
  }
6
8
  export declare class LSPClient {
7
9
  private config;
@@ -12,17 +12,23 @@ const STAFF_NODE_MODULES = path.join(STAFF_TOOLS_DIR, "node_modules");
12
12
  const DEFAULT_CONFIGS = {
13
13
  typescript: {
14
14
  command: ["node", path.join(STAFF_NODE_MODULES, "typescript-language-server/lib/cli.mjs"), "--stdio"],
15
- installCommand: `npm install --no-save typescript-language-server@latest typescript@latest`,
16
- extensions: [".ts", ".tsx", ".js", ".jsx"]
15
+ installCommand: `npm install --save-exact --no-audit --no-fund typescript-language-server@6.0.1 typescript@5.9.3`,
16
+ extensions: [".ts", ".tsx", ".js", ".jsx"],
17
+ initializationOptions: {
18
+ tsserver: {
19
+ fallbackPath: path.join(STAFF_NODE_MODULES, "typescript", "lib")
20
+ }
21
+ },
22
+ requiredPaths: [path.join(STAFF_NODE_MODULES, "typescript", "lib", "tsserver.js")]
17
23
  },
18
24
  python: {
19
25
  command: ["node", path.join(STAFF_NODE_MODULES, "pyright/dist/pyright-langserver.js"), "--stdio"],
20
- installCommand: `npm install --no-save pyright@latest`,
26
+ installCommand: `npm install --save-exact --no-audit --no-fund pyright@1.1.414`,
21
27
  extensions: [".py"]
22
28
  },
23
29
  bash: {
24
30
  command: ["node", path.join(STAFF_NODE_MODULES, "bash-language-server/out/cli.js"), "start"],
25
- installCommand: `npm install --no-save bash-language-server@latest`,
31
+ installCommand: `npm install --save-exact --no-audit --no-fund bash-language-server@5.8.1`,
26
32
  extensions: [".sh", ".bash"]
27
33
  }
28
34
  };
@@ -42,8 +48,7 @@ export class LSPClient {
42
48
  const executable = getPlatformCommand(this.config.command[0]);
43
49
  this.process = spawn(executable, this.config.command.slice(1), {
44
50
  cwd: this.rootPath,
45
- stdio: ["pipe", "pipe", "pipe"],
46
- shell: true // Using shell helps with path resolution on Windows
51
+ stdio: ["pipe", "pipe", "pipe"]
47
52
  });
48
53
  this.process.on("error", (err) => {
49
54
  console.error(`[LSP Process Error]: Failed to start ${executable}: ${err.message}`);
@@ -75,7 +80,8 @@ export class LSPClient {
75
80
  }
76
81
  }
77
82
  },
78
- workspaceFolders: [{ uri: pathToUri(this.rootPath), name: "workspace" }]
83
+ workspaceFolders: [{ uri: pathToUri(this.rootPath), name: "workspace" }],
84
+ initializationOptions: this.config.initializationOptions
79
85
  });
80
86
  await this.notification("initialized", {});
81
87
  this.onNotification("textDocument/publishDiagnostics", (params) => {
@@ -215,10 +221,11 @@ export class LSPManager {
215
221
  // Check if it's a node-managed server script
216
222
  const isNodeManaged = cmd === "node" && serverPath && path.isAbsolute(serverPath);
217
223
  if (isNodeManaged) {
218
- if (fs.existsSync(serverPath)) {
224
+ const requiredPathsPresent = (config.requiredPaths ?? []).every((requiredPath) => fs.existsSync(requiredPath));
225
+ if (fs.existsSync(serverPath) && requiredPathsPresent) {
219
226
  return;
220
227
  }
221
- // If node-managed but script is missing, we must install
228
+ // If the server script or a required runtime dependency is missing, install/reinstall.
222
229
  }
223
230
  else {
224
231
  // Check if the command exists in PATH
@@ -252,10 +259,15 @@ export class LSPManager {
252
259
  stdio: 'inherit',
253
260
  shell: true
254
261
  });
255
- // After installation, verify the serverPath if it's node-managed
262
+ // After installation, verify the server and any required runtime dependencies.
256
263
  if (isNodeManaged && !fs.existsSync(serverPath)) {
257
264
  console.error(`Installation finished but ${serverPath} still not found.`);
258
265
  }
266
+ for (const requiredPath of config.requiredPaths ?? []) {
267
+ if (!fs.existsSync(requiredPath)) {
268
+ console.error(`Installation finished but required LSP dependency ${requiredPath} is still missing.`);
269
+ }
270
+ }
259
271
  }
260
272
  catch (e) {
261
273
  console.error(`Failed to install LSP for ${language}:`, e);
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/lsp/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/lsp/manager.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ export function createServerFactory(name, version, workingDir, allowedDirs, prof
23
23
  const security = new SecurityManager(workingDir, allowedDirs);
24
24
  const sandbox = security.getAllowedDirs();
25
25
  // Generate instructions with system-specific details (OS, shell, etc.)
26
- const instructions = getMcpInstructions(workingDir, security);
26
+ const instructions = getMcpInstructions(workingDir, security, { enableLsp });
27
27
  return () => {
28
28
  const server = new McpServer({
29
29
  name,
@@ -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;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAE7E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,OAAe,EACf,UAAkB,EAClB,WAAqB,EACrB,UAAkB,SAAS,EAC3B,iBAAyB,CAAC,EAC1B,YAAqB,KAAK;IAE1B,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;IAE1C,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;YACZ,6BAA6B;YAC7B,YAAY,EAAE;gBACZ,GAAG,SAAS,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;aACvC;SACF,CACF,CAAC;QAEF,uCAAuC;QACvC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAErC,IAAI,SAAS,EAAE,CAAC;YACd,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;QAED,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1D,sBAAsB,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;QAEhE,sEAAsE;QACtE,wEAAwE;QACxE,4BAA4B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE9C,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
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;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAE7E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,OAAe,EACf,UAAkB,EAClB,WAAqB,EACrB,UAAkB,SAAS,EAC3B,iBAAyB,CAAC,EAC1B,YAAqB,KAAK;IAE1B,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;IAE1C,uEAAuE;IACvE,MAAM,YAAY,GAAG,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAE7E,OAAO,GAAG,EAAE;QACV,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;YACE,IAAI;YACJ,OAAO;SACR,EACD;YACE,yDAAyD;YACzD,YAAY;YACZ,6BAA6B;YAC7B,YAAY,EAAE;gBACZ,GAAG,SAAS,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;aACvC;SACF,CACF,CAAC;QAEF,uCAAuC;QACvC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAErC,IAAI,SAAS,EAAE,CAAC;YACd,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;QAED,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1D,sBAAsB,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;QAEhE,sEAAsE;QACtE,wEAAwE;QACxE,4BAA4B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE9C,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
@@ -28,7 +28,7 @@ export function registerMcpClientTools(server, options = { maxSessions: 5 }) {
28
28
  sessionId: z.string().optional().describe("A unique identifier for this session. Required for 'start' and 'stop'."),
29
29
  command: z.string().optional().describe("Required for 'start'. The executable command to run the server."),
30
30
  args: z.array(z.string()).optional().describe("Required for 'start'. Arguments to pass to the command."),
31
- env: z.record(z.string()).optional().describe("Optional for 'start'. Additional environment variables to pass to the command. They will be merged with the system environment."),
31
+ env: z.record(z.string(), z.string()).optional().describe("Optional for 'start'. Additional environment variables to pass to the command. They will be merged with the system environment."),
32
32
  transportType: z.enum(["stdio", "http"]).optional().describe("Optional for 'start'. Transport type. Default is 'stdio'. Use 'http' for HTTP/SSE based MCP servers."),
33
33
  port: z.number().optional().describe("Required for 'start' if transportType is 'http'. The port number the server is listening on.")
34
34
  }).strict(),
@@ -278,7 +278,7 @@ export function registerMcpClientTools(server, options = { maxSessions: 5 }) {
278
278
  method: z.string().describe("The tool name to call (e.g., 'search_code')"),
279
279
  params: z.string().optional().describe("A JSON-encoded string containing the arguments for the tool (e.g., '{\"query\": \"secret\"}')"),
280
280
  }).strict(),
281
- }, async ({ sessionId, method, params }) => {
281
+ }, async ({ sessionId, method, params }, extra) => {
282
282
  try {
283
283
  const session = getReadySession(sessionId);
284
284
  // Pre-fetch tools to validate the tool exists and fetch its schema
@@ -307,7 +307,11 @@ export function registerMcpClientTools(server, options = { maxSessions: 5 }) {
307
307
  const result = await session.client.callTool({
308
308
  name: method,
309
309
  arguments: parsedParams,
310
- }, undefined, { timeout: 300000 }); // 5 minutes timeout (300,000 ms)
310
+ }, undefined, {
311
+ timeout: 3600000, // 1 hour, aligned with the chat-ai MCP client. Nested long-running
312
+ // tools manage their own lifecycle; a short cap here orphans their work.
313
+ signal: extra?.signal, // propagate caller cancellation (e.g. user stop) to the nested call
314
+ });
311
315
  // Process and return result
312
316
  let isErrorResult = false;
313
317
  let contentArray = [];