Coserial
FreeNot checkedEnables humans and AI agents to collaboratively control serial ports via MCP tools or Web UI, with real-time data sharing across all participants.
About
Enables humans and AI agents to collaboratively control serial ports via MCP tools or Web UI, with real-time data sharing across all participants.
README
简体中文 | English
Collaborative Serial Debug Bridge. Humans and AI Agents co-control serial ports via MCP tools or Web UI, sharing all IO data in real time. Humans, Agents, and hardware — all on the same page.
Architecture
Agent A ── MCP stdio ── coserial-client ──┐
Agent B ── MCP stdio ── coserial-client ──┤
Agent C ── MCP stdio ── coserial-client ──┤
... │ HTTP (localhost)
Human A ── Web UI ────────────────────────┤
Human B ── Web UI ────────────────────────┤
... ▼
coserial-server
├── HTTP API (/mcp/…) ← MCP tool calls
├── WebSocket /ws ← Web UI real-time data
├── GET / ← Web UI (HTML/CSS/JS)
├── SessionManager
│ ├── COM1
│ ├── COM2
│ └── ...
└── Web UI Monitor
Features
- 🤝 Human-Agent Collaboration — Humans and AI Agents share the same serial session, debugging in real time
- 🔌 MCP Tool Control — Agents read/write serial ports, wait for pattern matches, send commands, etc. via standard MCP protocol
- 🖥️ Web UI Monitor — Dark theme, real-time RX/TX data stream, HEX display, search highlighting, log export
- 🔄 Three-Party Data Sync — Agent I/O and Web UI I/O write to the same buffer — nobody misses anything
- 📡 Multi-Session Management — Connect to multiple serial ports simultaneously, switch via Web UI dropdown
- 🔧 Signal Line Control — DTR/RTS hardware reset support
- 📝 Log Persistence — Serial I/O automatically recorded to file
- 🎯 Zero-Build Frontend — Vanilla HTML/CSS/JS, no frontend toolchain required
Quick Start
Install
# Clone the repo
git clone https://github.com/FlipFlopszzz/coserial.git
cd coserial
# Install dependencies (requires uv)
uv sync
Or with pip:
pip install -e .
Register with Claude Code
After installation, register coserial as an MCP server so Claude Code can use it:
# Global (recommended) — available in all projects
uv run coserial init --global
# Project-level — creates .mcp.json + .claude/launch.json in target directory
uv run coserial init /path/to/your-project
init --global writes to ~/.claude.json via claude mcp add --scope user.
init (project-level) writes to .mcp.json + .claude/launch.json in the target directory, enabling both MCP tools and Claude Desktop Preview.
Launch
# Start server + open Web UI (manual debug mode)
uv run coserial
# Start and auto-connect to COM20
uv run coserial COM20
# List all active sessions
uv run coserial list
# Start server only (headless)
uv run coserial-server
Use in Claude Code
Once registered, call MCP tools directly in any Claude Code session:
server() → Start/discover server process
open_session(port="COM20") → Open serial port
preview(port=37210) → Get Preview URL
preview_start("coserial-web-ui") → Open Web UI in Claude Desktop
command(session_id, "AT+GMR", expect="OK", newline=True) → Send & wait
MCP Tools
| Tool | Description |
|---|---|
server() |
Discover/start server process, returns port |
open_session(port, baud) |
Create a serial session, returns session_id |
close_session(session_id) |
Close a specific session |
write(session_id, data) |
Send data to serial port |
read(session_id, timeout, size) |
Read buffer data |
wait_for(session_id, pattern, timeout) |
Wait for output matching a regex |
command(session_id, data, expect, timeout) |
Send command and wait for response |
set_params(session_id, baud, ...) |
Dynamically adjust serial parameters |
get_params(session_id) |
Get full session parameters |
set_signals(session_id, dtr, rts) |
Control DTR/RTS signal lines |
list_ports() |
List available serial ports |
list_sessions() |
List all active sessions |
web(port) |
Open Web UI in system browser |
preview(port) |
Return URL for Agent's embedded browser |
shutdown_server() |
Shut down server process |
Web UI
Open http://127.0.0.1:37210/ directly in your system browser, or via any Agent tool's embedded browser.
Project Structure
coserial/
├── pyproject.toml
├── src/coserial/
│ ├── __main__.py # Entry: uv run coserial
│ ├── client.py # MCP stdio client → HTTP proxy to server
│ ├── server.py # Server: HTTP API + WebSocket + Web UI
│ ├── session.py # SessionBuffer + SerialSession + SessionManager
│ └── web_ui/
│ └── index.html # Single-page HTML, inline CSS/JS
Dependencies
- Python >= 3.11
- pyserial — Serial communication
- mcp — MCP SDK (FastMCP)
- websockets — WebSocket server
- aiohttp — HTTP server
- pywin32 — Windows process management
- Icons from IconPark
License
Install Coserial in Claude Desktop, Claude Code & Cursor
unyly install coserialInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add coserial -- uvx --from git+https://github.com/FlipFlopszzz/coserial coserialFAQ
Is Coserial MCP free?
Yes, Coserial MCP is free — one-click install via Unyly at no cost.
Does Coserial need an API key?
No, Coserial runs without API keys or environment variables.
Is Coserial hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Coserial in Claude Desktop, Claude Code or Cursor?
Open Coserial on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
LibreOffice Tools
Enables AI agents to read, write, and edit Office documents via LibreOffice with token-efficient design. Supports multiple formats including DOCX, XLSX, PPTX, a
by passerbyflutterdannote/figma-use
Full Figma control: create shapes, text, components, set styles, auto-layout, variables, export. 80+ tools.
by dannoteLogo.dev
Search and retrieve company logos by brand or domain. Customize size, format, and theme to match your design needs. Accelerate design, prototyping, and content
by NOVA-3951PIX4Dmatic
Enables GUI automation for controlling PIX4Dmatic on Windows through MCP. Supports launching, focusing, capturing screenshots, sending hotkeys, clicking UI elem
by jangjo123Compare Coserial with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All design MCPs
