Skip to main content
Glama
hugo94z

mcp-interactive-terminal

by hugo94z

terminal_send

Send literal text, named keys, or key sequences to a live terminal session to answer prompts, run commands, or trigger shortcuts such as Ctrl-C and Enter.

Instructions

Send text and/or named keys to a session.

Args: session_id: Session returned by terminal_start. text: Literal text to type (not followed by Enter unless enter=true). keys: Named keys, e.g. ["ctrl-c"], ["up"], ["tab"], ["f5"], ["text:abc"]. Supported: enter, tab, backtab, esc, space, backspace, up, down, left, right, home, end, pageup, pagedown, insert, delete, f1..f12, ctrl-a..ctrl-z, ctrl-space, ctrl-break. enter: Append a carriage return after text/keys. repeat: Repeat the whole sequence 1..100 times.

Returns: session_id, sent_chars and running state.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keysNo
textNo
enterNo
repeatNo
session_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses that text is not followed by Enter unless enter=true, the full supported key set, and the 1..100 repeat bound, but says nothing about blocking behavior, error handling on a dead session, permissions, or rate limits for a mutation-style tool.

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

Conciseness4/5

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

Front-loaded summary followed by tight Args/Returns sections; every element earns its place. The enumerated key list is long but not present in the schema, so it is justified rather than padding.

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?

No output schema exists, and the description compensates by naming the returned fields (session_id, sent_chars, running state). Combined with the thorough parameter documentation, an agent has enough to invoke it correctly, though side-effect and failure behavior remain unstated.

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?

Schema description coverage is 0%, so the description must compensate, and it largely does: it names the origin of session_id, explains text vs keys, enumerates the valid named keys, and gives the repeat range. Only minor gaps remain, such as how text and keys interact when both are supplied.

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

Purpose4/5

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

The first line gives a precise verb+resource: send text and/or named keys to a session, and the Args section elaborates the two input channels. It does not, however, differentiate itself from siblings like terminal_exec or terminal_interrupt, which an agent must choose between for the same session.

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

Usage Guidelines3/5

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

Usage is only implied by the parameter semantics (type literal text with text, send control sequences with keys). There is no explicit statement of when to prefer this over terminal_exec, nor any prerequisite or exclusion guidance.

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