hazzel-cn/node-terminal-mcp
If you are the rightful owner of node-terminal-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The @hazzel-cn/node-terminal-mcp is a Model Context Protocol (MCP) server designed for managing terminal/PTY sessions, enabling AI agents to interact with terminal environments seamlessly.
@hazzel-cn/node-terminal-mcp
MCP server for terminal/PTY sessions using node-pty and xterm headless, designed for AI agents to interact with terminal environments.
Features
- Multiple Terminal Sessions: Create and manage multiple concurrent terminal sessions
- AI Agent Integration: Send commands and read output from terminals programmatically
- Cross-Platform: Works on Windows, macOS, and Linux
- Real-time Communication: Bidirectional communication between AI agents and terminal sessions
- Session Management: Create, resize, and close terminal sessions as needed
- Stdio Compatible: Optimized for stdio transport with proper error handling and signal management
Installation
From npm (recommended)
npm install -g @hazzel-cn/node-terminal-mcp
From source
git clone https://github.com/hazzel-cn/node-terminal-mcp.git
cd node-terminal-mcp
npm install
npm run build
Building
npm run build
Development
npm run dev
Configuration
Gemini CLI
Option A: Using stdio transport (default)
{
"mcpServers": {
"node-terminal-mcp": {
"command": "npx",
"args": ["-y", "@hazzel-cn/node-terminal-mcp@latest"],
"env": {}
}
}
}
Option B: If you get "Connection closed" errors with ADK, try this:
{
"mcpServers": {
"node-terminal-mcp": {
"command": "npx",
"args": ["-y", "@hazzel-cn/node-terminal-mcp@latest"],
"env": {},
"timeout": 30000
}
}
}
Option C: Alternative workaround for persistent connection issues:
{
"mcpServers": {
"node-terminal-mcp": {
"command": "bash",
"args": ["-c", "npx -y @hazzel-cn/node-terminal-mcp"],
"env": {}
}
}
}
Google ADK
Option A: Using npx (recommended)
{
"mcpServers": {
"node-terminal-mcp": {
"command": "npx",
"args": ["-y", "@hazzel-cn/node-terminal-mcp@latest"],
"env": {}
}
}
}
Option B: Using global installation (recommended)
npm install -g @hazzel-cn/node-terminal-mcp
{
"mcpServers": {
"node-terminal-mcp": {
"command": "node-terminal-mcp",
"args": [],
"env": {}
}
}
}
Usage
The server provides the following MCP tools:
create_terminal: Create a new terminal sessionwrite_to_terminal: Send input to a terminal sessionsend_key_to_terminal: Send special keys to a terminal sessionread_from_terminal: Read output from a terminal sessionresize_terminal: Resize a terminal sessionlist_terminals: List all active terminal sessionsclose_terminal: Close a terminal session
Architecture
- TerminalManager: Manages multiple terminal sessions using node-pty
- PTY Integration: Uses node-pty for terminal emulation and process management
- MCP Server: Provides standardized interface for AI agents
Requirements
- Node.js 18+
- Compatible with MCP (Model Context Protocol) clients
Troubleshooting
ADK "Connection Closed" Issue
If you're experiencing "Connection closed" errors with Google ADK, this is a known issue with stdio transport. Try these solutions:
- Use the latest version:
{
"mcpServers": {
"node-terminal-mcp": {
"command": "npx",
"args": ["-y", "@hazzel-cn/node-terminal-mcp@latest"],
"env": {},
"timeout": 30000
}
}
}
- Install globally:
npm install -g @hazzel-cn/node-terminal-mcp
{
"mcpServers": {
"node-terminal-mcp": {
"command": "node-terminal-mcp",
"args": [],
"env": {}
}
}
}
- Use bash wrapper:
{
"mcpServers": {
"node-terminal-mcp": {
"command": "bash",
"args": ["-c", "npx -y @hazzel-cn/node-terminal-mcp@latest"],
"env": {}
}
}
}
Links
- npm: https://www.npmjs.com/package/@hazzel-cn/node-terminal-mcp
- GitHub: https://github.com/hazzel-cn/node-terminal-mcp
- Issues: https://github.com/hazzel-cn/node-terminal-mcp/issues
License
MIT License - see file for details.