Pack local or remote codebases into AI-friendly files that LLMs and coding agents can read or search
Mcu Debug is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Embedded debug MCP: serial, flash verify, fault decode, 45-pattern log analyzer, driver library
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user mcu-debug-mcp '--' uvx mcu-debug-mcp
# 2 — ask your agent for something these tools do
# serial_list, serial_open, serial_close and 56 more
Mcu Debug costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one runs on your machine: your client starts Mcu Debug as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. Its scan result is on the Security tab — read the surface before you approve it.
This is a public server: you run it yourself and this marketplace is not in the path. You need uv (docs.astral.sh/uv): uvx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user mcu-debug-mcp '--' uvx mcu-debug-mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
Nothing is required, but it can take MCU_DEBUG_MCP_MODE (Isolation mode: readonly (default) or write. Controls whether serial write/flash operations are allowed), MCU_DEBUG_MCP_PORT_DENY (Comma-separated port denylist (e.g. COM6,COM28); supports * wildcard; DENY overrides ALLOW) if you want to set them.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
59 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Read from its source code. A server that builds its tool list when it starts can list more tools than this.
列出系统可用串口。识别 CH340/CP2102/FT232 等常见 USB 转串口芯片并给驱动建议。
Takes no parameters.
打开串口,返回句柄 handle。port 形如 "COM3" 或 "/dev/ttyUSB0"。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| port | string | yes | — |
| baudrate | integer | no | — |
| data_bits | integer | no | — |
| parity | string | no | — |
| stop_bits | integer | no | — |
关闭串口句柄。调试结束记得关,释放端口。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| handle | integer | yes | — |
从串口读取数据(非阻塞,三条件提前退出)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| handle | integer | yes | — |
| seconds | number | no | — |
| expect | string | no | — |
| idle_ms | integer | no | — |
向串口发送数据并等响应。newline=True 自动追加 \\r\ (AT 指令必须!)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| handle | integer | yes | — |
| data | string | yes | — |
| hex_mode | boolean | no | — |
| newline | boolean | no | — |
| expect | string | no | — |
| wait_s | number | no | — |
自动探测波特率:逐档打开串口采样,按"最像正常日志"评分排序并给推荐。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| port | string | yes | — |
| sample_s | number | no | — |
| log_text | string | no | — |
| candidates | array | no | — |
批量执行 AT 指令序列并逐条断言(半自动回归测试)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| port | string | yes | — |
| steps | array | yes | — |
| default_baud | integer | no | — |
| total_timeout_s | integer | no | — |
同时监听两个串口,输出时间线交错的录制日志(RS485 主从对话/两设备联调)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| port_a | string | yes | — |
| port_b | string | yes | — |
| seconds | integer | no | — |
| baud_a | integer | no | — |
| baud_b | integer | no | — |
取该句柄自打开以来的全部累积日志(喂给 analyze_log 做整体分析用)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| handle | integer | yes | — |
列出已落盘的串口会话日志(serial_open 时自动创建,新→旧)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | — |
读取指定会话日志的内容(文件名来自 sessions_list)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fname | string | yes | — |
| tail_lines | integer | no | — |
会话日志的保留策略与清理入口(日志只增不减时用)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| keep_days | integer | no | — |
| keep_count | integer | no | — |
| dry_run | boolean | no | — |
| confirm | boolean | no | — |
把一次串口会话导出成 Markdown 交付报告(故障分析 + 原始日志附后)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| handle | integer | no | — |
| fname | string | no | — |
| out_path | string | no | — |
| tail_lines | integer | no | — |
| overwrite | boolean | no | — |
| confirm | boolean | no | — |
分析日志,识别 30 类常见故障模式(乱码/AT报错/反复重启/HardFault/传感器全0/全FF/
| Parameter | Type | Required | Notes |
|---|---|---|---|
| log_text | string | yes | — |
计算或校验 Modbus RTU 的 CRC16(RS485 毕设必备)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex_frame | string | yes | — |
| check | boolean | no | — |
解析 Modbus RTU 帧:正常响应拆出寄存器值/线圈状态,异常响应(功能码|0x80)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex_frame | string | yes | — |
查错误码释义表(外置知识库 knowledge/error_codes/*.json,每条带出处)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| table | string | no | — |
| code | string | no | — |
检查 MCU 引脚分配是否冲突(内置数据手册级复用映射)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| mcu | string | yes | — |
| pins | object | yes | — |
| board | string | no | — |
列出引脚知识库已收录的 MCU 型号。pin_check 前可用它确认型号是否支持。
Takes no parameters.
输出指定 MCU 的 pinmap JSON 原文(全引脚复用映射 + caveats + 常见冲突提示)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| mcu | string | yes | — |
列出板级知识库已收录的开发板。选板子前先看有没有现成板级坑清单。
Takes no parameters.
输出指定开发板的板级知识:板载外设及占用引脚、板级坑清单(按翻车率排序)、
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
列出已收录的嵌入式生态/框架(Zephyr / RT-Thread / PlatformIO / Keil / IAR / Rust defmt)。 拿到不认识的工作目录、或一段陌生的报错时,先判断「这是哪个生态的工程」——
Takes no parameters.
输出指定生态的识别特征:工程产物 / 构建配置 / 日志特征 / 常见坑。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
识别一个工程目录属于哪个生态(扫标志文件:platformio.ini / *.uvprojx /
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | no | — |
探测本机嵌入式工具链:编译器(ARM GCC / armclang / RISC-V / Xtensa)、
Takes no parameters.
探测已连接的调试器(DAPLink/ST-Link/J-Link...)和目标芯片。
Takes no parameters.
通过 pyocd 的 RTT 通道读目标板调试日志(⚠ 实验性)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| seconds | number | no | — |
| cbuffer | integer | no | — |
| probe_serial | string | no | — |
检测本机已安装的烧录工具(esptool/st-flash/pyocd/openocd)。
Takes no parameters.
烧录固件到开发板(不可逆操作,双闸门)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| file_path | string | yes | — |
| tool | string | no | — |
| chip | string | no | — |
| port | string | no | — |
| sn | string | no | — |
| dry_run | boolean | no | — |
| confirm | boolean | no | — |
列出可用的预验证驱动模板(带出厂验证记录)。
Takes no parameters.
输出指定驱动的接线表+完整代码+验证记录。name 来自 driver_list。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
查指定驱动的接线知识库:接线表、头号坑清单(按翻车率排序)、
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
器件选型清单:按接口(i2c / uart / timer_pwm / gpio_timing)列出可用的
| Parameter | Type | Required | Notes |
|---|---|---|---|
| bus | string | no | — |
单个器件的选型详情:接口 / 地址 / 移植要求 / 头号坑 / 出厂验证记录 /
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
外设 API 用法知识层:每个驱动要占哪些外设(I2C1/TIM1/UART2…)、
| Parameter | Type | Required | Notes |
|---|---|---|---|
| bus | string | no | — |
单个驱动的外设初始化要求全文(取自其 *_port.h 适配层原注释)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
把寄存器原始值按位域拆开解释。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| value | integer | yes | — |
| fields | array | yes | — |
| width | integer | no | — |
用 CMSIS-SVD 文件解码寄存器位域(含枚举值提示与描述)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| svd_path | string | yes | — |
| peripheral | string | yes | — |
| register | string | yes | — |
| value | integer | yes | — |
解码 Cortex-M 故障寄存器,给出人话诊断 + 排查方向。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cfsr | integer | no | — |
| hfsr | integer | no | — |
| bfar | integer | no | — |
| mmfar | integer | no | — |
| arch | string | no | — |
解析 .map 文件:段占用(Flash/RAM)、符号表、可疑大符号(查大数组/大缓冲)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | yes | — |
| top_n | integer | no | — |
把地址反查成「函数名+偏移」。fault 地址定位代码的关键一步。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | yes | — |
| addresses | array | yes | — |
栈回溯:把 fault 时压栈的 8 个字还原成调用链,定位出错函数。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | yes | — |
| frame | array | no | — |
| exc_return | integer | no | — |
| sp | integer | no | — |
环境自检:依赖 / 串口 / 烧录器 / 知识库根 / 版本,一次问清。
Takes no parameters.
解析 NMEA 0183 语句(GPS/北斗模块最常见的串口输出),给人话解读。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | — |
通用二进制帧解析:按「帧头 + 长度字段」切帧,可选逐帧校验。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| data_hex | string | yes | — |
| header | string | no | — |
| length_offset | integer | no | — |
| length_size | integer | no | — |
| endian | string | no | — |
| checksum | string | no | — |
| length_includes_header | boolean | no | — |
| max_frames | integer | no | — |
读目标芯片的身份与存储信息(型号 / Device ID / 修订 / Flash 容量 / UID / 读保护)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| mode | string | no | — |
| sn | string | no | — |
读复位原因(RCC_RSR 标志)与内核运行状态,走 hotplug:不复位、不停内核。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| sn | string | no | — |
| clear_flags | boolean | no | — |
| confirm | boolean | no | — |
| then_reset | boolean | no | — |
烧录后校验:把固件文件与芯片上实际内容逐字节比对(只读,走 hotplug)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| file_path | string | yes | — |
| address | string | no | — |
| sn | string | no | — |
| chunk | integer | no | — |
时序 / 数据率分析:找丢帧(序号跳号)、卡顿(间隔离群)、节拍漂移。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | no | — |
| path | string | no | — |
| pattern | string | no | — |
| seq_pattern | string | no | — |
长时录测:持续采集串口一段时间,逐行打上到达时间戳落盘。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| port | string | yes | — |
| seconds | number | no | — |
| baudrate | integer | no | — |
| max_lines | integer | no | — |
| idle_stop_s | number | no | — |
| out_path | string | no | — |
桥自检:问那块跑桥固件的板「你是谁、支持哪些总线」——不碰任何总线,纯握手。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| port | string | no | — |
| baudrate | integer | no | — |
扫描 I2C 总线上的 7 位地址,标出每个应答地址上可能是什么器件。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| bus | integer | no | — |
| port | string | no | — |
| baudrate | integer | no | — |
| low | integer | no | — |
| high | integer | no | — |
读 I2C 从设备的寄存器(最常见的「这颗 IMU 是不是活的」动作)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| addr | integer | yes | — |
| reg | integer | yes | — |
| count | integer | no | — |
| bus | integer | no | — |
| port | string | no | — |
| baudrate | integer | no | — |
写 I2C 从设备的寄存器。data 支持 "0x01" / "1,2" / [1,2]。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| addr | integer | yes | — |
| reg | integer | yes | — |
| data | string | yes | — |
| bus | integer | no | — |
| port | string | no | — |
| baudrate | integer | no | — |
| verify | boolean | no | — |
逐条 CS 读 JEDEC ID(0x9F),找出板上挂的 SPI flash,并解出厂商与容量。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| bus | integer | no | — |
| port | string | no | — |
| baudrate | integer | no | — |
发一个 SPI 命令字并读回 N 字节(对读了命令字的从设备通用)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cmd_byte | integer | yes | — |
| count | integer | no | — |
| cs | integer | no | — |
| bus | integer | no | — |
| port | string | no | — |
| baudrate | integer | no | — |
1-Wire 搜索 ROM,列出总线上每颗器件的 64 位 ROM 码,并解出家族码对应的器件。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| bus | integer | no | — |
| port | string | no | — |
| baudrate | integer | no | — |
经桥的 RS485 收发器发送字节(桥负责 DE 方向脚的时序)。
| Parameter | Type | Required | Notes |
|---|---|---|---|
| data | string | yes | — |
| bus | integer | no | — |
| de_ms | number | no | — |
| newline | boolean | no | — |
| port | string | no | — |
| baudrate | integer | no | — |
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under MIT
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Mcu Debug or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | high | capability blast radius (high) — client exposure if the model is manipulated | −6 |
| verification-discount | repo | publisher verification (public source) — no provenance, but the source is public and inspectable | −1 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
Tools were statically extracted from the published source (59 recovered), not enumerated from a running server. Tool-poisoning, Unicode-smuggling, capability and toxic-flow analysis ran on this inferred surface, but a mis-parsed registration could be missed or mis-attributed, so tool-derived findings are capped below “confirmed”. To grade the real runtime surface, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. high is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| serial_list | no tags | |
| serial_open | no tags | |
| serial_close | no tags | |
| serial_read | no tags | |
| serial_send | no tags | |
| baudrate_autodetect | no tags | |
| at_sequence | no tags | |
| serial_pair_record | no tags | |
| serial_session_log | no tags | |
| sessions_list | no tags | |
| sessions_get | no tags | |
| logs_prune | no tags | |
| report_session | no tags | |
| analyze_log | no tags | |
| modbus_crc | no tags | |
| modbus_parse | no tags | |
| error_code_lookup | no tags | |
| pin_check | no tags | |
| pinmap_list | no tags | |
| pinmap_get | no tags | |
| board_list | no tags | |
| board_get | no tags | |
| ecosystem_list | no tags | |
| ecosystem_get | no tags | |
| project_detect | no tags | |
| toolchain_status | no tags | |
| probe_list | no tags | |
| rtt_read | no tags | |
| flash_tool_detect | no tags | |
| flash_firmware | no tags | |
| driver_list | no tags | |
| driver_get | no tags | |
| driver_wiring | no tags | |
| component_list | no tags | |
| component_get | no tags | |
| peripheral_api_list | no tags | |
| peripheral_api_get | no tags | |
| decode_register | no tags | |
| decode_register_svd | no tags | |
| decode_fault | no tags | |
| parse_map | no tags | |
| symbol_lookup | no tags | |
| stack_unwind | no tags | |
| env_status | no tags | |
| nmea_parse | no tags | |
| frame_parse | no tags | |
| chip_info | no tags | |
| reset_reason | no tags | |
| flash_verify | no tags | |
| timing_analysis | no tags | |
| stream_capture | no tags | |
| bridge_probe | no tags | |
| i2c_scan | no tags | |
| i2c_read_reg | no tags | |
| i2c_write_reg | no tags | |
| spi_scan | no tags | |
| spi_read_reg | code-exec | code-exec: parameter "cmd" |
| onewire_scan | no tags | |
| rs485_send | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 0.1.1. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Mcu Debug can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.