hardware-logging
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| describe_capabilitiesA | Describe hwlog operations, discovery filters, limits and current MCP write policy. |
| summarize_sessionA | Compact recorded evidence: recent faults, counts, firmware and data coverage. Scan at most 16 MiB; return at most 32 KiB. Counts refer only to that window. Check scan/storage coverage before drawing conclusions; silence is not health. Select a session explicitly when more than one device is in use. |
| list_serial_portsA | Discover boards; filter before limiting output to 100 ports. match: case-insensitive substring in port, description, board hint or location. vid/pid: exact USB IDs (integers); serial_number: exact USB serial number. All supplied filters are combined. Discovery never opens a serial port. |
| capture_statusD | Capture status and session selector; use port to select one of several daemons. |
| query_logsA | Query captured device logs, newest last. Bounded: max 500 lines. boot: exact boot index, or -1 for the latest boot cycle (recommended). level: minimum severity — E (errors only), W, I, D, V. grep: case-insensitive substring filter on the message. collapse_repeats: fold repeated identical lines into one entry with a count. |
| list_bootsB | Boot cycles in the session: start time, line/error/crash counts per boot. A rebooting device shows up here as many short boots — check this first when behavior looks wedged. |
| get_crashB | Full crash artifact (raw panic lines + decoded backtrace when available). Defaults to the most recent crash. A decoded frame like
|
| send_to_deviceC | Send a line to a device. Disabled unless HWLOG_MCP_ALLOW_SEND=1. |
| wait_for_patternA | Block until PATTERN (regex) appears in NEW device output, or time out. The behavioral-verification primitive: after flashing, assert the expected log line actually appears instead of assuming success. Max timeout 120s. |
| list_capture_sessionsA | All recorded sessions (oldest first) with port, boot and crash counts. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Each tool targets a clearly distinct operation: discovery (list_serial_ports), session/capture status, log querying, boot listing, crash retrieval, sending, pattern waiting, and meta-capabilities. Overlaps like capture_status vs list_capture_sessions are resolved by descriptions that distinguish current status/selector from historical session lists.
All tools use snake_case with a consistent verb_noun or verb_phrase pattern (list_*, get_*, query_*, send_*, wait_for_*). No mixed conventions or vague names appear.
10 tools is well within the ideal 3–15 range for a focused hardware-logging MCP. Each tool has a clear purpose and earns its place without redundancy.
Core workflows—discovery, session selection, log querying, boot/crash inspection, and send/wait verification—are covered. Minor gaps exist (no explicit start/stop capture, limited time-range queries, no standalone crash list), but agents can work around them.