coserial
coserial
简体中文 | 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 MonitorFeatures
🤝 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 syncOr 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-projectinit --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-serverUse 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 & waitMCP Tools
Tool | Description |
| Discover/start server process, returns port |
| Create a serial session, returns session_id |
| Close a specific session |
| Send data to serial port |
| Read buffer data |
| Wait for output matching a regex |
| Send command and wait for response |
| Dynamically adjust serial parameters |
| Get full session parameters |
| Control DTR/RTS signal lines |
| List available serial ports |
| List all active sessions |
| Open Web UI in system browser |
| Return URL for Agent's embedded browser |
| 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/JSDependencies
Python >= 3.11
pyserial — Serial communication
mcp — MCP SDK (FastMCP)
websockets — WebSocket server
aiohttp — HTTP server
pywin32 — Windows process management
Icons from IconPark
License
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/FlipFlopszzz/coserial'
If you have feedback or need assistance with the MCP directory API, please join our Discord server