qarnet

Serial MCP — AI skill for Claude Code

AI community

Serial port MCP server for Claude Code, Codex, Opencode and AI agents.

How to install Serial MCP

This entry records only its repository, not the path inside it, so there is no exact command to give. Open qarnet/serial-mcp and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Serial MCP does

Serial port MCP server for Claude Code, Codex, Opencode and AI agents. Reliable UART/USB-serial access for embedded development.

Alternatives in AI

  • Codex Skill — by klaudworks - Enables users to prompt codex from claude code 914 ★
  • Embeddedskills — An open-source collection of embedded development and debugging skills for Claude Code, Copilot, TRAE, and oth 593 ★
  • Hol Guard — Open-source antivirus for AI agents: block risky tools, secret access, prompt injection, malicious packages, M 485 ★

README

serial-mcp for UART and USB serial access

[![GitHub Release](https://img.shields.io/github/v/release/qarnet/serial-mcp)](https://github.com/qarnet/serial-mcp/releases) [![crates.io](https://img.shields.io/crates/v/serial-mcp)](https://crates.io/crates/serial-mcp) [![Rust](https://img.shields.io/badge/rust-1.97.1-orange.svg)](https://rust-lang.org) [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)

`serial-mcp` is an MCP server for direct access to serial ports. It reads, writes, and streams UART or USB-serial data to microcontrollers, Arduino boards, STM32 chips, and other embedded targets. Reads use timeouts and pattern matching instead of blocking on a serial monitor.

The server provides always-on RX capture. It decodes TX and RX frames using line, delimiter, length-prefixed, start/end, SLIP, and COBS formats. It provides AT, JSON, shell, NMEA-0183, and Modbus ASCII parsers.

Protocol presets provide checksum validation. The server also supports auto-reconnect, event logging, DTR/RTS, BREAK, and flow control. MCP clients can use these features with serial bootloaders, resets, and embedded boards.

Quick start

  1. Install the server. See Install for Cargo, Nix, and prebuilt binary options.
  2. Connect an agent. Follow the agent configuration guide, or use the example below.
  3. Discover devices. Call list_ports() and inspect profile_matches. The result shows what a bare open would reuse.
  4. Open a port. Call open(port=...) with only the port. Baud defaults to 115200/8-N-1. The server reuses the most recently used high-confidence profile for a known device. It creates a durable generated profile for a new device.
  5. Talk to the device. Use transact() for command and response exchanges. Use read() for buffered or unsolicited data. Use write() for send-only operations.

Capabilities

Area What it provides
RX model An always-on ring buffer captur