Skip to main content
Glama
kanniganfan

ai-mcp-terminal

by kanniganfan

AI-MCP Terminal

PyPI Python 3.10+ License: MIT

๐Ÿš€ Multi-threaded terminal management for AI assistants with real-time web monitoring

Solve terminal blocking issues - Commands run async, never block AI operations. Monitor up to 100 concurrent terminals with intelligent cleanup and system tracking.


โœจ Key Features

Core Capabilities

  • ๐Ÿš€ Async Execution - Commands never block AI operations

  • ๐Ÿ”ข Multi-Threading - 100 concurrent terminals with ThreadPoolExecutor

  • ๐Ÿงน Auto Cleanup - Smart idle session detection & memory management

  • โšก Batch Operations - Execute across multiple terminals simultaneously

  • ๐Ÿ“Š Web Monitor - Real-time xterm.js interface with system stats

Smart Execution (v1.0.52+)

  • ๐Ÿ”— Workflow Engine - Execute tasks with dependencies (DAG support)

  • โณ Smart Waiting - Block until specific tasks complete

  • ๐Ÿ“ Sequential Execution - Run commands in strict order

  • ๐Ÿ”„ Auto Retry - Automatic retry on transient failures

  • ๐Ÿ“‚ Project Lock - Terminals always start in project directory

Platform Support

  • ๐Ÿง WSL Priority - Auto-detect WSL bash on Windows (preferred)

  • ๐ŸŒ UTF-8 Support - Proper encoding, no garbled text

  • ๐Ÿ›‘ Anti-Loop Protection - Prevents AI from getting stuck in query loops


Related MCP server: mcp-ssh-multi

๐Ÿš€ Quick Start (1 Minute)

Step 1: Add MCP Configuration

Add to your Cursor/Cline MCP settings:

{
  "mcpServers": {
    "ai-mcp-terminal": {
      "command": "uvx",
      "args": ["ai-mcp-terminal"],
      "env": {}
    }
  }
}

Step 2: Restart IDE

Step 3: Start Using

In Cursor:

Create 3 terminals and run system checks in parallel

AI will use create_batch for true concurrency!

Browser auto-opens โ†’ http://localhost:8000 โ†’ View all terminals in real-time!


๐Ÿ“Š Web Interface

Auto-opens at http://localhost:8000

Features:

  • ๐Ÿ“บ Real-time xterm.js terminals

  • ๐Ÿ“Š CPU/Memory/System stats

  • ๐Ÿ”„ Live output streaming

  • ๐ŸŽฏ Click to expand terminals

  • ๐Ÿ›‘ Shutdown server button


๐Ÿ› ๏ธ Available MCP Tools

Tool

Description

Concurrency

create_batch

Create multiple terminals + execute

โœ… 100 threads

execute_batch

Execute across terminals

โœ… 100 threads

get_batch_output

Get all outputs

โœ… 100 threads

check_completion

Check status

โœ… 100 threads

broadcast_command

Send to all terminals

โœ… Async

Smart Execution Tools (v1.0.52+)

Tool

Description

Use Case

execute_workflow

DAG-based task execution

Build โ†’ Test โ†’ Deploy pipeline

wait_until_complete

Block until tasks finish

Wait for build before deploy

execute_sequence

Run commands in order

Step-by-step setup scripts

execute_with_retry

Auto-retry on failure

Network requests, downloads

Single Tools (Use batch tools instead!)

Tool

Use Instead

create_session

โ†’ create_batch

execute_command

โ†’ execute_batch

get_output

โ†’ get_batch_output

Why batch tools?

  • 10x faster (parallel execution)

  • 1 call instead of 10 calls

  • Non-blocking design


๐ŸŽฏ Use Cases

Multi-Service Development

User: "Start frontend, backend, and database"

AI calls:
create_batch(sessions=[
  {name: "frontend", cwd: "./web", initial_command: "npm run dev"},
  {name: "backend", cwd: "./api", initial_command: "python app.py"},
  {name: "db", cwd: "./", initial_command: "docker-compose up"}
])

Result: 3 services start simultaneously, web interface shows all

System Information Gathering

User: "Check system info"

AI calls:
create_batch(sessions=[
  {name: "cpu", cwd: ".", initial_command: "wmic cpu get name"},
  {name: "mem", cwd: ".", initial_command: "wmic memorychip get capacity"},
  {name: "disk", cwd: ".", initial_command: "wmic logicaldisk get size,freespace"},
  {name: "os", cwd: ".", initial_command: "systeminfo"}
])

Later:
get_batch_output(session_ids=["cpu", "mem", "disk", "os"])

Result: All info gathered in parallel, 4x faster than serial

Smart Retry for Network Operations

User: "Download and install dependencies"

AI calls:
execute_with_retry(
  session_id: "npm_install",
  command: "npm install",
  max_retries: 3,
  retry_delay: 2.0
)

Result:
- Attempt 1 fails (network error)
- Wait 2 seconds
- Attempt 2 fails  
- Wait 2 seconds
- Attempt 3 succeeds โœ“

โš™๏ธ Configuration

Optional environment variables:

{
  "mcpServers": {
    "ai-mcp-terminal": {
      "command": "uvx",
      "args": ["ai-mcp-terminal"],
      "env": {
        "AI_MCP_PREFERRED_SHELL": "bash"
      }
    }
  }
}

Shell Priority:

  • Windows: WSL bash (๐Ÿง) โ†’ Git Bash (๐Ÿš) โ†’ powershell โ†’ cmd

  • macOS: zsh โ†’ bash โ†’ sh

  • Linux: bash โ†’ zsh โ†’ sh

v1.0.52: WSL now displays with penguin icon (๐Ÿง) in web interface, Git Bash with shell icon (๐Ÿš)


๐Ÿ”ง Installation Options

```json
{

"command": "uvx", "args": ["ai-mcp-terminal"] }


**No installation needed!** UV handles everything.

### Option 2: PIPX

```bash
pipx install ai-mcp-terminal
```json
{

"command": "ai-mcp-terminal" }


### Option 3: PIP

```bash
pip install ai-mcp-terminal
{
      "command": "python",
  "args": ["-m", "src.main"]
}

๐Ÿ›ก๏ธ Anti-Loop Protection

Problem: AI gets stuck querying terminal repeatedly

Solution: Built-in query counter

  • Query 1-2: Normal

  • Query 3-4: โš ๏ธ Warning + stop instruction

  • Query โ‰ฅ5: ๐Ÿ”ช Auto-terminate process

Result: AI never loops, always proceeds with tasks


๐Ÿšฆ How AI Should Use This

โœ… Correct Pattern

Dialog 1:
User: "Deploy React app"
AI: 
  1. create_batch(...) 
  2. Reply: "Deploying in background..."
  3. END conversation

Dialog 2 (later):
User: "Is it done?"
AI:
  1. check_completion(...)
  2. Reply: "Still running..." or "Done!"
  3. END conversation

โŒ Wrong Pattern (Fixed by protection)

Dialog 1:
User: "Deploy React app"
AI:
  1. execute_command(...)
  2. get_output(...) โ†’ running
  3. get_output(...) โ†’ running  [Query 2]
  4. get_output(...) โ†’ running  [Query 3 - WARNING]
  5. get_output(...) โ†’ running  [Query 4]
  6. get_output(...) โ†’ AUTO-KILLED [Query 5]
  7. Error: "Loop detected, process terminated"

๐Ÿ“ Project Structure

ai-mcp-terminal/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ main.py              # Entry point
โ”‚   โ”œโ”€โ”€ mcp_server.py        # MCP protocol handler (30+ tools)
โ”‚   โ”œโ”€โ”€ terminal_manager.py  # Terminal management (3400+ lines)
โ”‚   โ”œโ”€โ”€ web_server.py        # FastAPI + WebSocket
โ”‚   โ”œโ”€โ”€ key_mapper.py        # Keyboard interaction support
โ”‚   โ””โ”€โ”€ static/              # Web UI (xterm.js)
โ”œโ”€โ”€ docs/                    # Documentation (15+ guides)
โ”œโ”€โ”€ examples/                # Usage examples
โ”œโ”€โ”€ CHANGELOG.md             # Detailed version history
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ LICENSE
โ””โ”€โ”€ pyproject.toml

๐Ÿ”ง Troubleshooting

Web Interface Not Opening

Solution: Visit http://localhost:8000 manually

Port Already in Use

Solution:

  1. Auto-finds next available port

  2. Or click shutdown in existing interface

AI Keeps Using Single Tools

Solution:

  1. Restart IDE (MCP caches tool definitions)

  2. Check tool descriptions loaded correctly


๐Ÿ“„ License

MIT License - see LICENSE


๐Ÿค Contributing

Contributions welcome! See CONTRIBUTING.md



๐Ÿ†• What's New in v1.0.53

๐ŸŽฏ Production-Ready Improvements

Based on real PyPI release testing, v1.0.53 brings battle-tested improvements that solve actual production issues:

๐Ÿ” Enhanced Debugging

  • Detailed Statistics: Every command returns output_bytes, output_lines, execution_time, encoding_used

  • Clear Status: Explicit success: true/false instead of ambiguous exit_code: null

  • No More Guessing: Know exactly what happened with every command

๐Ÿ›ก๏ธ Smart Error Prevention

  • Shell Type Detection: Warns when PowerShell command sent to Bash terminal (and vice versa)

  • Quick Fix Suggestions: Provides exact commands to fix common errors

  • 7 Error Categories: PyPI duplicates, encoding errors, permissions, network, syntax, etc.

๐ŸŒ Zero-Config UTF-8 (Windows)

  • Auto Setup: Sets PYTHONIOENCODING=utf-8 and PYTHONUTF8=1 automatically

  • No More Encoding Errors: twine, pip, and other Python tools just work

  • 80% Fewer Errors: Eliminates common UnicodeEncodeError issues

๐Ÿ”„ Intelligent Batch Execution

  • Smart Queueing: Same terminal โ†’ sequential, different terminals โ†’ concurrent

  • Zero Race Conditions: No more "upload before build finishes" issues

  • Maximum Efficiency: Still fully concurrent across different terminals

Previous Features (v1.0.52)

  • โœจ execute_workflow() - DAG-based task orchestration

  • โณ wait_until_complete() - Smart blocking wait

  • ๐Ÿ“ execute_sequence() - Sequential execution with error handling

  • ๐Ÿ”„ execute_with_retry() - Automatic retry mechanism

See CHANGELOG.md for complete details.


Made with โค๏ธ for AI Assistants

If this helps you, please give it a โญ star!

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Terminal MCP server for AI coding agents with persistent PTY sessions, ring-buffer incremental reads, headless xterm screen capture, multi-agent orchestration, and a real-time web dashboard.
    22
    23
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for managing multiple SSH servers via AI assistants, offering tools for remote command execution, file operations, and system monitoring.
    11
    1
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    A secure MCP server for shell operations, terminal management, and process control, enabling AI assistants to safely execute commands and manage interactive sessions.
    13
    704
    6
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A high-performance MCP server that manages persistent SSH sessions via a local tmux instance, enabling command execution, file transfer, and session monitoring for AI agents.
    9
    6
    MIT