Skip to main content
Glama
alexforster

terminal-emulator-mcp

by alexforster

terminal_start

Destructive

Launch a command in a new terminal session, returning its styled screen output and session ID for immediate inspection and subsequent interaction.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cwdNo
envNo
colsYes
rowsYes
loginNo
shellNo
commandYes
settleMsNo
settleTimeoutMsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.9.0

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes far beyond the annotations (readOnlyHint=false, destructiveHint=true) by detailing shell invocation specifics (shell -l -c), non-interactive shell behavior, env variable semantics (null deletes), TERM fixed to xterm-256color, and the observation timeout retaining the session. It also clarifies that 'strict observation timeout' preserves the session for inspection, adding operational nuance. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense yet concise, with every sentence adding unique value. It is front-loaded with the primary action and example, followed by defaults and behavioral nuances. There is no redundancy or fluff; the structure is logical and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 parameters, nested env, no output schema), the description is thorough. It explains the core behavior, defaults, env handling, TERM, and timeout behavior. However, it does not describe the response format in detail beyond 'styled screen and sessionId', leaving some ambiguity about the exact structure of the returned data. Also, it does not mention error handling or exit codes. These gaps are minor given the absence of an output schema, but a fuller description would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description carries the full burden. It explains shell, cwd, login, env, and TERM behavior, and the example clarifies command, cols, rows. However, it does not directly describe settleMs and settleTimeoutMs, though 'strict observation timeout' hints at them. It also omits explicit explanation of cols/rows beyond the example. Overall, it covers most parameters meaningfully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb-resource pair: 'Run command through shell -l -c in a new terminal' and explicitly mentions the return value (styled screen and sessionId). It clearly distinguishes itself from siblings like terminal_list (which lists sessions) and terminal_snapshot (which captures output) by focusing on starting a new session. The example adds concrete context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how to invoke the tool (shell defaults, cwd, login, env) but provides no guidance on when to choose this tool over its siblings. It does not mention alternatives or when not to use it. For a tool that starts a session, an agent might benefit from knowing it should be used before terminal_input or terminal_resize, but this is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.