Back to Directory/Developer Tools

io.github.daedalus/mcp-rs485

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

Developer ToolsPythonv0.1.0

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

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.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
uvx mcp-rs485

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-daedalus-mcp-rs485": {
      "command": "uvx",
      "args": [
        "mcp-rs485"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

mcp-rs485pypi

Compatible MCP Clients

io.github.daedalus/mcp-rs485 works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More