Skip to main content
Glama

send_input

Send text to a running background command session to enable interactive control of long-running processes. Pair with output retrieval to complete the conversation loop.

Instructions

Send text input to a running background command job.

Use this together with read_output() to have a full interactive conversation with a long-running process:

  1. Start a job with zebbern_exec(..., background=True)

  2. send_input(session_id, "some command\n")

  3. read_output(session_id) to collect the response

Args: session_id: The job identifier returned by zebbern_exec. input_text: The text to send to the session's stdin. Include a trailing newline (\n) if the target process expects one. session_type: Compatibility hint retained for existing clients.

Returns: dict with at minimum: - success (bool): whether the input was accepted - session_id (str): echo of the session targeted - error (str, optional): present only on failure

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
input_textYes
session_idYes
session_typeNoauto

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It documents the return contract (success/session_id/error with 'error present only on failure') and gives practical behavior guidance (include trailing newline if the process expects one). However, it does not disclose failure modes for invalid/dead sessions, whether the call is blocking, or the mutating nature of writing to a process stdin.

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?

The description is well-structured: a one-line purpose statement, a numbered usage workflow, then Args and Returns sections. The core purpose is front-loaded. While slightly longer than strictly necessary, each section earns its place — the workflow and parameter annotations add genuine value 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?

The description fully covers the tool's role in the interactive background-job workflow, documents all three parameters with meaningful semantics, and specifies the return format (with the output schema also present as backup). Gaps are minor: the session_type value domain is unspecified, and behavior when targeting a nonexistent/completed session is not described. For a 3-parameter tool, this is nearly complete.

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 does. session_id is explained as 'the job identifier returned by zebbern_exec'; input_text gets format guidance about trailing newlines; session_type is described as a 'compatibility hint retained for existing clients,' letting an agent safely ignore it. Every parameter gains meaning beyond the bare schema titles, though session_type's accepted values are not enumerated.

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 first sentence states a specific verb+resource: 'Send text input to a running background command job.' This clearly differentiates the tool from siblings like read_output (reading output), zebbern_exec (starting jobs), and job_cancel (terminating jobs). The description also orients it within the interactive conversation loop, removing any ambiguity about its role.

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

Usage Guidelines4/5

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

The description explicitly names the companion tools (zebbern_exec, read_output) and provides a numbered 3-step workflow showing exactly when send_input fits: after starting a background job and before collecting its response. It clearly states the use case ('full interactive conversation with a long-running process'). It lacks an explicit when-not-to-use statement, but the workflow context makes the usage conditions clear enough.

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

Deploy Server

Other Tools