Terminal MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TERMINAL_MCP_CONFIG | No | Path to the YAML configuration file controlling permissions, allowed session patterns, and capture limits. | |
| TERMINAL_MCP_BINDINGS_DB | No | Path to the SQLite database used for logical chat-to-tmux bindings. | ~/.local/state/terminal-mcp/bindings.db |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| terminal_list_sessionsA | List whitelisted tmux sessions without exposing denied session details. |
| terminal_tailC | Return sanitized recent output from an allowed tmux session. |
| terminal_captureB | Return a larger sanitized scrollback capture, capped by configuration. |
| terminal_statusC | Classify an allowed tmux session with an explicit heuristic reason. |
| terminal_send_textB | Send literal text only when terminal_input is enabled in local config. |
| terminal_send_keysB | Send only allowlisted tmux keys when terminal_input is enabled in local config. |
| terminal_bindC | Persist a logical binding to an existing, allowed tmux session. |
| terminal_get_bindingC | Return binding metadata and current effective permissions. |
| terminal_list_bindingsB | List persistent logical bindings and current session state. |
| terminal_unbindA | Delete a logical binding without changing its tmux session. |
| terminal_tail_boundC | Return sanitized output after resolving a logical binding. |
| terminal_status_boundC | Classify the tmux session resolved by a logical binding. |
| terminal_send_boundB | Send literal text only when global and binding input are enabled. |
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 13 tools
Tools are mostly distinct, with a clear split between direct session operations and logical binding operations. The only mild ambiguity is between terminal_tail and terminal_capture, but their descriptions differentiate recent output from larger scrollback.
All tools share a terminal_ prefix and use snake_case, with a consistent _bound suffix for binding-resolved variants. Minor inconsistencies exist, such as get_binding vs list_bindings and send_bound omitting the _text qualifier used by send_text, but the overall pattern is predictable.
Thirteen tools is well-scoped for a terminal/tmux MCP server. The surface is organized into two coherent families—session inspection/control and persistent bindings—without obvious redundancy or bloat.
The set covers core listing, reading, status, input, and binding lifecycle operations. There are minor gaps such as no bound capture variant and no explicit binding update, but most expected workflows for a restricted terminal interface are supported.