Skip to main content
Glama

serial_open

Idempotent

Opens a serial port and initiates continuous background capture of incoming lines into a ring buffer and daily log, providing persistent data for debugging. Call before other operations.

Instructions

Open a serial port with a background reader that continuously captures all incoming lines into a ring buffer and a daily log file. Call this first.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
portYesSerial port name, e.g. COM5 or /dev/ttyUSB0
parityNoParity (default none)
timeoutNoOperation timeout in ms (default 200)
baudrateNoBaud rate (default 115200)
bytesizeNoData bits: 5/6/7/8 (default 8)
encodingNoText decoding (default utf-8)
stopbitsNoStop bits (default 1)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds valuable behavioral context beyond annotations: it discloses that a background reader is started, that data is continuously captured into a ring buffer and a daily log file, and that this is an initialization call. This is meaningful behavioral disclosure (side effects, background process) that the annotations alone do not convey. It does not mention potential failure modes or resource cleanup, but the added context is substantial.

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?

Two sentences with zero waste. The first sentence packs the core action and its behavioral consequences; the second sentence is a crisp, front-loaded usage directive. Every word earns its place.

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?

For an initialization tool with 7 parameters fully documented in the schema, no output schema, and annotations covering safety/idempotency, the description is nearly complete. It explains the background reader, ring buffer, and log file, and tells the agent to call it first. The only minor gap is that it doesn't describe what the return value or success/failure signal looks like, but since there is no output schema and the tool is an open/init action, this is a small omission.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 7 parameters with descriptions and defaults. The description does not add parameter-level meaning beyond the schema, but it does not need to. Baseline 3 is correct when the schema carries the full parameter documentation.

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 ('Open'), a specific resource ('a serial port'), and a distinctive behavioral scope: it starts a background reader that captures incoming lines into a ring buffer and a daily log file. It also explicitly says 'Call this first,' which distinguishes it from sibling tools like serial_read or serial_status. This is a clear, non-tautological purpose statement.

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 gives explicit usage guidance: 'Call this first.' This tells the agent this is the initialization step before other serial operations. It does not explicitly name alternatives or when-not-to-use, but the sibling list (serial_close, serial_read, etc.) and the 'first' instruction make the usage context clear. A 4 is appropriate because it provides clear context but no explicit exclusions.

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