uart-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UART_MCP_LOG_DIR | No | Optional directory to store log files. If not set, logs are written to the repository's 'logs/' directory. |
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": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| serial_openA | 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. |
| serial_closeA | Close a capture session, stop its reader thread, and release the port. |
| serial_statusA | Show every capture session: state, uptime, counters, unread lines, log file path. Omit 'port' to list all sessions. |
| serial_readB | Return lines captured since the previous serial_read (tail-follow semantics). Waits up to wait_ms for fresh data instead of returning empty. |
| serial_writeB | Write text or HEX into an open capture session's port. |
| serial_get_recentA | Return the most recent N buffered lines regardless of read cursor. |
| serial_wait_forA | Block until a line matches a custom regex ('pattern') and/or built-in event presets ('events': error/hardfault/assert/panic/boot), then return once with the hit and preceding context. Ideal for watching boot logs without polling. |
| serial_searchA | Regex-search the full captured history (daily log files) — e.g. find every HardFault in the past hour. |
| serial_get_logA | Page through one day's raw log file by line offset. |
| serial_clear_bufferA | Drop buffered lines and reset the read cursor; log files are kept. |
| list_portsA | List available serial ports on this machine. |
| serial_sendA | One-shot raw HEX transmit (opens/closes the port; use serial_write when capturing). |
| serial_queryA | One-shot write-then-read exchange; accepts hex or protocol+action from a YAML protocol file. |
| protocol_parseA | Parse a raw HEX response against a YAML protocol action definition (offline). |
| serial_shellC | One-shot command sequence over a shell-like device; collects a transcript. |
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 15 tools
Each tool has a clearly distinct role—port discovery, capture session management, read variants, write/send/query variants, and offline parsing—so agents can generally select the right tool. The main ambiguity is between serial_write and serial_send, and between serial_read and serial_get_recent, though their descriptions do clarify the intended use cases.
The vast majority of tools follow a serial_<verb> snake_case pattern, which is predictable and easy to scan. However, list_ports and protocol_parse break the serial_ prefix convention, and serial_status and serial_shell are noun-style rather than verb-style, creating minor inconsistencies.
Fifteen tools sits at the upper edge of the well-scoped range and mostly earns its place for a comprehensive UART toolkit. The one-shot variants (serial_send, serial_query, serial_shell) and protocol_parse add specialized capability but make the set feel slightly denser than a minimal capture-focused server.
The tool surface is very complete for UART debugging: it covers port enumeration, capture session lifecycle, continuous reading, writing, event waiting, history search, log paging, buffer reset, and protocol parsing. There are no obvious dead ends or missing core operations for the stated domain.