mcp-interactive-terminal 1.0.2 → 1.0.3

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 CHANGED
@@ -8,15 +8,20 @@ AI coding agents can't handle interactive commands — no PTY, no stdin streamin
8
8
 
9
9
  ## The Solution
10
10
 
11
- This MCP server spawns real pseudo-terminals (PTY) and uses xterm-headless (the same terminal emulator as VS Code) to render clean text output. The AI sees exactly what a human would see — no raw ANSI escape codes.
11
+ This MCP server gives AI agents real interactive terminal sessions with clean text output — no raw ANSI escape codes. It supports two modes:
12
+
13
+ - **PTY mode** (default): Uses node-pty + xterm-headless (the same terminal emulator as VS Code) for pixel-perfect terminal rendering. Full PTY features including resize, cursor positioning, and terminal applications.
14
+ - **Pipe mode** (automatic fallback): When node-pty can't spawn PTYs (e.g., in Claude Code's OS sandbox), falls back to `child_process.spawn` with pipes. Output is cleaned via ANSI stripping. No terminal emulation, but interactive sessions still work with auto-injected flags (`python -u -i`, `bash -i`, `node --interactive`).
15
+
16
+ The mode is selected automatically — PTY is tried first, pipe mode kicks in if it fails.
12
17
 
13
18
  ```
14
19
  AI Agent (Claude Code, Cursor, etc.)
15
20
  ↕ MCP (JSON-RPC over stdio)
16
21
  MCP Terminal Server
17
- ↕ node-pty (pseudo-terminal)
22
+ ↕ node-pty (PTY mode) or child_process (pipe mode)
18
23
  Interactive Process (rails console, python, psql, ssh, bash...)
19
- ↕ xterm-headless (terminal emulation)
24
+ ↕ xterm-headless (PTY) or ANSI stripping (pipe)
20
25
  Clean text output
21
26
  ```
22
27
 
@@ -149,6 +154,11 @@ All configuration via environment variables:
149
154
  | `MCP_TERMINAL_LOG_INPUTS` | `false` | Log all inputs to stderr |
150
155
  | `MCP_TERMINAL_IDLE_TIMEOUT` | `0` | Auto-close idle sessions (ms, 0=disabled) |
151
156
  | `MCP_TERMINAL_DANGER_DETECTION` | `true` | Enable dangerous command detection |
157
+ | `MCP_TERMINAL_ALLOWED_PATHS` | (none) | Comma-separated paths sessions can access |
158
+ | `MCP_TERMINAL_AUDIT_LOG` | (none) | Path to JSON audit log file |
159
+ | `MCP_TERMINAL_SANDBOX` | `false` | Enable OS-level kernel sandboxing |
160
+ | `MCP_TERMINAL_SANDBOX_ALLOW_WRITE` | `/tmp` | Writable paths in sandbox mode |
161
+ | `MCP_TERMINAL_SANDBOX_ALLOW_NETWORK` | `*` | Allowed network domains in sandbox |
152
162
 
153
163
  Example with env vars:
154
164
 
@@ -170,9 +180,13 @@ Example with env vars:
170
180
 
171
181
  ## How It Works
172
182
 
173
- ### Clean Output via xterm-headless
183
+ ### Two Terminal Modes
184
+
185
+ **PTY mode** (node-pty + xterm-headless): PTY output is fed into xterm-headless (the same terminal emulator used by VS Code, but headless). The buffer is read as plain text via `getLine().translateToString()` — properly wrapped, cursor-positioned, clean. This gives pixel-perfect output identical to what a human sees.
186
+
187
+ **Pipe mode** (child_process fallback): When PTY spawning is blocked (common in sandboxed environments like Claude Code), the server falls back to `child_process.spawn` with piped stdio. Output is cleaned by stripping ANSI escape codes. Programs that need explicit interactive flags get them auto-injected (e.g., `python` gets `-u -i`, `bash` gets `-i`). This mode also supports optional OS-level sandboxing via `@anthropic-ai/sandbox-runtime`.
174
188
 
175
- Instead of dumping raw ANSI escape codes, PTY output is fed into xterm-headless (the same terminal emulator used by VS Code, but headless). The buffer is read as plain text properly wrapped, cursor-positioned, clean.
189
+ The mode is logged at startup and reported in session creation responses.
176
190
 
177
191
  ### Smart "Command Done" Detection
178
192
 
@@ -21,4 +21,8 @@ export interface TerminalOptions {
21
21
  * Create a terminal wrapper. Tries node-pty first, falls back to child_process.
22
22
  */
23
23
  export declare function createTerminal(options: TerminalOptions): Promise<TerminalWrapper>;
24
+ /**
25
+ * Create a pipe-mode terminal directly (exported for testing).
26
+ */
27
+ export declare function createPipeTerminal(options: TerminalOptions): Promise<TerminalWrapper>;
24
28
  //# sourceMappingURL=terminal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAOlD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAOvF"}
1
+ {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAOlD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAOvF;AAmID;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAgK3F"}
package/dist/terminal.js CHANGED
@@ -33,7 +33,7 @@ async function createPtyTerminal(options) {
33
33
  const Terminal = xtermMod.Terminal ?? xtermMod.default?.Terminal;
34
34
  const cols = options.cols ?? 120;
35
35
  const rows = options.rows ?? 40;
36
- const xterm = new Terminal({ cols, rows, scrollback: 1000 });
36
+ const xterm = new Terminal({ cols, rows, scrollback: 1000, allowProposedApi: true });
37
37
  const ptyProcess = pty.spawn(options.command, options.args ?? [], {
38
38
  name: "xterm-256color",
39
39
  cols,
@@ -149,7 +149,10 @@ function pipeInteractiveArgs(command, args) {
149
149
  }
150
150
  return args;
151
151
  }
152
- async function createPipeTerminal(options) {
152
+ /**
153
+ * Create a pipe-mode terminal directly (exported for testing).
154
+ */
155
+ export async function createPipeTerminal(options) {
153
156
  const args = pipeInteractiveArgs(options.command, options.args ?? []);
154
157
  const envVars = {
155
158
  ...process.env,
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-interactive-terminal",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "MCP server for interactive shell sessions — run REPLs, SSH, databases, and any interactive CLI through AI agents",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -19,6 +19,7 @@
19
19
  "start": "node dist/index.js",
20
20
  "test": "vitest run",
21
21
  "test:watch": "vitest",
22
+ "postinstall": "node -e \"try{require('fs').chmodSync(require('path').join(require.resolve('node-pty'),'..','..','prebuilds',process.platform+'-'+process.arch,'spawn-helper'),0o755)}catch{}\"",
22
23
  "prepublishOnly": "npm run build",
23
24
  "inspect": "npx @modelcontextprotocol/inspector dist/index.js"
24
25
  },
package/src/terminal.ts CHANGED
@@ -48,7 +48,7 @@ async function createPtyTerminal(options: TerminalOptions): Promise<TerminalWrap
48
48
 
49
49
  const cols = options.cols ?? 120;
50
50
  const rows = options.rows ?? 40;
51
- const xterm = new Terminal({ cols, rows, scrollback: 1000 });
51
+ const xterm = new Terminal({ cols, rows, scrollback: 1000, allowProposedApi: true });
52
52
 
53
53
  const ptyProcess = pty.spawn(options.command, options.args ?? [], {
54
54
  name: "xterm-256color",
@@ -167,7 +167,10 @@ function pipeInteractiveArgs(command: string, args: string[]): string[] {
167
167
  return args;
168
168
  }
169
169
 
170
- async function createPipeTerminal(options: TerminalOptions): Promise<TerminalWrapper> {
170
+ /**
171
+ * Create a pipe-mode terminal directly (exported for testing).
172
+ */
173
+ export async function createPipeTerminal(options: TerminalOptions): Promise<TerminalWrapper> {
171
174
  const args = pipeInteractiveArgs(options.command, options.args ?? []);
172
175
  const envVars = {
173
176
  ...process.env,