MCP server
by wehnsdaefflae
Manage remote systems and debug apps with Terminal Control—use tmux, run tmux commands, and list sessions for total cont
Provides AI agents with secure terminal access through persistent tmux sessions. Includes real-time web interface for direct user interaction alongside agent control.
Terminal Control is a community-built MCP server published by wehnsdaefflae that provides AI assistants with tools and capabilities via the Model Context Protocol. Manage remote systems and debug apps with Terminal Control—use tmux, run tmux commands, and list sessions for total cont It is categorized under developer tools.
You can install Terminal Control in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
MIT
Terminal Control is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Automate multi-step workflows combining AI and external tools
Example
Research → Summarize → Create document → Send notification
Complete complex tasks end-to-end without manual steps
Share your MCP server with the developer community
Terminal Control has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
I recommend Terminal Control for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
Terminal Control is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
I recommend Terminal Control for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
Terminal Control is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
Terminal Control has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
According to our notes, Terminal Control benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
Useful MCP listing: Terminal Control is the kind of server we cite when onboarding engineers to host + tool permissions.
Terminal Control reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
Terminal Control is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
showing 1-10 of 28
A modern MCP server that enables AI agents to control terminal sessions through persistent tmux-based sessions. Features real-time web interface for direct user access, comprehensive security controls, and support for interactive terminal programs including debuggers, SSH connections, and database clients.
rm -rf /, sudo, disk formatting, etc.)This package requires tmux for terminal multiplexing:
# Ubuntu/Debian
sudo apt update && sudo apt install -y tmux
# macOS
brew install tmux
# CentOS/RHEL/Fedora
sudo yum install tmux # or sudo dnf install tmux
Python Requirements: Python 3.9 or later
# Install directly from PyPI
pip install terminal-control-mcp
# Clone the repository
git clone https://github.com/wehnsdaefflae/terminal-control-mcp.git
cd terminal-control-mcp
# Create virtual environment (choose one)
python -m venv .venv # Using standard venv
# OR
uv venv # Using uv (faster)
# Activate virtual environment
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows
# Install the package
pip install .
# Or install in development mode
pip install -e ".[dev]"
The server supports configuration through TOML files and environment variables:
# Add the MCP server
claude mcp add terminal-control -s user terminal-control-mcp
# Verify installation
claude mcp list
The MCP server will be automatically launched by Claude Code when needed.
For other MCP clients, add to your configuration:
{
"mcpServers": {
"terminal-control": {
"command": "terminal-control-mcp",
"cwd": "/path/to/working/directory"
}
}
}
The server uses TOML configuration files with optional environment variable overrides. Environment variables can override any TOML setting for deployment flexibility.
The server looks for configuration files in this order:
./terminal-control.toml (current working directory)~/.config/terminal-control.toml (user configuration directory)/etc/terminal-control.toml (system-wide configuration)[web]
enabled = false # Enable web interface (default: false)
host = "0.0.0.0" # Bind address (default: "0.0.0.0")
port = 8080 # Port number (default: 8080)
auto_port = true # Automatic unique port selection (default: true)
external_host = "" # External hostname for URLs (optional)
Web Interface Modes:
Auto Port Selection: When auto_port=true, ports are automatically selected in the 9000-9999 range using hash(working_dir + process_id) % 1000 + 9000 to avoid conflicts between multiple instances.
[security]
level = "high" # Security level: off, low, medium, high
max_calls_per_minute = 60 # Rate limiting (calls per minute)
max_sessions = 50 # Maximum concurrent sessions
Security Levels:
off: No validation (⚠️ USE WITH EXTREME CAUTION)low: Basic input validation onlymedium: Standard protection (blocks common dangerous commands)high: Full protection (comprehensive validation and filtering)[session]
default_shell = "bash" # Default shell for new sessions
timeout = 30 # Session startup timeout (seconds)
isolate_history = true # Prevent sessions from polluting system history
history_file_prefix = "mcp_session_history" # Prefix for isolated history files
History Isolation Features:
isolate_history = false if system history is preferredSupported Applications:
HISTFILE, HISTCONTROL, HISTSIZE, HISTFILESIZEHISTFILE, ZDOTDIR, SAVEHIST, HISTSIZEXDG_CONFIG_HOME, XDG_DATA_HOMEPYTHONSTARTUP with readline configurationNODE_REPL_HISTORYPSQL_HISTORYMYSQL_HISTFILE[terminal]
width = 120 # Terminal width (columns)
height = 30 # Terminal height (rows)
close_timeout = 5.0 # Terminal close timeout (seconds)
process_check_timeout = 1.0 # Process health check timeout (seconds)
polling_interval = 0.05 # Output polling interval (seconds)
send_input_delay = 0.1 # Delay after sending input (seconds)
Terminal Emulator Support: The system automatically detects available terminal emulators in order of preference:
open -a Terminal)Custom Terminal Emulator Configuration:
[terminal]
# Custom terminal emulator preferences (ordered by preference)
emulators = [
{ name = "my-terminal", command = ["my-terminal", "--exec"] },
{ name = "gnome-terminal", command = ["gnome-terminal", "--"] },
{ name = "konsole", command = ["konsole", "-e"] },
]
[logging]
level = "INFO" # Log level: DEBUG, INFO, WARNING, ERROR
Create terminal-control.toml in your project root:
[web]
enabled = false # Use terminal windows instead of web interface
host = "0.0.0.0"
port = 8080
auto_port = true # Automatic unique port selection
[security]
level = "high"
max_calls_per_minute = 60
max_sessions = 50
[session]
default_shell = "bash"
timeout = 30
[terminal]
width = 120
height = 30
close_timeout = 5.0
process_check_timeout = 1.0
polling_interval = 0.05
send_input_delay = 0.1
[logging]
level = "INFO"
The server provides 6 MCP tools for complete terminal session lifecycle management:
list_terminal_sessionsList all active terminal sessions with status information.
Returns:
exit_terminalTerminate and cleanup a terminal session.
Parameters:
session_id: Session ID to destroyFeatures:
exit_terminal OR when users type exitget_screen_contentGet terminal content with precise control over output format.
Parameters:
session_id: Session to get content fromcontent_mode: Content retrieval mode
"screen" (default): Current visible screen only"since_input": Output since last input command"history": Full terminal history"tail": Last N lines (requires line_count)line_count: Number of lines for tail modeReturns:
send_inputSend input to terminal sessions.
Parameters:
session_id: Target sessioninput_text: Text to send (supports escape sequences)Important: Newlines are NOT automatically added.
Prerequisites
Time Estimate
15-60 minutes depending on server complexity
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
Compatibility
✓ Use when
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
✗ Avoid when
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.