@sanshao85/persistent-terminal-mcp
AMCP server package persistent-terminal-mcp
Install
agr install @sanshao85/persistent-terminal-mcp --target claudeThis artifact does not publish files for Claude.
Document
{ "name": "persistent-terminal-mcp", "version": "1.0.9", "description": "MCP server for managing persistent terminal sessions using node-pty", "main": "dist/index.js", "types": "dist/index.d.ts", "bin": { "persistent-terminal-mcp": "dist/index.js", "persistent-terminal-mcp-rest": "dist/rest-server.js" }, "files": [ "dist", "public", "README.md", "README.en.md", "CHANGELOG.md", "LICENSE" ], "exports": { ".": { "types": "./dist/index.d.ts", "import": "./dist/index.js" }, "./rest-server": { "types": "./dist/rest-server.d.ts", "import": "./dist/rest-server.js" }, "./rest-api": { "types": "./dist/rest-api.d.ts", "import": "./dist/rest-api.js" }, "./mcp-server": { "types": "./dist/mcp-server.d.ts", "import": "./dist/mcp-server.js" }, "./terminal-manager": { "types": "./dist/terminal-manager.d.ts", "import": "./dist/terminal-manager.js" }, "./web-ui-manager": { "types": "./dist/web-ui-manager.d.ts", "import": "./dist/web-ui-manager.js" }, "./web-ui-server": { "types": "./dist/web-ui-server.d.ts", "import": "./dist/web-ui-server.js" }, "./types": { "types": "./dist/types.d.ts", "import": "./dist/types.js" }, "./package.json": "./package.json" }, "type": "module", "scripts": { "build": "tsc", "dev": "tsx src/index.ts", "dev:rest": "tsx src/rest-server.ts", "start": "node dist/index.js", "start:rest": "node dist/rest-server.js", "test": "jest", "test:unit": "jest", "test:integration": "npm run test:integration:stdio && npm run test:integration:cursor && npm run test:integration:terminal && npm run test:integration:raw-tail", "test:integration:stdio": "node tests/integration/test-mcp-stdio.mjs", "test:integration:cursor": "node tests/integration/test-cursor-scenario.mjs", "test:integration:terminal": "node tests/integration/test-terminal-fixes.mjs", "test:integration:raw-tail": "node tests/integration/test-read-terminal-raw-tail.mjs", "test:all": "npm run test:unit && npm run test:integration", "clean": "rm -rf dist", "prepare": "npm run build", "example:basic": "tsx src/examples/basic-usage.ts", "example:rest": "tsx src/examples/rest-api-demo.ts", "example:interactive": "tsx src/examples/interactive-demo.ts", "example:smart": "tsx src/examples/smart-reading-demo.ts", "example:spinner": "tsx src/examples/test-spinner-compaction.ts", "example:webui": "tsx src/examples/test-web-ui.ts", "test:tools": "tsx src/examples/test-all-tools.ts", "test:fixes": "tsx src/examples/test-fixes.ts", "test:spinner": "jest spinner-detection.test.ts", "test:webui": "tsx src/examples/test-web-ui.ts", "lint": "echo 'Linting not configured yet'", "format": "echo 'Formatting not configured yet'" }, "keywords": [ "mcp", "terminal", "pty", "persistent", "session", "node-pty" ], "author": "Persistent Terminal Contributors", "license": "MIT", "repository": { "type": "git", "url": "git+https://github.com/sanshao85/persistent-terminal-mcp.git" }, "bugs": { "url": "https://github.com/sanshao85/persistent-terminal-mcp/issues" }, "homepage": "https://github.com/sanshao85/persistent-terminal-mcp#readme", "dependencies": { "@modelcontextprotocol/sdk": "^1.0.0", "cors": "^2.8.5", "express": "^4.18.2", "node-pty": "1.0.0", "uuid": "^9.0.1", "ws": "^8.18.3", "zod": "^3.22.4" }, "devDependencies": { "@types/cors": "^2.8.17", "@types/express": "^4.17.21", "@types/jest": "^29.0.0", "@types/node": "^20.0.0", "@types/uuid": "^9.0.7", "@types/ws": "^8.18.1", "jest": "^29.0.0", "ts-jest": "^29.0.0", "tsx": "^4.0.0", "typescript": "^5.0.0" }, "engines": { "node": ">=18.0.0" }, "sideEffects": false, "publishConfig": { "access": "public" } }
Trustgrade A
- passBody integrity
Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.
- warnType matchbest-effort: server code not analyzed
Whether the artifact is really the kind of thing its metadata claims it is.
- passFreshness
How long since the source repository was last pushed to.
- passPrompt injection
Scans the artifact's own text for instructions aimed at your agent rather than at you.
- passLicense
Whether the source repository declares an SPDX license permissive enough to redistribute.
How the grade is calculated
Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:
- Aevery check passed
- Bone warning
- Ctwo warnings
- Dprompt injection or body integrity failed, or three warnings
- Fone of those failed, and something else is wrong
These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.
Versions
git-00ccf413b6632026-08-06