terminal-emulator-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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_startA | Run command through shell -l -c in a new terminal and return its styled screen and sessionId. Example: {command:"claude",cols:120,rows:40}. shell defaults to SHELL or /bin/sh; cwd defaults to the server directory. login defaults to true; false skips -l. The shell is not made interactive. Use a shell supporting -l -c, such as bash, zsh, dash, or fish. env overrides inherited variables; null deletes a variable. TERM is fixed to xterm-256color. A strict observation timeout retains the allocated session for inspection. |
| terminal_snapshotA | Observe the current terminal screen, styles, cursor, and process status without sending input. Optionally request up to 2,000 normal-buffer scrollback lines. settleMs:0 captures without a quiet wait. An exited process keeps its final screen until the session is closed. |
| terminal_inputA | Send an ordered batch of actions and return its styled screen, actionsCompleted, and inputSent. text sends exact Unicode; paste normalizes newlines and honors bracketed-paste mode. key sends named keys or printable ASCII with supported modifiers. mouse clicks/wheels require application reporting and cell coordinates; disabled reporting, pixel mode, and unsupported X10 actions fail. focus is a no-op unless reporting is enabled. raw sends bytes. wait delays with durationMs or observes with timing options. Example actions: [{type:"key",key:"F2"},{type:"wait"},{type:"key",key:"Down"}]. Modes are checked per action; response waits are explicit. A settling error does not undo input; inspect inputSent, actionsCompleted, and zero-based failedActionIndex before retrying. |
| terminal_resizeA | Resize the child terminal and emulated screen, then observe the result. The child receives its terminal-size notification. A strict timeout retains the applied dimensions in latestSnapshot; it does not undo the resize. |
| terminal_listA | List retained terminal sessions with IDs, commands, working directories, dimensions, and process status. Exited sessions count toward the eight-session limit until closed. |
| terminal_closeA | Close a terminal, cancel pending work, terminate its process group, and release its screen. Returns {sessionId,closed}; an unknown or already-closed ID returns closed:false. |
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 6 tools
Each tool targets a distinct operation on terminal sessions: listing, starting, observing, sending input, resizing, and closing. There is no overlap or ambiguity between them, and the descriptions clearly differentiate read-only vs. write operations.
All tools follow a consistent verb_noun pattern with a common 'terminal_' prefix (e.g., terminal_start, terminal_snapshot, terminal_close). The naming is uniform and predictable, making it easy for agents to infer tool purpose from the name.
With 6 tools, the server is well-scoped for a terminal emulator. Each tool covers a core aspect of terminal lifecycle management without unnecessary bloat or redundancy, fitting the typical sweet spot for tool count.
The tool surface covers the full lifecycle: create (terminal_start), observe (terminal_snapshot), interact (terminal_input), resize (terminal_resize), destroy (terminal_close), and manage sessions (terminal_list). There are no obvious gaps for the stated purpose.