Skip to main content
Glama

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": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
spawnC

Spawn a new persistent interactive process (bash, ssh, python, gdb, docker, etc.) in a PTY.

Args: command: Command to execute (defaults to platform shell: bash or powershell.exe). name: Optional friendly name for this session (e.g. 'router-ssh'). cwd: Optional working directory. env: Optional environment variables dictionary. rows: Terminal rows (default: 40). cols: Terminal columns (default: 120).

serialB

Connect to a hardware or virtual serial device (UART / router console / microcontroller).

Args: port: Serial device path (e.g. '/dev/ttyUSB0', 'COM3'). baudrate: Baud rate (e.g. 115200, 9600, 57600). name: Optional friendly name for this session.

list_portsA

Enumerate attached physical and virtual serial ports on the host.

exec_expectA

Execute a shell, REPL, or bootloader command and automatically wait for prompt to return. Output preserves original terminal stream (including command echo) as a causal anchor for AI analysis. ANSI escape codes are stripped for readability.

Returns a structured result with 'success', 'output', 'timeout', 'process_exited', 'exit_code', and 'elapsed_seconds' fields.

IMPORTANT: For long-running commands (e.g. apt-get install, make, large file transfers), use send instead to dispatch the command, then poll with read_buffer periodically to check progress. Do NOT use exec_expect for commands that may take more than a few seconds, as it will report a timeout.

Args: command: The command line to execute. prompts: Optional list of prompt patterns (defaults to standard shell and REPL prompts). timeout: Maximum seconds to wait for the prompt to return. session_id: Target session ID (defaults to currently active session).

expectA

Atomically send an optional command and match incoming stream against prompt patterns. Ideal for multi-step authentication (SSH login/password), prompts, and U-Boot interception.

Args: patterns: List of regex/substring patterns to expect (e.g. ['password:', '# ']). command: Optional command/response to send before waiting. timeout: Maximum seconds to wait. Defaults to 10.0s. poll_cmd: Characters to repeatedly send during wait (e.g. ' ' for autoboot intercept). poll_interval: Interval between repeating poll_cmd. Defaults to 0.05s. session_id: Target session ID (defaults to currently active session).

sendB

Send raw characters or escape sequences (e.g. '\x03' for Ctrl+C, '\x1b' for Escape, spaces).

Args: text: Raw text or escape sequence string. send_enter: If True, appends a newline. session_id: Target session ID (defaults to currently active session).

read_bufferA

Read newly accumulated text from the stream buffer without blocking.

Args: clear: If True, flushes the read buffer after fetching. session_id: Target session ID (defaults to currently active session).

get_historyA

Retrieve recent chronological line history captured by the background daemon.

By default, each line is prefixed with an accurate wall-clock timestamp [YYYY-MM-DD HH:MM:SS.mmm] captured at the transport reception level. If a line was split across packets with a pause of >= 50ms (e.g. driver pause, delayed response), the continuation line is prefixed with '↳ ' and tagged with its own timestamp for precise correlation against test framework logs.

Args: limit: Number of recent lines to retrieve (default: 50). with_timestamps: If True (default), attaches wall-clock timestamps and continuation symbols on the fly. If False, returns raw clean text lines without timestamps. session_id: Target session ID (defaults to currently active session).

list_sessionsA

List all active PTY and Serial sessions with runtime health status.

switch_sessionC

Switch the default active session.

Args: session_id: Target session ID to make active.

close_sessionB

Close and terminate an interactive session.

Args: session_id: Target session ID to close (defaults to active session).

statusB

Check connection health, buffer statistics, and background daemon status.

Args: session_id: Target session ID (defaults to active session).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 12 tools

Disambiguation3/5

Several tools have overlapping purposes: exec_expect and expect both execute/match terminal output, while get_history and read_buffer both retrieve output. Descriptions provide guidance, but an agent could still misselect between them.

Naming Consistency4/5

Most tools follow a snake_case verb_noun pattern (get_history, list_sessions, switch_session, close_session, read_buffer, list_ports). A few single-word names (serial, spawn, send, status) deviate slightly but remain readable and predictable.

Tool Count5/5

12 tools is well within the ideal range for a terminal/serial session management server. Each tool covers a distinct operational area such as session creation, I/O, discovery, and health monitoring.

Completeness4/5

The surface covers core lifecycle operations: connect/spawn, list, switch, close, send, read, expect/exec, history, ports, and status. Minor gaps exist (e.g., explicit terminal resize or file transfer), but agents can work around them with existing tools.

Maintenance

ActivityMaintained
ResponsivenessNo issues