Terminal MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TERMINAL_MCP_SESSION | No | tmux session name | mcp-terminals |
| TERMINAL_MCP_MAX_LINES | No | Default line capture limit | 200 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| terminal_listA | List all active terminal sessions with their names, PIDs, working directories, and current commands. |
| terminal_spawnA | Spawn a new named terminal session. Optionally start it in a specific directory and/or run a command immediately. Use 'mode' to control how Claude sessions run:
|
| terminal_sendB | Send input (keystrokes) to a named terminal session. Use this to type commands, answer prompts, or send signals. |
| terminal_readA | Read the current visible output from a terminal session. Returns the last N lines of output with ANSI codes stripped. |
| terminal_closeA | Close a terminal session by name. Sends SIGTERM to the process running in the pane. |
| terminal_send_signalA | Send a signal to a terminal session (Ctrl+C to interrupt, Ctrl+Z to suspend, Ctrl+D to EOF, etc). |
| terminal_resizeA | Resize a terminal pane (useful before reading output from width-sensitive programs). |
| terminal_snapshotA | Take a snapshot of all terminals — names, commands, last few lines of output. Useful for getting an overview of what's happening across all sessions. |
| terminal_waitA | Wait for a terminal to show specific output. Polls every second up to the timeout. Also watches for permission prompts ("Do you want to proceed") and returns immediately with a "permission_needed" status so the conductor can approve without wasting the timeout. Returns JSON-like status: "found" (pattern matched), "permission_needed" (prompt detected), or "timeout" (neither matched in time). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool targets a distinct terminal operation: lifecycle (spawn/list/close), I/O (read/send/signal), and inspection (snapshot/resize/wait). Snapshot differs from list and read by combining an overview of all sessions with recent output. There is no real ambiguity between tools.
All tool names follow a consistent terminal_verb pattern: spawn, list, read, send, send_signal, resize, snapshot, wait, close. Even the compound send_signal is clearly a verb_noun construction consistent with the rest. The naming is uniform and predictable.
Nine tools is well-scoped for a terminal management server. Each tool covers a meaningful part of the terminal lifecycle without unnecessary redundancy. The count feels complete and not bloated.
The surface covers the full terminal workflow: spawn, interact, read, signal, resize, wait for output, snapshot, and close. There are no obvious missing operations that would prevent an agent from driving a terminal session effectively. The inclusion of permission-prompt handling in terminal_wait rounds out practical needs.