Serial MCP Server
Let AI agents interact with serial devices — list ports, connect, send, and read.
Connector by es617 · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/es617-serial-mcp-server
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 15 read · 6 write · 1 delete · 5 not yet classified
- Secrets
- None asked for
- Install scripts
- Not scanned yet
- Runs as
- Python package
Tools by what they do 27
Read from the source code; the running server may list different tools.
Read 15 · Look things up without changing anything.
serial.connection_statusserial.connections.listserial.list_portsserial.plugin.listserial.plugin.templateserial.readserial.read_untilserial.readlineserial.spec.getserial.spec.listserial.spec.readserial.spec.search
Show 3 more tools
serial.spec.templateserial.trace.statusserial.trace.tail
Write 6 · Create, change, send or run things.
serial.closeserial.set_dtrserial.set_rtsserial.spec.attachserial.spec.registerserial.write
Delete 1 · Delete, drop, revoke or wipe things.
serial.flush
Not yet classified 5 · We could not tell from the name and description.
serial.openserial.plugin.loadserial.plugin.reloadserial.pulse_dtrserial.pulse_rts
Secrets and settings it asks for
Other settings (environment variables or headers).
SERIAL_MCP_MAX_CONNECTIONSSERIAL_MCP_MIRRORSERIAL_MCP_MIRROR_LINKSERIAL_MCP_PLUGINSSERIAL_MCP_TOOL_SEPARATOR
Files it touches
- Any path the agent passes to its tools
Tools (27)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
serial.closeClose a serial port connection and release the port.
serial.connection_statusCheck whether a serial connection is still open and return its configuration.
serial.connections.listList all open serial connections with their status, port, configuration, and timestamps. Useful for recovering connection IDs after context loss.
serial.flushFlush serial port buffers (discard pending input/output data).
serial.list_portsList available serial ports on the system.
serial.openOpen a serial port connection. Returns a connection_id for use with other serial tools. The port stays open across tool calls until serial.close is called or the server exits. Defaults are 115200 baud, 8N1, \r\n line terminator — the most common settings. If you don't know the correct settings, check for a protocol spec with serial.spec.list or ask the user. Wrong baud rate is the most common cause of garbled data. After opening: 1) Use serial.spec.list to check for a matching protocol spec. If a match is found, attach it with serial.spec.attach. 2) Use serial.plugin.list to check for a plugin…
serial.plugin.listList loaded plugins with their tool names and metadata. Each plugin may include a 'meta' dict with matching hints like device_name_contains or description — use these to determine which plugin fits the connected device. Also returns whether plugins are enabled and the current policy. Plugins require SERIAL_MCP_PLUGINS env var — set to 'all' for all or 'name1,name2' to allow specific plugins. If disabled, tell the user to set this variable when adding the MCP server.
serial.plugin.loadLoad a new plugin from a file or directory path. Requires SERIAL_MCP_PLUGINS env var to be set.
serial.plugin.reloadHot-reload a plugin by name. Re-imports the module and refreshes tools. Requires SERIAL_MCP_PLUGINS env var to be set.
serial.plugin.templateReturn a Python plugin template. Use this when creating a new plugin. Optionally pre-fill with a device name. Save the result to .serial_mcp/plugins/<name>.py, fill in the tools and handlers, then load with serial.plugin.load.
serial.pulse_dtrPulse the DTR line: sets low, waits duration_ms, then sets high. Commonly used to reset microcontrollers (e.g. Arduino, ESP32). Check the protocol spec or ask the user before pulsing — effect is device-specific.
serial.pulse_rtsPulse the RTS line: sets low, waits duration_ms, then sets high. Some devices use RTS to enter bootloader mode. Check the protocol spec or ask the user before pulsing — effect is device-specific.
serial.readRead up to nbytes from a serial port. Returns immediately with whatever data is available within the timeout. Use serial.readline or serial.read_until for line-oriented reads.
serial.read_untilRead from the serial port until a delimiter string is received or max_bytes is reached.
serial.readlineRead a line from the serial port (reads until the newline character is received or max_bytes is reached). Uses the connection's newline setting by default.
Show 12 more tools
serial.set_dtrSet the DTR (Data Terminal Ready) control line. Usage is device-specific — check the protocol spec or ask the user.
serial.set_rtsSet the RTS (Request To Send) control line. Usage is device-specific — check the protocol spec or ask the user.
serial.spec.attachAttach a registered spec to a connection session (in-memory only). The spec will be available via serial.spec.get for the duration of this connection. After attaching, check serial.plugin.list for a matching plugin, then present the user with their options: interact with the device using the spec (send commands, execute flows), use plugin shortcut tools if a plugin is loaded, extend an existing plugin with new tools, or create a new plugin using serial.plugin.template.
serial.spec.getGet the attached spec for a connection (returns null if none attached).
serial.spec.listList all registered specs with their metadata and matching hints.
serial.spec.readRead full spec content, file path, and metadata by spec_id.
serial.spec.registerRegister a spec file in the index. Validates YAML front-matter (requires kind: serial-protocol and name). The file path can be absolute or relative to CWD.
serial.spec.searchFull-text search over a spec's content. Returns matching snippets with line numbers and surrounding context.
serial.spec.templateReturn a markdown template for a new serial protocol spec. Optionally pre-fill with a device name.
serial.trace.statusReturn tracing config and event count.
serial.trace.tailReturn last N trace events (default 50).
serial.writeWrite data to a serial port. Returns the number of bytes written.
Signals
- Stars
- 25
- Forks
- 5
- Open issues
- 0
- Weekly downloads
- 91
- Last commit
- Mar 7, 2026 (7 months ago)
- Last release
- Mar 7, 2026 (7 months ago)
- Last package publish
- Mar 7, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.es617/serial-mcp-server- Version
- 0.1.3
- Auth
- No auth
- Packages
- pypi serial-mcp-server
- License
- MIT
- Repository
- github.com/es617/serial-mcp-server
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
More from es617
- 0.586score
Obsidian Sync MCP
es617
Give AI agents access to your Obsidian vault via local files or Self-hosted LiveSync.
ConnectorAFreshness: ARemote★ 66 - 0.419score
Ble MCP Server
es617
Let AI agents interact with real BLE hardware — scan, connect, read, write, and subscribe.
ConnectorDFreshness: DRemoteLocal★ 18↓ 67/wkClaude Code +5 - 0.410score
Dbgprobe MCP Server
es617
Let AI agents interact with debug probes — connect, flash, read/write memory, and reset.
ConnectorDFreshness: DLocal★ 10↓ 55/wkClaude Code +5
Cite this page
Serial MCP Server. Agent Mart. https://agentmart.dev/connectors/es617-serial-mcp-server (last updated 2026-10-25)