Skip to main content
Glama

request

Destructive

Transmit bytes over a serial session and wait for the response, with match criteria (length, delimiter, idle_ms) determining when it's complete; audited.

Instructions

Send bytes and await the response (audited). match decides when the response is complete: {length:N} | {delimiter:"..."} | {idle_ms:N}; default is a 50 ms idle gap.

Input Schema

NameRequiredDescriptionDefault
hexNo
textNo
matchNo
session_idYes
timeout_msNo
max_inline_bytesNoResult JSONs longer than this many bytes are written in full to .openbaud/out/ and returned as a summary carrying a full_result path — keeps huge payloads out of your context. Raise it to force large results inline.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare this is a destructive, open-world write operation, so the safety profile is covered. The description adds that calls are "audited" and precisely defines completion semantics via `match`, but says nothing about what state `send` mutates, whether it blocks session use, or what happens on timeout.

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?

Two tight sentences, front-loaded with the core action and followed by the one parameter that genuinely needed prose. No filler, though the match syntax is dense enough that it reads as terse rather than optimally structured.

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

Completeness3/5

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

For a 6-parameter mutation tool with no output schema and low schema coverage, the definition covers the trickiest parameter but omits the return shape, timeout behavior, and the hex/text distinction. The `max_inline_bytes` note about .openbaud/out/ partially compensates on result handling.

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 coverage is only 17%, so the description must carry weight. It does an excellent job decoding the undocumented `match` object with three concrete forms and a stated default, but leaves `hex` vs `text` selection, `session_id`, and `timeout_ms` unexplained despite being key to correct invocation.

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 description names a specific verb and resource ("Send bytes and await the response"), making the blocking-call nature clear. However, it does not differentiate itself from close siblings like `send` or `ask_port`, leaving the agent to guess which one is intended for a request/response exchange.

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?

There is no explicit when-to-use guidance, no exclusions, and no mention of when to prefer this over `send`, `ask_port`, or `read`. The only usage hint is the parenthetical "(audited)", which is stated without explaining its consequences.

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