es617 avatar

Serial Mcp Server

es617/serial-mcp-server

This gives AI agents direct access to serial ports through pyserial, exposing the full stack from raw read/write operations up to device-specific plugins. You can list ports, open connections with configurable baud rates and control lines, read line-by-line or until delimiters, toggle DTR and RTS for hardware resets, and attach protocol specs so the agent understands your device's command set. Built for embedded engineers debugging firmware over UART, automating test sequences on microcontrollers, or letting Claude Code interact with hardware without manually typing commands into screen or minicom. Includes PTY mirroring so you can attach traditional serial tools alongside the agent, and plugin support for repeatable device operations beyond raw bytes.

GitHub stars
10
tools
27
transport
STDIO
env vars
5
last updated
Mar 7, 2026

Tools

27 tools

Public tool metadata for what this MCP can expose to an agent.

serial.list_portsList available serial ports.

List available serial ports.

No parameter schema in public metadata yet.

serial.open

No parameter schema in public metadata yet.

serial.close

No parameter schema in public metadata yet.

serial.connection_status

No parameter schema in public metadata yet.

serial.read

No parameter schema in public metadata yet.

serial.write

No parameter schema in public metadata yet.

serial.readline

No parameter schema in public metadata yet.

serial.read_until

No parameter schema in public metadata yet.

serial.flush

No parameter schema in public metadata yet.

serial.set_dtr

No parameter schema in public metadata yet.

serial.set_rts

No parameter schema in public metadata yet.

serial.pulse_dtr

No parameter schema in public metadata yet.

serial.pulse_rts

No parameter schema in public metadata yet.

serial.connections.list

No parameter schema in public metadata yet.

serial.spec.template

No parameter schema in public metadata yet.

serial.spec.register

No parameter schema in public metadata yet.

serial.spec.list

No parameter schema in public metadata yet.

serial.spec.attach

No parameter schema in public metadata yet.

serial.spec.get

No parameter schema in public metadata yet.

serial.spec.read

No parameter schema in public metadata yet.

serial.spec.search

No parameter schema in public metadata yet.

serial.trace.status

No parameter schema in public metadata yet.

serial.trace.tail

No parameter schema in public metadata yet.

serial.plugin.template

No parameter schema in public metadata yet.

serial.plugin.list

No parameter schema in public metadata yet.

serial.plugin.reload

No parameter schema in public metadata yet.

serial.plugin.load

No parameter schema in public metadata yet.

Sponsors

Configuration

SERIAL_MCP_MAX_CONNECTIONS

Maximum simultaneous open serial connections (default 10)

SERIAL_MCP_PLUGINS

Plugin policy: 'all' or comma-separated plugin names. Unset = disabled.

SERIAL_MCP_MIRROR

PTY mirror mode: 'off' (default), 'ro' (read-only), or 'rw' (read-write). macOS/Linux only.

SERIAL_MCP_MIRROR_LINK

Base path for PTY symlinks (default /tmp/serial-mcp when mirror is enabled). Connections get numbered: /tmp/serial-mcp0, /tmp/serial-mcp1, etc.

SERIAL_MCP_TOOL_SEPARATOR

Tool name separator character (default '.'). Set to '_' for clients that reject dots (e.g. Cursor).

Readme

Serial MCP Server

MCP License: MIT Python Serial

A stateful serial port Model Context Protocol (MCP) server for developer tooling and AI agents. Works out of the box with Claude Code, VS Code with Copilot, and any MCP-compatible runtime. Communicates over stdio and uses pyserial for cross-platform serial on macOS, Windows, and Linux.

Example: Let Claude Code list available serial ports, connect to your microcontroller, reset it via DTR, and read the boot banner from your hardware.

Demo

Video walkthrough — connecting to a serial device, sending commands, reading responses, and creating plugins.


Why this exists

If you’ve ever copy-pasted commands into screen or minicom, guessed baud rates, toggled DTR to kick a bootloader, and re-run the same test sequence 20 times — this is for you.


View the full README on GitHub

Details

Repository
github.com/es617/serial-mcp-server
Package
serial-mcp-server
Transport
STDIO
Registry
MCP registry, active

More from es617