Mcp Rs485

io.github.daedalusPublished by GitHub account daedalusv0.1.0Updated Oct 24, 2026

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

VerifiedSTDIODesktop onlyCloud & InfrastructureDeveloper Tools

Overview

AI-generated overview

Lets an assistant list serial ports and open, read from, write to, and close RS485 bus connections on the local machine.

What you can do
This local MCP server exposes RS485 serial bus connectivity to an assistant. Its tools list available serial ports, open a connection with configurable baudrate, parity, stopbits, bytesize and timeout, read received data as a hex string, write hex data to the bus, query connection status and statistics, and close the connection.
When to use it
Useful when an assistant needs to talk to RS485 or Modbus RTU devices attached to the machine, for example reading sensor registers or sending command frames over a serial adapter. It is a fit for local hardware work rather than general software tasks.
Requirements
Runs as a local process on the user's machine, installed from PyPI as mcp-rs485 and started over stdio. It needs a serial port path such as /dev/ttyUSB0 and an RS485 adapter or device reachable from that machine. No accounts, API keys, or environment variables are declared.
Before you install
The write tool sends data to the connected bus, which can change the state of attached devices; confirm the target device and frame before writing. Reading and writing depend on the correct port and serial settings, and the server is desktop-only, so it cannot run in a browser environment.

Installation

In SourceWeft

  1. Open Mcp Rs485 in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

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

bash
pip install mcp-rs485

Configuration

json
{  "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

python
from mcp_rs485.server import connect_rs485, write_rs485, read_rs485
# Connect to a deviceconn_id = connect_rs485("/dev/ttyUSB0", baudrate=9600)
# Write data (Modbus RTU example)write_rs485(conn_id, "01 03 00 00 00 0A")
# Read responseresponse = read_rs485(conn_id)
# Cleanupdisconnect_rs485(conn_id)

Development

bash
git clone https://github.com/daedalus/mcp-rs485.gitcd mcp-rs485pip install -e ".[test]"
# run testspytest
# formatruff format src/ tests/
# lintruff check src/ tests/
# type checkmypy 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.

Source: README.md at commit 4e0026a

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts