Serial MCP Server logo

Serial MCP Server

by adancurusul

Exposes serial port control, bounded reads, control-line toggling, and JSON macro automation through MCP.

Install Serial MCP Server

Pick your client, then add it in one click or paste the config.

No confirmed install command yet

We only publish a config when the install details come from the project itself — its README, its docs, or a verified owner. We haven’t found those for adancurusul/serial-mcp-server, and we’d rather show nothing than a guess you’d paste into your client.

Open setup steps on GitHub

Overview

The adancurusul/serial-mcp-server MCP server gives AI clients tools for discovering ports, opening connections, exchanging data, and controlling RTS/DTR lines. It runs as a local MCP stdio process and also provides a command-line interface for scripts and CI workflows. JSON macro packs describe send, delay, and expect sequences that can be planned, simulated, or executed against a device. Reach for it when an agent needs direct serial access for embedded debugging, provisioning, protocol testing, or repeatable hardware procedures.

Use cases

  • Discover available serial ports for an attached device
  • Read and write UTF-8 or binary serial payloads
  • Run repeatable provisioning or boot procedures
  • Simulate macro responses before connecting hardware
  • Inspect bounded serial capture windows during debugging

Key features

  • MCP stdio server for serial port access
  • UTF-8, hex, and base64 data handling
  • Timeout and bounded capture reads
  • RTS and DTR control-line management
  • JSON macro planning, simulation, and execution
  • Scriptable CLI with JSON output

Tools12

What Serial MCP Server lets your agent do. Expand a tool for its parameters.

Self-reported~206 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

17/17 checks healthy over the last 80d

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars95Stargazers on the source repository.
Last commit3mo agoMost recent push to the default branch.
Tools exposed12Callable tools this server registers over MCP.
Directory activity5 viewsConfig copies, upvotes, and views on AllMCPs.

How Serial MCP Server works

What adancurusul/serial-mcp-server MCP server does

The adancurusul/serial-mcp-server MCP server connects agent workflows to serial ports exposed by the host operating system. Its basic operations cover port discovery, connection lifecycle, data transfer, and modem-control signals. Agents can list available ports, open a connection, send bytes, receive bytes, set RTS or DTR, and close the connection.

Data can be represented as UTF-8, hexadecimal, or base64. Reads support a normal timeout-based operation and a bounded capture mode. Capture mode can wait for the first byte, collect data for a specified duration, stop after an idle interval, and enforce a maximum byte count. The returned capture information includes timing, completion details, and chunk metadata.

How it works

The server is intended to run locally over MCP stdio. A client starts the compiled serial-mcp-server executable with the serve subcommand, after which MCP tools manage connections maintained by that process. The repository also supplies a CLI for direct commands such as listing ports, reading, writing, probing, changing control lines, and producing JSON output for scripts.

For multi-step procedures, a JSON macro pack can contain named macros and assemblies. Macros use a deliberately limited set of steps: send UTF-8, hex, or base64 data; wait for a fixed delay; and expect a response that contains or equals specified bytes. Assemblies combine named macros. Plans can be inspected before hardware access, and runs can use simulated input or an existing serial connection.

Setup and configuration

The adancurusul/serial-mcp-server MCP server requires Rust 1.74 or newer. The documented source workflow clones the repository and builds a release binary with Cargo; the resulting executable is placed under target/release. It can also be installed onto the PATH from a checkout with Cargo's path-install command.

MCP clients need the executable path and the serve argument. The README includes a Claude Desktop configuration for macOS, Linux, and Windows. Hardware use additionally depends on a connected serial device or USB-to-serial adapter, suitable operating-system drivers, and permission to access the selected port.

The CLI includes commands to generate, validate, and display a TOML configuration. JSON output is available for operational commands, with standard output reserved for command data and standard error used for diagnostics.

Tools and capabilities

The MCP tool set includes:

  • list_ports, open, close, write, and read for serial communication.
  • set_control_lines for RTS and DTR changes.
  • macro_load, macro_list, and macro_unload for managing packs in memory.
  • macro_plan for expanding a macro or assembly without opening hardware.
  • macro_run for execution against a connection or simulation input.
  • macro_run_inline for validating, planning, and running an inline pack without registering it.

Limitations and notes

The macro registry is temporary: restarting the process removes loaded packs, and the server does not persist a macro library. The macro language does not provide shell execution, JavaScript, Python, file operations, loops, variables, conditional branches, Quick commands, or RTS/DTR macro steps. Real hardware operations require the host's serial support and permissions. The project is released under the MIT license.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Serial MCP Server

Clone the repository, build it with Rust 1.74 or newer using `cargo build --release`, or install it onto PATH from the checkout with `cargo install --path . --locked`.

Yes. The README provides Claude Desktop configurations that start the compiled executable with the `serve` argument.

Yes. Macro validation, planning, and execution support explicit no-hardware simulation, including simulated read input.

Serial writes and reads support UTF-8, hexadecimal, and base64 representations.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewSerial MCP Server AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/adancurusul-serial-mcp-server?style=directory)](https://allmcps.com/mcp/adancurusul-serial-mcp-server)
HTML Embed
<a href="https://allmcps.com/mcp/adancurusul-serial-mcp-server"><img src="https://allmcps.com/api/badge/adancurusul-serial-mcp-server?style=directory" alt="Serial MCP Server on AllMCPs" /></a>