No project description provided
Project description
Interminal
Lightweight MCP server that gives AI assistants terminal access — SSH and local shells — with support for interactive and long-running commands.
Installation
# Run directly, no install needed (recommended)
uvx mcp-interminal
# Or install permanently
pip install mcp-interminal
Requires Python ≥ 3.11.
MCP Client Configuration
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"interminal": {
"command": "uvx",
"args": ["mcp-interminal"]
}
}
}
Cursor / other clients: same command + args format above.
Tools
| Tool | Description |
|---|---|
connect_ssh |
Connect to an SSH server; returns session_id and welcome banner |
execute |
Run a command locally (no session needed) or over SSH; returns output or status=partial + command_id |
read_output |
Poll a running command for new output without sending input |
respond |
Send text input to a command waiting at a prompt |
send_control |
Send control keys: ctrl+c, ctrl+z, arrow keys, F-keys, etc. |
disconnect |
Close an SSH session and release all resources |
Recommended: Install Zellij
Each execute call runs in an isolated channel — there is no persistent shell between calls. For simple tasks, chaining with && works. For multi-step workflows (project development, debugging, deployment), a terminal multiplexer provides persistent state that survives across calls.
Zellij is strongly recommended on the host machine (local or remote):
# Linux / macOS / WSL
cargo install zellij # or: brew install zellij
# Check if installed
zellij --version
With Zellij installed, the AI agent will automatically create a persistent session where cd, environment variables, virtual environments, and long-running processes carry over naturally. As a bonus, you can run zellij attach <session-name> to watch the AI's terminal work in real-time.
Key Behaviors
- Stateless execute — each call is an isolated channel;
cd /foodoes not persist. Simple tasks: chain with&&. Multi-step workflows: the AI will use a Zellij session for persistent state - Long-running commands return
status="partial"with acommand_id; poll withread_outputor send input withrespond - TUI apps (zellij, vim, htop) must be started in the foreground — never background with
&; after the server daemonizes, the partial channel can be abandoned - SSH PTY is 500×200 xterm-256color so multiplexer sessions render at your actual terminal size
Optional Dependencies
pip install "mcp-interminal[pty]" # Windows PTY support (pywinpty)
pip install "mcp-interminal[ansi]" # ANSI escape rendering (pyte)
pip install "mcp-interminal[pty,ansi]" # both
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_interminal-1.0.19-py3-none-any.whl.
File metadata
- Download URL: mcp_interminal-1.0.19-py3-none-any.whl
- Upload date:
- Size: 17.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34cb61cdcfc0c5add2cb338ee01f19f857de8ec53a286fc237c939fc27fb1084
|
|
| MD5 |
59e06d749083907ed4ec850badeea4ea
|
|
| BLAKE2b-256 |
e2dc8547cfff425185c62de461fcc61dfbfdc655bfca43acfc5a780625d9aeb7
|