Bridges Claude to RS232 serial ports for hardware communication. Exposes tools to list available ports, open connections with configurable baud rates, and read/write hex-encoded data. Also provides resources for querying port details and configurations. You'd reach for this when working with legacy industrial equipment, embedded systems, or any hardware that speaks serial. The hex encoding approach keeps things clean for binary protocols. Written in Python with a straightforward API that handles port lifecycle management. Useful for debugging serial devices, automating test equipment, or building interfaces to hardware that predates modern connectivity standards.
An MCP server that exposes RS232 serial port connectivity
mcp-name: io.github.daedalus/mcp-rs232
pip install mcp-rs232
from mcp_rs232 import list_ports, open_port, close_port, read_port, write_port
# List available ports
ports = list_ports()
print(ports)
# Open a port
open_port("COM1", baud_rate=9600)
# Write data (hex encoded)
write_port("COM1", "48656c6c6f") # "Hello"
# Read data (returns hex encoded)
data = read_port("COM1")
# Close the port
close_port("COM1")
mcp-rs232 --help
serial://ports - Lists all available serial ports with their detailsserial://port/{port_name} - Get details about a specific portlist_ports_tool() - Returns list of available serial portsopen_port(port, baud_rate, ...) - Opens a serial connectionclose_port(port) - Closes a serial connectionread_port(port, size, timeout) - Reads data from port (hex encoded)write_port(port, data) - Writes hex-encoded data to portget_port_config(port) - Returns current port configurationgit clone https://github.com/daedalus/mcp-rs232.git
cd mcp-rs232
pip install -e ".[test]"
# run tests
pytest
# format
ruff format src/ tests/
# lint
ruff check src/ tests/
# type check
mypy src/