ai-mcp-terminal

ai-mcp-terminal

Multi-threaded terminal management MCP server for AI assistants, enabling async command execution, batch operations, and real-time web monitoring with up to 100 concurrent terminals.

Category
Visit Server

README

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

๐Ÿš€ 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

Batch Tools (Recommended)

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

Option 1: UVX (Recommended)

```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


๐Ÿ”— Links

  • PyPI: https://pypi.org/project/ai-mcp-terminal/
  • GitHub: https://github.com/kanniganfan/ai-mcp-terminal
  • Issues: https://github.com/kanniganfan/ai-mcp-terminal/issues
  • Changelog: CHANGELOG.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!

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured