Serial MCP Server
by ifindv
README.md
# Serial MCP Server
A Model Context Protocol (MCP) server for serial port communication, enabling LLMs to interact with hardware devices via serial connections.
## Features
- List available serial ports
- Open/close serial port connections
- Read and write data to serial ports
- Control serial signals (DTR, RTS, CTS, DSR, DCD)
- Support for custom baud rates, data bits, stop bits, and parity
- JSON and Markdown output formats
## Installation
```bash
# Install from PyPI (when published)
pip install serial-mcp-new
```
## Usage
### Running the Server
```bash
# Run with stdio transport (default, for local use)
serial-mcp
```
### Config in Claude Code
```
"mcpServers": {
"ssh-mcp": {
"command": "C:\\Users\\DELL\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\Scripts\\serial-mcp.exe",
"args": [],
"env": {}
}
},
```
### Available Tools
| Tool | Description |
| --------------------------- | ------------------------------- |
| `serial_list_ports` | List all available serial ports |
| `serial_open` | Open a serial port connection |
| `serial_close` | Close a serial port connection |
| `serial_write` | Write data to a serial port |
| `serial_read` | Read data from a serial port |
| `serial_set_signals` | Set control signal states |
| `serial_get_signals` | Read current signal states |
| `serial_list_connections` | List all active connections |
## Example Workflow
1. List available ports:
```
serial_list_ports()
```
2. Open a connection:
```
serial_open(port="COM3", baud_rate=115200)
```
3. Write data:
```
serial_write(connection_id="conn_1", data="Hello, device!")
```
4. Read response:
```
serial_read(connection_id="conn_1", timeout=2.0)
```
5. Close when done:
```
serial_close(connection_id="conn_1")
```
## Dependencies
- Python 3.10+
- mcp >= 1.6.1
- pyserial >= 3.5
- pydantic >= 2.0.0
## License
MIT
TDQS
A4.2/5.0
Scored across 8 tools
Disambiguation5/5
Each tool targets a distinct operation on serial ports: opening, closing, listing ports/connections, reading, writing, and getting/setting signals. There is no ambiguity between them.
Naming Consistency5/5
All tools follow a consistent 'serial_verb' pattern (e.g., serial_open, serial_read, serial_write, serial_close, etc.), making it easy to predict tool names.
Tool Count5/5
With 8 tools covering connection management, data I/O, and signal control, the count is well-scoped for a serial port server. No tool feels unnecessary or missing.
Completeness4/5
The toolset covers the core operations: open, close, list ports, list connections, read, write, get/set signals. A potential gap is flushing buffers or handling break conditions, but these are advanced and not essential.
Maintenance
ActivityInactive
ResponsivenessNo issues