MCP server that exposes RS485 bus connectivity for reading and writing serial data
MCP server that exposes RS485 bus connectivity for reading and writing serial data.
mcp-name: io.github.daedalus/mcp-rs485
pip install mcp-rs485
{
"mcpServers": {
"mcp-rs485": {
"command": "mcp-rs485",
"env": {},
"name": "io.github.daedalus/mcp-rs485"
}
}
}
This MCP server exposes RS485 serial bus connectivity through the Model Context Protocol. It allows AI assistants to interact with RS485 devices.
list_ports: Lists all available serial ports on the systemconnect_rs485: Opens a connection to an RS485 devicedisconnect_rs485: Closes an RS485 connectionread_rs485: Reads data from an open RS485 connectionwrite_rs485: Writes data to an RS485 connectionget_connection_status: Gets the status of an RS485 connectionfrom 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)
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/
Lists all available serial ports.
Returns: List of port dictionaries with port, description, and hwid.
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 bitsbytesize: Data bits per frametimeout: Read timeout in secondsReturns: Connection ID string.
Reads data from an open RS485 connection.
Parameters:
connection_id: Connection ID from connect_rs485length: Maximum bytes to readReturns: Hex string of received data.
Writes data to an RS485 connection.
Parameters:
connection_id: Connection ID from connect_rs485data: Hex string (e.g., "01 03 00 00 00 0A")Returns: Number of bytes written.
Gets connection status and statistics.
Returns: Dictionary with connection state and statistics.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx mcp-rs485Merge 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.
{
"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 referencemcp-rs485pypiio.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.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..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.