Skip to main content
Glama

mcp-rs485

MCP server that exposes RS485 bus connectivity for reading and writing serial data.

mcp-name: io.github.daedalus/mcp-rs485

PyPI Python Ruff

Install

pip install mcp-rs485

Related MCP server: Iris

Configuration

{
  "mcpServers": {
    "mcp-rs485": {
      "command": "mcp-rs485",
      "env": {},
      "name": "io.github.daedalus/mcp-rs485"
    }
  }
}

Usage

This MCP server exposes RS485 serial bus connectivity through the Model Context Protocol. It allows AI assistants to interact with RS485 devices.

Tools

  • list_ports: Lists all available serial ports on the system

  • connect_rs485: Opens a connection to an RS485 device

  • disconnect_rs485: Closes an RS485 connection

  • read_rs485: Reads data from an open RS485 connection

  • write_rs485: Writes data to an RS485 connection

  • get_connection_status: Gets the status of an RS485 connection

Example

from mcp_rs485.server import connect_rs485, write_rs485, read_rs485

# Connect to a device
conn_id = connect_rs485("/dev/ttyUSB0", baudrate=9600)

# Write data (Modbus RTU example)
write_rs485(conn_id, "01 03 00 00 00 0A")

# Read response
response = read_rs485(conn_id)

# Cleanup
disconnect_rs485(conn_id)

Development

git clone https://github.com/daedalus/mcp-rs485.git
cd mcp-rs485
pip install -e ".[test]"

# run tests
pytest

# format
ruff format src/ tests/

# lint
ruff check src/ tests/

# type check
mypy src/

API

list_ports()

Lists all available serial ports.

Returns: List of port dictionaries with port, description, and hwid.

connect_rs485(port, baudrate=9600, parity="N", stopbits=1, bytesize=8, timeout=1.0)

Opens a connection to an RS485 device.

Parameters:

  • port: Serial port path (e.g., "/dev/ttyUSB0")

  • baudrate: Communication speed (default: 9600)

  • parity: "N" (none), "E" (even), "O" (odd)

  • stopbits: Number of stop bits

  • bytesize: Data bits per frame

  • timeout: Read timeout in seconds

Returns: Connection ID string.

read_rs485(connection_id, length=1024)

Reads data from an open RS485 connection.

Parameters:

  • connection_id: Connection ID from connect_rs485

  • length: Maximum bytes to read

Returns: Hex string of received data.

write_rs485(connection_id, data)

Writes data to an RS485 connection.

Parameters:

  • connection_id: Connection ID from connect_rs485

  • data: Hex string (e.g., "01 03 00 00 00 0A")

Returns: Number of bytes written.

get_connection_status(connection_id)

Gets connection status and statistics.

Returns: Dictionary with connection state and statistics.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A professional MCP server for serial port communication, enabling AI assistants to list, connect, send/receive data, and manage serial connections with embedded systems, IoT devices, and hardware debugging hardware.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    This MCP server enables AI agents to read MQTT and Sparkplug B data via tools like list_topics, get_latest, and read_all, providing read-only access to latest sensor values.
    1
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that enables AI agents to read serial output from devices by buffering lines in the background and allowing polling for new output, preventing blocking on long-running serial monitors.
    3
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to control serial port devices (modems, instruments, embedded boards) via MCP tools for listing ports, connecting, and sending/receiving commands.
    3
    1
    MIT