Skip to main content
Glama
alexforster

terminal-emulator-mcp

by alexforster

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.3/5.0

Scored across 6 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues