mcp-interactive-terminal 1.0.2 → 1.0.4

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): Spawns a real pseudo-terminal and renders output through xterm-headless (the same terminal emulator as VS Code). The AI sees exactly what a human would see — cursor-positioned, line-wrapped, clean text. Supports terminal resize, TUI apps (vim, htop, top), arrow keys, tab completion, 256-color, and scrollback.
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,37 @@ Example with env vars:
170
180
 
171
181
  ## How It Works
172
182
 
173
- ### Clean Output via xterm-headless
174
-
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.
183
+ ### Two Terminal Modes
184
+
185
+ **PTY mode** (node-pty + xterm-headless) is the default and gives you the full terminal experience:
186
+
187
+ - Pixel-perfect output — xterm-headless (same engine as VS Code's terminal) renders the screen exactly as a human would see it
188
+ - Cursor positioning — programs that overwrite parts of the screen (progress bars, spinners, `\r` overwrites) render correctly, showing only the final state
189
+ - Terminal resize — dynamically change `cols` and `rows` mid-session
190
+ - TUI/ncurses apps — `vim`, `htop`, `top`, `less`, `tmux` all work because there's a real PTY underneath
191
+ - Full keyboard support — arrow keys for command history, tab completion, ctrl+r reverse search, ctrl+c/d/z signals, home/end, and 20+ control keys
192
+ - Scrollback buffer — 1000 lines of history via `full_screen: true`
193
+ - 256-color support — `TERM=xterm-256color` is set automatically
194
+
195
+ **Pipe mode** (child_process fallback) activates automatically when PTY spawning is blocked (e.g., in Claude Code's OS sandbox):
196
+
197
+ - Interactive sessions still work — auto-injects flags like `python -u -i`, `bash -i`, `node --interactive`
198
+ - ANSI stripping — escape codes are removed, but no terminal emulation
199
+ - Control keys still work — ctrl+c sends SIGINT to the process tree, ctrl+d sends EOF
200
+ - Optional OS-level sandboxing via `@anthropic-ai/sandbox-runtime`
201
+
202
+ ### PTY vs Pipe — what the AI sees
203
+
204
+ | Scenario | PTY mode | Pipe mode |
205
+ |----------|----------|-----------|
206
+ | `printf "\rProgress: 3/3"` | `Progress: 3/3` | `Progress: 1/3Progress: 2/3Progress: 3/3` |
207
+ | `printf "ABCDEF\033[4DXXXX"` | `ABXXXX` | `ABCDEFXXXX` |
208
+ | Tabs (`\t`) | Aligned to 8-char stops | Raw `\t` characters |
209
+ | ANSI colors `\033[31mred\033[0m` | `red` | `red` |
210
+ | `vim`, `htop`, `top` | Readable screen | Garbled escape codes |
211
+ | Arrow up (history) | Previous command | Works |
212
+ | Tab completion | Works | Works |
213
+ | Terminal resize | Works | No-op |
176
214
 
177
215
  ### Smart "Command Done" Detection
178
216
 
@@ -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.4",
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,