Embedded Debug MCP
Enables debugging of embedded Linux devices (DUTs) via serial console, including boot-stage detection, hardware reset, firmware flashing, and interactive serial access.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Embedded Debug MCPshow target status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Debug Console MCP Server
Rust MCP server for embedded Linux DUT debugging. TCP direct to ser2net, strsim-based boot stage detection, self-learning reference log, relay/PDU power control, multi-DUT support, exponential backoff reconnect.
Hardware Setup — Dev Host
ser2net Configuration (no udev rules)
Serial access goes through ser2net on the dev host — its plain TCP-port → serial-device mapping, nothing else. No udev rules are needed.
# /etc/ser2net.yaml — port → serial device mapping (plain /dev/tty* paths)
connection: &con2000
accepter: tcp,0.0.0.0,2000
enable: on
options:
kickolduser: true # prevent zombie connections
telnet-brk-on-sync: true
connector: serialdev,
/dev/ttyACM0,
115200n81,local # RK3576 default baudRelated MCP server: silotek-serial-mcp
Configuration Reference (.target.jsonc)
JSONC (JSON with // comments). A DUT nests inside its dev host and inherits
ip/user/pass from the parent — names are display-only; the host ip is the linking key. Top-level
sections (serial/relay/monitor/...) are global fallbacks; a DUT value
overrides them. Unknown keys are rejected at parse time (typos fail loudly).
Full annotated schema: references/.target.jsonc.example.
Create/update interactively with dutabo init — it preserves your comments.
Single Board
{
"dev_hosts": [
{
"ip": "192.168.1.105",
"user": "linaro",
"duts": [
{
"dut_name": "rk3576-board1",
"serial": { "port": 2000 },
"target": {
"login_user": "root",
"login_prompt": "" // custom login regex (empty = default: `login:\s*$`)
},
"uboot": {
"interrupt_char": "ctrl_c",
"interrupt_strategy": "flood"
},
"relay": {
"type": "usb-relay",
"port": 2001,
"reset_ch": 1,
// "maskrom_ch": 2,
"reset_time_ms": 3000 // minimum USB relay reset pulse (default: 3000)
},
"monitor": {
"hang_timeout": 60,
"boot_window_secs": 30, // booting → active deadline (default 30)
"max_archived_logs": 10,
"reference_log": ".dut-serial/rk3576-board1/reference-boot.log",
// StageLearner similarity thresholds (0.0–1.0). Defaults from Cargo.toml.
"learner_stage_threshold": 0.45, // boot stage classification
"learner_crash_threshold": 0.50 // crash pattern detection
},
"flash": {
"tool": "upgrade_tool",
"upload_dir": "/tmp",
"full_image_cmd": "uf {image}",
"kernel_image_cmd": "di -k {image}",
"loader_bin": "/path/to/MiniLoaderAll.bin",
"loader_cmd": "db {loader}"
}
}
]
}
]
}Multiple Boards
Add more entries to a host's duts array (or add another host). Each DUT gets:
Independent
.dut-serial/<dut_name>/directoryIndependent
target-state,statusline-cache, logsIndependent relay configuration
{
"dev_hosts": [
{
"ip": "192.168.1.105",
"user": "linaro",
"duts": [
{
"dut_name": "rk3576-board1",
"serial": { "port": 2000 }
// ... config ...
},
{
"dut_name": "rk3576-board2",
"serial": { "port": 2008 }, // different port!
"target": { "login_user": "root" },
"monitor": { "reference_log": ".dut-serial/rk3576-board2/reference-boot.log" }
}
]
}
]
}CLI (dutabo)
dutabo is a manual CLI tool for interactive debug. Install separately:
# → installs dutabo to ~/.cargo/bin
cargo install --git https://github.com/bitshelf/debug-console-mcpCommands:
dutabo init # interactive JSONC config wizard (also creates/merges the debug-console entry in .mcp.json)
dutabo list # DUT table (name/host/user@ip/port/state) from .target.jsonc
dutabo list --json # same data as machine-readable JSON (inventory schema)
dutabo serial [--dut <dut_name>] # interactive serial console
dutabo reset [--dut <dut_name>] # hardware reset
dutabo uf <image> [--dut] # flash firmware
dutabo uboot [--dut <dut_name>] # enter U-Boot
dutabo state [--dut <dut_name>] # get DUT stateReference
rmcp docs — official rmcp 3.x docs
rmcp-macros — #[tool] macro reference
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP messaging across owners, tools, and machines, with readable transcripts.
Remote MCP for compliant pay-per-use agent capabilities with x402 execution.
Remote MCP for A2A failure replay MCP, structured receipts, audit logs, and reviewer-ready evidence.
2,000+ MCP servers read at source level. Know what one does before you connect. Free, no key.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server that lets LLMs talk to serial devices: microcontrollers, routers, modems, embedded Linux, anything with a UART.235MIT
- FlicenseAqualityBmaintenanceA headless MCP server that enables AI tools (like Claude Code) to read and analyze serial logs from embedded boards (ESP32, STM32) for firmware debugging, with read-only tools for log retrieval and a built-in web viewer.6
- FlicenseNot gradedqualityDmaintenanceFastMCP-based GDB debugging server for high-performance, stable debugging with command queuing and session management.1

sbl-probeofficial
AlicenseNot gradedqualityDmaintenanceSerial communication and protocol analysis MCP server that gives AI coding assistants direct access to serial ports for reading, writing, decoding, and capturing embedded device output.MIT
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/bitshelf/debug-console-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server