MCP PTY server providing AI agents with real interactive terminal access
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · http
verified
reported
listed in the official MCP registry counts 17 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
terminal_diff
-
terminal_exec
-
terminal_extra
-
terminal_get_history
-
terminal_list
-
terminal_read
-
terminal_resize
-
terminal_retry
-
terminal_run
-
terminal_run_paged
-
terminal_send_key
-
terminal_start
-
terminal_stop
-
terminal_wait
-
terminal_watch
-
terminal_write
-
terminal_write_file
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 6170006 · analyzer v33 · 4d ago
danger signals1
- dynamic code execution new Function() pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :2948
const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 28
filesystem 12
- fs pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :22290
import { stat } from "node:fs/promises"; - fs (weak) pungggi-smart-terminal-mcp-6170006/scripts/http-scan-server.js :10
import { readFileSync } from 'node:fs'; - fs (weak) pungggi-smart-terminal-mcp-6170006/scripts/publish.js :1
import { readFileSync, writeFileSync, existsSync, unlinkSync } from 'fs'; - fs pungggi-smart-terminal-mcp-6170006/src/command-runner.js :2
import { readFile } from 'node:fs/promises'; - fs pungggi-smart-terminal-mcp-6170006/src/index.js :3
import { readFileSync } from 'node:fs'; - fs pungggi-smart-terminal-mcp-6170006/src/session-manager.js :1
import { stat } from 'node:fs/promises'; - fs pungggi-smart-terminal-mcp-6170006/src/tools.js :3
import { writeFile, appendFile, mkdir } from 'node:fs/promises'; - fs (weak) pungggi-smart-terminal-mcp-6170006/test/command-runner.test.js :3
import { chmod, mkdtemp, rm, writeFile } from 'node:fs/promises'; - fs (weak) pungggi-smart-terminal-mcp-6170006/test/http-scan-server.test.js :5
import { readFile, rm, writeFile } from 'node:fs/promises'; - fs (weak) pungggi-smart-terminal-mcp-6170006/test/publish.test.js :3
import { access, mkdtemp, readFile, rm, writeFile } from 'node:fs/promises'; - fs (weak) pungggi-smart-terminal-mcp-6170006/test/session-manager.test.js :3
import { mkdtemp, rm, writeFile } from 'node:fs/promises'; - fs (weak) pungggi-smart-terminal-mcp-6170006/test/tools.test.js :3
import { mkdtemp, readFile, rm } from 'node:fs/promises';
shell / exec 7
- shell pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :22386
import { execFileSync } from "node:child_process"; - shell (weak) pungggi-smart-terminal-mcp-6170006/scripts/publish.js :2
import { execSync, spawn } from 'child_process'; - shell pungggi-smart-terminal-mcp-6170006/src/command-runner.js :1
import { spawn } from 'node:child_process'; - shell pungggi-smart-terminal-mcp-6170006/src/pty-session.js :203
async exec({ command, timeout = 30000, maxLines = DEFAULT_EXEC_MAX_LINES, quietExitMs, minOutputBytes = 1, sendNotification, progressToken }) { - shell pungggi-smart-terminal-mcp-6170006/src/shell-detector.js :1
import { execFileSync } from 'node:child_process'; - shell (weak) pungggi-smart-terminal-mcp-6170006/test/http-scan-server.test.js :3
import { spawn } from 'node:child_process'; - shell (weak) pungggi-smart-terminal-mcp-6170006/test/index.test.js :3
import { spawnSync } from 'node:child_process';
network 3
- net (weak) pungggi-smart-terminal-mcp-6170006/scripts/http-scan-server.js :9
import http from 'node:http'; - net (weak) pungggi-smart-terminal-mcp-6170006/test/http-scan-server.test.js :67
const response = await fetch(`${SERVER_URL}/mcp`, { - net (weak) pungggi-smart-terminal-mcp-6170006/test/publish.test.js :52
"import http from 'node:http';",
secrets 1
- secrets (weak) pungggi-smart-terminal-mcp-6170006/scripts/publish.js :498
const apiKey = process.env.SMITHERY_API_KEY || '';
tool registrations 32
- terminal_start pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :24093
- terminal_exec pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :24127
- terminal_run pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :24148
- terminal_run_paged pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :24181
- terminal_write pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :24222
- terminal_read pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :24236
- terminal_get_history pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :24251
- terminal_resize pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :24266
- terminal_send_key pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :24280
- terminal_wait pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :24293
- terminal_retry pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :24316
- terminal_diff pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :24345
- terminal_stop pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :24362
- terminal_list pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :24373
- terminal_write_file pungggi-smart-terminal-mcp-6170006/.smithery/shttp/module.js :24384
- terminal_start pungggi-smart-terminal-mcp-6170006/src/tools.js :90
- terminal_exec pungggi-smart-terminal-mcp-6170006/src/tools.js :130
- terminal_run pungggi-smart-terminal-mcp-6170006/src/tools.js :159
- terminal_run_paged pungggi-smart-terminal-mcp-6170006/src/tools.js :196
- terminal_write pungggi-smart-terminal-mcp-6170006/src/tools.js :243
- terminal_read pungggi-smart-terminal-mcp-6170006/src/tools.js :263
- terminal_get_history pungggi-smart-terminal-mcp-6170006/src/tools.js :283
- terminal_resize pungggi-smart-terminal-mcp-6170006/src/tools.js :300
- terminal_send_key pungggi-smart-terminal-mcp-6170006/src/tools.js :316
- terminal_wait pungggi-smart-terminal-mcp-6170006/src/tools.js :331
- terminal_watch pungggi-smart-terminal-mcp-6170006/src/tools.js :356
- terminal_retry pungggi-smart-terminal-mcp-6170006/src/tools.js :384
- terminal_diff pungggi-smart-terminal-mcp-6170006/src/tools.js :415
- terminal_stop pungggi-smart-terminal-mcp-6170006/src/tools.js :434
- terminal_list pungggi-smart-terminal-mcp-6170006/src/tools.js :482
- terminal_write_file pungggi-smart-terminal-mcp-6170006/src/tools.js :495
- terminal_extra pungggi-smart-terminal-mcp-6170006/src/tools.js :535
declared dependencies 9
- @modelcontextprotocol/sdk@^1.29.0
- node-pty@^1.1.0
- zod@^3.25.76
- @babel/generator@^7.29.1
- @babel/parser@^7.29.0
- @babel/traverse@^7.29.0
- @babel/types@^7.29.0
- @smithery/cli@^4.7.4
- esbuild@^0.28.0