Content
# Persistent Terminal MCP Server
[English](README.en.md)
A powerful Model Context Protocol (MCP) server for persistent terminal session management, implemented in TypeScript and [`node-pty`](https://github.com/microsoft/node-pty). Even if the client disconnects, terminal commands continue to run, making it especially suitable for AI assistants like Claude, Cursor, and Cline to execute long-running tasks.
油管视频地址:https://youtu.be/nfLi1IZxhJs
b站视频地址:https://www.bilibili.com/video/BV14ksPzqEbM/
Windows 配置mcp 视频教程地址:https://youtu.be/WYEKwTQCAnc
## ✨ Core Features
### 🔥 Persistent Terminal Sessions
- **Long-Running**: Create, reuse, and manage long-running Shell sessions
- **Reconnect**: Terminal continues to run after client disconnects, and can be resumed upon reconnection
- **Multi-Session Management**: Manage multiple independent terminal sessions simultaneously
- **Automatic Cleanup**: Timeout sessions are automatically cleaned up to avoid resource leaks
### 🧠 Intelligent Output Management
- **Circular Buffer**: Configurable size (default 10,000 lines) with automatic memory management
- **Multiple Read Modes**:
- `full`: Full output
- `head`: Read only the first N lines
- `tail`: Read only the last N lines
- `head-tail`: Read both the beginning and end
- **Incremental Read**: Use the `since` parameter to read only new content
- **Token Estimation**: Automatically estimate the number of tokens in the output for AI context control
### 🎨 Spinner Animation Compression
- **Automatic Detection**: Recognize common progress animation characters (⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏, ◐◓◑◒, etc.)
- **Intelligent Throttling**: Reduce noisy output from commands like `npm install`, `yarn`, and `pnpm`
- **Preserve Key Information**: Compress animations while retaining real logs
- **Flexible Configuration**: Can be controlled via environment variables or parameters
### 🌐 Web Visual Management Interface
- **Real-Time Terminal**: Terminal rendering based on xterm.js, supporting full ANSI colors
- **WebSocket Push**: Real-time display of terminal output without refreshing
- **Interactive Operations**: Send commands and view output directly in the browser
- **Multi-Instance Support**: Automatic port allocation, supporting multiple AI clients simultaneously
- **VS Code Style**: Dark theme with a clean and beautiful interface design
### 🤖 Codex Automatic Bug Fixes
- **Fully Automated**: Integrated OpenAI Codex CLI for automatic code bug fixes
- **Documentation-Driven**: AI descriptions are saved as MD documents, which Codex reads and fixes
- **Detailed Reports**: Generate complete fix reports, including before and after comparisons
- **Intelligent Waiting**: Automatically detect when Codex has finished executing, with a default timeout of 10 minutes
- **History**: All bug descriptions and fix reports are permanently saved in the docs/ directory
### 🔌 Multiple Integration Methods
- **MCP Protocol**: Native support for clients like Claude Desktop, Claude Code, Cursor, and Cline
- **REST API**: Provides HTTP interfaces for easy integration in non-MCP scenarios
- **Strict Compliance**: Fully compliant with the MCP stdio protocol specification, with clean and unpolluted stdout
### 🛡️ Stability Assurance
- **Stable Output Detection**: `wait_for_output` tool ensures complete output retrieval
- **Interactive Application Support**: Perfect support for interactive programs like vim and npm create
- **ANSI Escape Sequences**: Correctly handle terminal control characters
- **Error Recovery**: Automatic reconnection and exception handling mechanisms
## 🚀 Installation
### ✅ Quick Start (Recommended)
No installation required, start directly using `npx`:
```bash
npx persistent-terminal-mcp
```
The REST version is also supported:
```bash
npx persistent-terminal-mcp-rest
```
### 📦 Import into Existing Project
```bash
npm install persistent-terminal-mcp
```
After installation, you can import all core classes and types in your code:
```ts
import { PersistentTerminalMcpServer } from 'persistent-terminal-mcp';
```
### 🌐 Global Installation (Optional)
```bash
npm install --global persistent-terminal-mcp
persistent-terminal-mcp
```
## 🧪 Local Development
Suitable for scenarios where you want to modify the source code or debug deeply:
```bash
npm install # Install dependencies
npm run build # Compile TypeScript → dist/
npm start # Start the MCP server via stdio
```
During development, you can also run the TypeScript source code directly:
```bash
npm run dev # MCP server (tsx)
npm run dev:rest # REST server (tsx)
```
### 🐞 Debug Mode
Enable debug logging (output to stderr, which does not interfere with MCP communication):
```bash
MCP_DEBUG=true persistent-terminal-mcp
```
### 📚 Example Scripts
```bash
npm run example:basic # Basic operations: create → write → read → terminate
npm run example:smart # Smart reading: head/tail/head-tail mode demonstration
npm run example:spinner # Spinner compression feature demonstration
npm run example:webui # Web UI feature demonstration
npm run test:tools # Fully validate all MCP tools
npm run test:fixes # Regression tests for key fixes
```
## ⚙️ MCP Client Configuration
### Claude Desktop
#### macOS / Linux
**Configuration File Location**: `~/Library/Application Support/Claude/claude_desktop_config.json`
Add the following content to the configuration file:
```json
{
"mcpServers": {
"persistent-terminal": {
"command": "npx",
"args": ["-y", "persistent-terminal-mcp"],
"env": {
"MAX_BUFFER_SIZE": "10000",
"SESSION_TIMEOUT": "86400000",
"COMPACT_ANIMATIONS": "true",
"ANIMATION_THROTTLE_MS": "100"
}
}
}
}
```
**Explanation**:
- The `-y` parameter automatically confirms the npx download prompt
- If you have installed it globally (`npm install -g persistent-terminal-mcp`), you can change `command` to `"persistent-terminal-mcp"` and remove `-y` from `args`
#### Windows
**Configuration File Location**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"persistent-terminal": {
"command": "cmd",
"args": ["/c", "npx", "-y", "persistent-terminal-mcp"],
"env": {
"MAX_BUFFER_SIZE": "10000",
"SESSION_TIMEOUT": "86400000",
"COMPACT_ANIMATIONS": "true",
"ANIMATION_THROTTLE_MS": "100"
}
}
}
}
```
**Explanation**:
- Windows needs to call `npx` through `cmd /c`
- If you have installed it globally, you can change `args` to `["/c", "persistent-terminal-mcp"]`
---
### Claude Code
#### macOS / Linux
Use the command line to quickly add:
```bash
claude mcp add persistent-terminal \
--env MAX_BUFFER_SIZE=10000 \
--env SESSION_TIMEOUT=86400000 \
--env COMPACT_ANIMATIONS=true \
--env ANIMATION_THROTTLE_MS=100 \
-- npx -y persistent-terminal-mcp
```
**Or** edit the configuration file `~/.claude.json`:
```json
{
"mcpServers": {
"persistent-terminal": {
"command": "npx",
"args": ["-y", "persistent-terminal-mcp"],
"env": {
"MAX_BUFFER_SIZE": "10000",
"SESSION_TIMEOUT": "86400000",
"COMPACT_ANIMATIONS": "true",
"ANIMATION_THROTTLE_MS": "100"
}
}
}
}
```
#### Windows
> # ⚠️ **Attention Windows Users**
>
> ## **Claude Code** has parameter parsing issues with the `claude mcp add` command on Windows
>
> ### **🚫 It is not recommended to use the command line method**
>
> Please refer to the dedicated configuration documentation:
> ### 📖 [《Configuring persistent-terminal MCP on Windows》](docs/clients/claude-code-windows.md)
>
> This document provides two recommended solutions:
> - ✅ **Project-Level Configuration** (Recommended): Create a `.mcp.json` file in the project root directory
> - ✅ **Global Configuration**: Use a Python script to modify `~/.claude.json`
---
### Cursor / Cline
The configuration method is similar to Claude Desktop, please refer to the MCP configuration documentation of each client.
### Codex
#### macOS / Linux
Add the following configuration to the `.codex/config.toml` file:
```toml
# MCP Server Configuration (TOML Format)
# 用于配置 persistent-terminal MCP 服务器
[mcp_servers.persistent-terminal]
command = "npx"
args = ["-y", "persistent-terminal-mcp"]
[mcp_servers.persistent-terminal.env]
MAX_BUFFER_SIZE = "10000"
SESSION_TIMEOUT = "86400000"
COMPACT_ANIMATIONS = "true"
ANIMATION_THROTTLE_MS = "100"
```
#### Windows
Add the following configuration to the `.codex/config.toml` file:
```toml
# MCP Server Configuration (TOML Format)
# 用于配置 persistent-terminal MCP 服务器
[mcp_servers.persistent-terminal]
command = "cmd"
args = ["/c", "npx", "-y", "persistent-terminal-mcp"]
[mcp_servers.persistent-terminal.env]
MAX_BUFFER_SIZE = "10000"
SESSION_TIMEOUT = "86400000"
COMPACT_ANIMATIONS = "true"
ANIMATION_THROTTLE_MS = "100"
```
**Explanation**: Windows needs to call `npx` through `cmd /c`
---
### Environment Variable Description
| Variable | Description | Default Value |
|------|------|--------|
| `MAX_BUFFER_SIZE` | Maximum number of lines in the buffer | 10000 |
| `SESSION_TIMEOUT` | Session timeout (milliseconds) | 86400000 (24 hours) |
| `COMPACT_ANIMATIONS` | Whether to enable Spinner compression | true |
| `ANIMATION_THROTTLE_MS` | Animation throttle time (milliseconds) | 100 |
| `MCP_DEBUG` | Whether to enable debug logging | false |
## 🧱 TypeScript Programmatic Usage
```ts
import {
PersistentTerminalMcpServer,
TerminalManager,
RestApiServer
} from 'persistent-terminal-mcp';
const manager = new TerminalManager();
const rest = new RestApiServer(manager);
await rest.start(3001);
const mcpServer = new PersistentTerminalMcpServer();
const server = mcpServer.getServer();
await server.connect(/* 自定义 transport */);
```
All core classes and types can be obtained at the root entry of the package. For details, please refer to `src/index.ts`.
## 🛠️ MCP Tool Overview
| Tool | Function | Main Parameters |
|------|------|----------|
| `create_terminal` | Create a persistent terminal session | `shell`, `cwd`, `env`, `cols`, `rows` |
| `create_terminal_basic` | Simplified creation entry | `shell`, `cwd` |
| `write_terminal` | Write a command to the terminal | `terminalId`, `input`, `appendNewline` |
| `read_terminal` | Read buffered output | `terminalId`, `mode`, `since`, `stripSpinner` |
| `wait_for_output` | Wait for stable output | `terminalId`, `timeout`, `stableTime` |
| `get_terminal_stats` | View statistics | `terminalId` |
| `list_terminals` | List all active terminals | None |
| `kill_terminal` | Terminate a session | `terminalId`, `signal` |
| `open_terminal_ui` | Open the Web management interface | `port`, `autoOpen` |
| `fix_bug_with_codex` 🆕 | Automatically fix bugs using Codex | `description`, `cwd`, `timeout` |
### Tool Details
#### `create_terminal` - Create Terminal
Create a new persistent terminal session.
**Parameters**:
- `shell` (Optional): Shell type, such as `/bin/bash`, `/bin/zsh`
- `cwd` (Optional): Working directory
- `env` (Optional): Environment variable object
- `cols` (Optional): Number of terminal columns, default 80
- `rows` (Optional): Number of terminal rows, default 24
**Returns**:
- `terminalId`: Terminal ID
- `status`: Status
- `pid`: Process ID
- `shell`: Shell type
- `cwd`: Working directory
#### `write_terminal` - Write Command
Send a command or input to the terminal.
**Parameters**:
- `terminalId`: Terminal ID
- `input`: Content to send
- `appendNewline` (Optional): Whether to automatically add a newline character, default true
**Tip**: By default, a newline character is automatically added to execute the command. If you need to send raw control characters (such as arrow keys), please set `appendNewline: false`.
#### `read_terminal` - Read Output
Read the buffered output of the terminal, supporting multiple intelligent truncation modes.
**Parameters**:
- `terminalId`: Terminal ID
- `mode` (Optional): Read mode
- `full`: Full output (default)
- `head`: Read only the beginning
- `tail`: Read only the end
- `head-tail`: Read both the beginning and end
- `since` (Optional): Start reading from line N (incremental reading)
- `maxLines` (Optional): Maximum number of lines, default 1000
- `headLines` (Optional): Number of lines in head mode, default 50
- `tailLines` (Optional): Number of lines in tail mode, default 50
- `stripSpinner` (Optional): Whether to compress Spinner animations
**Returns**:
- `output`: Output content
- `totalLines`: Total number of lines
- `lineRange`: Actual range of returned lines
- `estimatedTokens`: Estimated number of tokens
- `truncated`: Whether it was truncated
- `spinnerCompacted`: Whether Spinner compression was performed
#### `wait_for_output` - Wait for Stable Output
Wait for the terminal output to stabilize before reading, ensuring complete output retrieval.
**Parameters**:
- `terminalId`: Terminal ID
- `timeout` (Optional): Maximum waiting time (milliseconds), default 5000
- `stableTime` (Optional): Stable time (milliseconds), default 500
**Use Cases**:
- Ensure complete output retrieval after executing a command
- Wait for interactive applications to finish starting
#### `fix_bug_with_codex` 🆕 - Automatically Fix Bugs
Automatically analyze and fix bugs in code using OpenAI Codex CLI.
**Parameters**:
- `description` (required): Detailed bug description, must include:
- Problem symptoms (specific error behavior)
- Expected behavior (how it should work)
- Problem location (file path, line number, function name)
- Relevant code (problematic code snippet)
- Root cause (why the problem occurs)
- Suggested fix (how to fix)
- Scope of impact (what else it affects)
- Related files (all related file paths)
- Test cases (how to verify the fix is effective)
- Context information (background information to understand the problem)
- `cwd` (optional): Working directory, defaults to the current directory
- `timeout` (optional): Timeout period (milliseconds), default 600000 (10 minutes)
**Returns**:
- `terminalId`: Terminal ID executing Codex
- `reportPath`: Path to the fix report
- `reportExists`: Whether the report exists
- `workingDir`: Working directory
- `executionTime`: Execution time (seconds)
- `timedOut`: Whether it timed out
- `output`: Terminal output
- `reportPreview`: Report preview
**Workflow**:
1. AI provides a detailed bug description
2. Tool saves the description to `docs/codex-bug-description-TIMESTAMP.md`
3. Codex reads the document and analyzes the problem
4. Codex fixes the bug and generates a report `docs/codex-fix-TIMESTAMP.md`
5. AI reads the report and summarizes it for the user
**Important Notes**:
- ⚠️ This tool has full system access (`danger-full-access`)
- ⚠️ Codex can modify any file, it is recommended to use it in a Git repository
- ✅ Only use English descriptions (avoid UTF-8 encoding issues)
- ✅ The more detailed the description, the higher the quality of the fix
**Example**:
```javascript
fix_bug_with_codex({
description: `Username validation bug in auth.js file.
PROBLEM:
- File: src/auth/login.ts, line 45
- Code: const usernameRegex = /^[a-zA-Z0-9]{3,20}$/
- Symptom: Username 'user_name' is rejected with 'Invalid username' error
- Expected: Should accept usernames with underscores and hyphens
ROOT CAUSE:
- Regex [a-zA-Z0-9] only allows letters and numbers
- Missing support for underscore and hyphen characters
SUGGESTED FIX:
- Change regex to: /^[a-zA-Z0-9_-]{3,20}$/
VERIFICATION:
- Run: npm test
- Expected: all tests pass`,
cwd: '/path/to/project',
timeout: 600000
})
```
**Detailed Documentation**:
- [Codex Bug Fix Tool Feature Documentation](docs/features/CODEX_BUG_FIX_TOOL.md)
- [Codex Bug Fix Tool Test Report](docs/features/CODEX_BUG_FIX_TEST_REPORT.md)
> **💡 Tip**: Codex CLI requires OpenAI API access. If you are in China or encounter access problems, consider using the [Codex CLI Mirror Service](https://www.codex-cli.top) (¥99/month, $90 daily quota) to make AI programming smoother.
#### `open_terminal_ui` - Open Web Management Interface
Start a browser-based visual terminal management interface.
**Parameters**:
- `port` (optional): Port number, defaults to automatically finding one starting from 3002
- `autoOpen` (optional): Whether to automatically open the browser, default true
**Returns**:
- `url`: Web UI address
- `port`: Actual port used
- `mode`: Startup mode (new/existing)
- `autoOpened`: Whether the browser was automatically opened
#### `fix_bug_with_codex` 🆕 - Automatically Fix Bugs Using Codex
Call OpenAI Codex CLI to automatically analyze and fix bugs in the code, and generate a detailed fix report.
**⚠️ Important Notes**:
- This tool uses **full permission mode** (`--sandbox danger-full-access --ask-for-approval never`)
- Codex has full control over the code base, use with caution
- It is recommended to back up the code or use version control before use
**Parameters**:
- `description` (required): **Detailed** bug description, must include:
- Problem symptoms (specific error behavior)
- Expected behavior (how it should work)
- Problem location (file path, line number)
- Relevant code snippets
- Root cause (if known)
- Suggested fix (if any)
- Scope of impact (possible affected functions)
- Related files (all related file paths)
- Test cases (how to verify the fix)
- Context information (background information)
- `cwd` (optional): Working directory, defaults to the current directory
- `timeout` (optional): Timeout period (milliseconds), default 600000 (10 minutes)
**Returns**:
- `terminalId`: Terminal ID executing Codex
- `reportPath`: Path to the fix report (`docs/codex-fix-TIMESTAMP.md`)
- `reportExists`: Whether the report was successfully generated
- `executionTime`: Execution time
- `output`: Codex terminal output
**Workflow**:
1. AI assistant collects detailed bug information
2. Call this tool, passing in the detailed description
3. Codex analyzes the problem and fixes the code
4. Codex generates a detailed report in the `docs/` directory
5. AI assistant reads the report and reports to the user
**Report Content**:
- Problem description
- List of modified files
- Specific modifications for each file (before/after comparison)
- Explanation of the reason for the modification
- Test suggestions
- Precautions
**Example Usage**:
```
User: The login function has a bug, username validation always fails
AI Assistant:
1. [View related files, understand the problem]
2. [Call fix_bug_with_codex]
{
"description": "There is a bug in the username validation of the login function, the specific performance is:
1. Problem phenomenon: The user input 'user_name' is rejected
2. Expected behavior: Should accept usernames containing underscores
3. Problem location: src/auth/login.ts line 45
4. Relevant code: const usernameRegex = /^[a-zA-Z0-9]{3,20}$/
5. Root cause: Regular expressions do not allow underscores
..."
}
3. [Wait for Codex to complete]
4. [Read the report] view("docs/codex-fix-2025-10-18T00-35-12.md")
5. [Report the fix results to the user]
```
**Prerequisites**:
- Codex CLI has been installed: `npm install -g @openai/codex-cli`
- Codex authentication has been configured
- There is a `docs/` directory in the project
**Best Practices**:
- Provide as detailed a bug description as possible (the more detailed the description, the higher the quality of the fix)
- View related files and understand the problem before calling
- Be sure to run tests to verify after fixing
- View the generated report to understand the specific modifications
- Use version control to facilitate rollback
## 🌐 Web Management Interface
### Features
- 📊 **Terminal List**: View the status, PID, Shell, working directory and other information of all terminals
- 🖥️ **Real-time Terminal**: Use xterm.js to render terminal output, supports ANSI colors
- ⚡ **Real-time Updates**: WebSocket push, terminal output is displayed in real time
- ⌨️ **Interactive Operation**: Send commands directly in the browser
- 🎨 **VS Code Style**: Dark theme, simple and beautiful
- 🔄 **Automatic Port**: Supports multiple instances, automatically avoids port conflicts
### Quick Start
Say in Claude or other MCP clients:
```
Please open the terminal management interface
```
Or run the test script directly:
```bash
npm run test:webui
```
See [Web UI Usage Guide](docs/guides/WEB_UI_USAGE.md) for detailed instructions.
## 🔌 REST API (Optional)
If you need an HTTP interface, you can start the REST version:
```bash
npx persistent-terminal-mcp-rest
```
The server listens on port `3001` by default (configurable), and the endpoints correspond to MCP tools one by one:
| Endpoint | Method | Description |
|------|------|------|
| `/api/terminals` | POST | Create terminal |
| `/api/terminals` | GET | List all terminals |
| `/api/terminals/:id` | GET | Get terminal details |
| `/api/terminals/:id` | DELETE | Terminate terminal |
| `/api/terminals/:id/input` | POST | Send command |
| `/api/terminals/:id/output` | GET | Read output |
| `/api/terminals/:id/stats` | GET | Get statistics |
## 📁 Project Structure
```
persistent-terminal-mcp/
├── src/ # TypeScript source code
│ ├── index.ts # MCP server entry
│ ├── mcp-server.ts # MCP server implementation
│ ├── terminal-manager.ts # Terminal manager
│ ├── output-buffer.ts # Output buffer
│ ├── web-ui-manager.ts # Web UI manager
│ ├── web-ui-server.ts # Web UI server
│ ├── rest-server.ts # REST API server
│ ├── types.ts # Type definition
│ ├── __tests__/ # Unit tests
│ └── examples/ # Example scripts
├── dist/ # Compiled JavaScript
├── public/ # Web UI static files
├── docs/ # Documentation
│ ├── guides/ # Usage guide
│ ├── reference/ # Technical reference
│ ├── clients/ # Client configuration
│ └── zh/ # Chinese documentation
├── tests/ # Test suite
│ └── integration/ # Integration tests
└── scripts/ # Auxiliary scripts
```
## 📚 Documentation Navigation
### Quick Access
- 📖 [Complete Documentation Index](docs/README.md)
- 🚨 [Fix Documentation Index](docs/reference/fixes/README.md)
- 🧪 [Integration Test Instructions](tests/integration/README.md)
- 🌐 [Web UI Usage Guide](docs/guides/WEB_UI_USAGE.md)
### By Category
- **Usage Guide**: [Usage Instructions](docs/guides/usage.md) | [Troubleshooting](docs/guides/troubleshooting.md) | [MCP Configuration](docs/guides/mcp-config.md)
- **Technical Reference**: [Technical Details](docs/reference/technical-details.md) | [Tool Summary](docs/reference/tools-summary.md)
- **Fix Documentation**: [Stdio Fix](docs/reference/fixes/STDIO_FIX.md) | [Cursor Fix](docs/reference/fixes/CURSOR_FIX_SUMMARY.md) | [Terminal Fixes](docs/reference/fixes/TERMINAL_FIXES.md)
- **Client Configuration**: [Claude Desktop/Code](docs/clients/claude-code-setup.md)
## 🔍 Important Notes
### Stdio Cleanliness
This MCP server strictly follows the MCP protocol to ensure that stdout only contains JSON-RPC messages, and all logs are output to stderr. This guarantees full compatibility with strict clients such as Cursor. See [Stdio Fix Documentation](docs/reference/fixes/STDIO_FIX.md) for details.
### Cursor Compatibility
Fully compatible with Cursor and other MCP clients that require strict JSON-RPC communication. See [Quick Fix Guide](docs/reference/fixes/QUICK_FIX_GUIDE.md) for quick setup.
### Terminal Interaction
Supports interactive applications (vim, npm create, etc.), correctly handles ANSI escape sequences. See [Terminal Fixes Documentation](docs/reference/fixes/TERMINAL_FIXES.md) for details.
### Output Stability
Use the `wait_for_output` tool to ensure that complete output is obtained after the command is executed, avoiding reading incomplete data.
## 🧪 Tests
### Run Tests
```bash
npm test # Run all unit tests
npm run test:integration # Run all integration tests
npm run test:all # Run all tests
```
### Integration Tests
```bash
npm run test:integration:stdio # Stdio cleanliness test
npm run test:integration:cursor # Cursor scenario test
npm run test:integration:terminal # Terminal function test
```
## 🤝 Contribution Guide
Welcome to submit Issues or PRs! See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed process and code specifications.
### Contribution Method
1. Fork this repository
2. Create a feature branch (`git checkout -b feature/AmazingFeature`)
3. Submit changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## 📄 Open Source License
This project is released under the [MIT License](LICENSE).
## 🙏 Acknowledgements
- [node-pty](https://github.com/microsoft/node-pty) - Powerful PTY library
- [Model Context Protocol](https://modelcontextprotocol.io/) - MCP protocol specification
- [xterm.js](https://xtermjs.org/) - Excellent terminal emulator
## 📞 Support
- 📖 View [Documentation](docs/README.md)
- 🐛 Submit [Issue](https://github.com/yourusername/node-pty/issues)
- 💬 Participate in [Discussion](https://github.com/yourusername/node-pty/discussions)
---
**Last Updated**: 2025-10-08
**Version**: 1.0.1
Connection Info
You Might Also Like
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
servers
Model Context Protocol Servers
Time
A Model Context Protocol server for time and timezone conversions.
Filesystem
Node.js MCP Server for filesystem operations with dynamic access control.
Sequential Thinking
A structured MCP server for dynamic problem-solving and reflective thinking.
git
A Model Context Protocol server for Git automation and interaction.