Skip to main content
Glama

serial_port_status

Read-only

Check serial port link health before sending commands: verify port, baud, connection state, by-id identity, pins, write-control ownership, and connected clients when output looks wrong.

Instructions

Check the link before sending, or when output looks wrong: port, baud, connected/suspended, by-id identity strength, pins, who holds write control, and connected clients. Boot progress: serial_boot_status. Crashes: serial_get_incidents.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
baudYes
portYes
roleNo
boardNo
clientsYes
log_pathNo
connectedYes
link_typeNo
suspendedYes
link_up_tsNo
pin_statesNo
identity_by_idNo
last_rx_age_msNo
last_link_eventNo
takeover_clientYes
identity_by_pathNo
identity_strengthNo
bytes_rx_since_link_upNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "baud": {
      +      "type": "integer"
      +    },
      +    "board": {
      +      "type": "string"
      +    },
      +    "bytes_rx_since_link_up": {
      +      "type": "number"
      +    },
      +    "clients": {
      +      "items": {
      +        "properties": {
      +          "name": {
      +            "type": "string"
      +          },
      +          "pid": {
      +            "type": "integer"
      +          },
      +          "role": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "role"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "connected": {
      +      "type": "boolean"
      +    },
      +    "identity_by_id": {
      +      "type": "string"
      +    },
      +    "identity_by_path": {
      +      "type": "string"
      +    },
      +    "identity_strength": {
      +      "type": "string"
      +    },
      +    "last_link_event": {
      +      "type": "string"
      +    },
      +    "last_rx_age_ms": {
      +      "type": "number"
      +    },
      +    "link_type": {
      +      "type": "string"
      +    },
      +    "link_up_ts": {
      +      "type": "number"
      +    },
      +    "log_path": {
      +      "type": "string"
      +    },
      +    "pin_states": {
      +      "type": "object"
      +    },
      +    "port": {
      +      "type": "string"
      +    },
      +    "role": {
      +      "type": "string"
      +    },
      +    "suspended": {
      +      "type": "boolean"
      +    },
      +    "takeover_client": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "port",
      +    "baud",
      +    "connected",
      +    "suspended",
      +    "takeover_client",
      +    "clients"
      +  ],
      +  "type": "object"
      +}
  2. First observedv0.4.0

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds real value beyond that by disclosing the actual inspection surface, including contested state like write-control ownership and identity strength, which tells an agent what diagnostic questions this call can answer. It does not mention latency or caching, which keeps it short of a 5.

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?

Front-loads the imperative use case, then compresses the reported fields into one scannable list, then closes with two sibling redirects. Every clause carries selection or invocation value; nothing is restated from the title or schema.

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

Completeness5/5

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

An output schema exists, so return values need no explanation, and annotations carry the safety profile. What remains for the description, namely when to call this versus the boot/incident siblings, is fully covered, so an agent has everything needed to select and invoke it correctly.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. The listed output fields could be mistaken for inputs, but the schema is empty and the description's framing ('check') makes the direction of data clear.

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?

States a specific action ('Check the link') and enumerates exactly what the tool reports: port, baud, connected/suspended, by-id identity, pins, write-control ownership, and connected clients. That enumeration makes it unmistakably distinct from siblings like serial_read and serial_monitor without opening any schema.

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

Usage Guidelines5/5

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

Gives two explicit trigger conditions ('before sending' and 'when output looks wrong') and routes two adjacent needs to named alternatives ('Boot progress: serial_boot_status', 'Crashes: serial_get_incidents'). Nothing about when-to-use or when-to-defer is left to inference.

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