MCP.Market

McuBuddy MCP server

by cunjun·io.github.cunjun/mcubuddy·v0.5.1·6 stars

AI-native MCU debugging and observability through probes, symbols, RTOS, logs, and build tools.

A88/100grade A
What users say
No reviews yet
Be the first
Safety scan
A88/100

full report

Adoption
New

6 stars

Reviews

Write one

Nobody has reviewed McuBuddy yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

McuBuddy tools (100, 16 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • backtrace

    Heuristic call stack reconstruction for Cortex-M targets.

  • board_smoke_testwrite action

    Run a generic read-only hardware sanity check for the configured board.

  • build_project
  • clear_all_breakpoints
  • clear_breakpoint
  • compare_elf_to_flash

    Compare all loadable ELF sections against actual target memory.

  • configure_build

    Set Keil UV4 build/flash parameters. Only needed if using build_project or flash_firmware.

  • configure_elf

    Set the ELF/AXF file path for symbol resolution.

  • configure_keil_project

    Auto-configure Keil build and ELF paths from a project path or discovery root.

  • configure_log

    Set UART log channel parameters (e.g. uart_port='COM5', uart_baudrate=115200).

  • configure_probe

    Set probe connection parameters. Run list_connected_probes first to find unique_id.

  • connect_with_config
  • continue_target

    Resume target execution.

  • diagnose

    Route a user-level symptom to the most relevant diagnosis tool.

  • diagnose_clock_issue
  • diagnose_hardfault
  • diagnose_interrupt_issue
  • diagnose_memory_corruption

    Scan stack and heap regions for corruption evidence.

  • diagnose_peripheral_stuck

    Diagnose why a peripheral is not working.

  • diagnose_stack_overflow

    Diagnose potential stack overflow on a Cortex-M target.

  • diagnose_startup_failure
  • disassemble

    Disassemble Thumb/Thumb-2 instructions at the given address.

  • disconnect_all
  • discover_keil_projects

    Find Keil project files, targets, and likely AXF/ELF outputs under a directory.

  • doctorwrite action

    Run a read-only environment, dependency, probe, target, and config preflight.

  • dump_memory

    Read and display memory in formatted form.

  • dwarf_backtrace

    Accurate call stack using DWARF .debug_frame CFI rules.

  • elf_addr_to_source

    Look up the source file and line number for a given address using DWARF .debug_line.

  • elf_list_functions

    List all function symbols from the loaded ELF with address and size.

  • elf_load
  • elf_symbol_info

    Return address, size, type, and source location for a single symbol.

  • erase_flash

    Erase target flash memory.

  • first_contactwrite action

    Run the safest first board contact flow and suggest next debug tools.

  • flash_firmware
  • get_gdb_server_status

    Return whether the pyOCD GDB server is running and which ports it uses.

  • get_jlink_gdb_server_status

    Return whether the J-Link GDB server is running and which port it uses.

  • get_locals

    Read local variables and parameters at the current PC using DWARF .debug_info.

  • get_runtime_config
  • get_target_info

    Return alias-match and device-patch info for a target on a given backend.

  • list_conditional_breakpoints

    List all registered conditional breakpoints in the current session.

  • list_connected_probes

    List all probes currently connected to this machine. Start here if unsure what probe to use.

  • list_demo_profiles
  • list_rtos_tasks

    List all FreeRTOS tasks with state, priority, and stack usage.

  • list_supported_targets

    List built-in target profiles and validation metadata for a backend.

  • list_tool_safety

    List safety levels for public McuBuddy tools.

  • list_validation_records

    List machine-readable real-hardware validation records.

  • load_demo_profile
  • log_connect
  • log_disconnect
  • log_tail
  • log_trace

    Step through code and record each unique source line visited.

  • match_chip_name

    Resolve a chip alias to a backend-specific target name.

  • memory_diff

    Re-read a snapshotted memory region and return a byte-level diff.

  • memory_find

    Search a memory region for a byte pattern.

  • memory_snapshot

    Capture a memory region snapshot for later comparison.

  • probe_clear_all_watchpointswrite action

    Remove all hardware watchpoints.

  • probe_connect
  • probe_continue_until
  • probe_disconnect
  • probe_halt
  • probe_read_fpu_registers
  • probe_read_memory

    Read bytes from target memory at the given address.

  • probe_read_mpu_regions
  • probe_read_registers
  • probe_remove_watchpointwrite action

    Remove a hardware watchpoint at the given address.

  • probe_reset
  • probe_resume
  • probe_set_watchpoint

    Set a hardware data watchpoint on a memory address.

  • probe_stepwrite action

    Execute one instruction and return the new PC (with symbol if ELF is loaded).

  • probe_write_memorywrite action

    Write bytes to target memory. data is a list of integers (0-255).

  • program_flash

    Program target flash memory from raw byte data.

  • read_cycle_counter

    Read the DWT cycle counter when supported by the active probe backend.

  • read_memory_map

    Return the Cortex-M address space layout and ELF section map.

  • read_rtt_log

    Read Segger RTT log output directly from target RAM via probe (no UART needed).

  • read_stack_usage

    Scan FreeRTOS task stacks for the canary high-water mark.

  • read_stopped_context
  • read_swo_log

    Read bytes from the J-Link SWO host buffer when supported by the active probe backend.

  • read_symbol_value

    Read the value of a symbol (variable, linker symbol) by name from target memory.

  • reset_and_trace

    Reset the target and immediately trace execution from the reset vector.

  • rtos_switch_context

    Switch CPU context to a blocked or suspended FreeRTOS task.

  • rtos_task_context

    Read the saved register context of a blocked or suspended FreeRTOS task.

  • run_debug_loopwrite action
  • run_to_functionwrite action

    Set a breakpoint on a function by name, resume, and wait for it to be hit.

  • run_to_sourcewrite action

    Run target until execution reaches a specific source file and line number.

  • set_breakpoint

    Set a breakpoint, optionally with a condition.

  • set_breakpoints_for_function_range

    Set breakpoints on all ELF functions whose address falls between two symbols.

  • set_localwrite action

    Write an integer value to a local variable by name at the current PC.

  • source_stepwrite action

    Execute instructions until the source line changes (source-level single step).

  • start_gdb_server

    Start a pyOCD GDB server for the configured target.

  • start_jlink_gdb_server

    Start a J-Link GDB server for the configured target.

  • step_n_instructionswrite action

    Execute count assembly instructions, recording PC and symbol at each step.

  • step_outwrite action

    Run until the current function returns (step out).

  • step_overwrite action

    Execute one source line, stepping OVER function calls (bl/blx).

  • stop_gdb_server

    Stop the active pyOCD GDB server process if one is running.

  • stop_jlink_gdb_server

    Stop the active J-Link GDB server process if one is running.

  • svd_list_peripherals

    List all peripherals in the loaded SVD (UART, SPI, I2C, GPIO, TIM, etc.).

  • svd_load

    Load a CMSIS-SVD file to enable peripheral register interpretation.

  • verify_flash

    Verify target flash contents against expected raw byte data.

  • watch_symbol

    Poll a symbol's value until it changes or timeout expires.

  • write_symbol_valuewrite action

    Write an integer value to a symbol (variable) by name in target memory.

Public scan report

scanner v0.1.9 · 2026-09-25 · same rubric, same numbers if you re-run it

no findings
  • Code scan96 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 39 days ago12/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 88/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How McuBuddy compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
88/100
higher than 75% of 48,255 servers
Tools
100
the typical server has 7
Tools that change things
16%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
6
more than 85% of 28,688 servers

What its tools let an agent do: 78 read · 1 create · 14 change · 7 run or deploy

Install McuBuddy in Claude Code, Cursor or VS Code

claude mcp add mcubuddy -- uvx McuBuddy
Add to Cursor

What the publisher says

From the McuBuddy repository's README, as published. We do not edit it. Read it on GitHub

McuBuddy — AI-Powered MCU and Embedded Firmware Debugging MCP Server

<!-- mcp-name: io.github.cunjun/mcubuddy -->

Languages: English | 中文

Extend AI from firmware analysis to real MCUs, closing the loop across diagnosis, code changes, build, flashing, and validation in verified environments.

McuBuddy is a Model Context Protocol (MCP) server for MCU board-level debugging. It exposes debug probes, Keil MDK projects, ELF/DWARF symbols, CPU and memory state, SVD peripheral registers, UART/RTT logs, FreeRTOS state, Flash operations, and GDB servers as structured tools that AI assistants can call.

It is designed for firmware development, board bring-up, fault isolation, debugging automation, and AI-assisted validation.

McuBuddy starts with 19 stable tools in the default toolset. Add only the domains a workflow needs with MCUBUDDYTOOLSETS=probe,diagnose (available domains: probe, diagnose, buildflash, rtos, logs, and experimental). The core profile is the only profile; startup toolset selection is explicit and immutable.

[!IMPORTANT]

Automation does not replace engineering responsibility. Humans remain responsible for goals and

acceptance criteria, wiring and power safety, high-risk operation approval, code review, and new

environment validation. Motors, relays, and other safety-related devices also require recovery

plans and independent protection.

Quick links: Quick Start · Project Guide · Tool Reference · Support Matrix

✨ Key Features

probes; control target execution; and inspect registers, memory, breakpoints, and watchpoints.

  • Real-hardware debugging: Discover and connect to ST-Link, J-Link, CMSIS-DAP, and other

MDK through UV4.exe for builds or downloads, and feed the generated AXF/ELF into debugging.

  • Keil project workflow: Discover .uvprojx / .uvproj files, select a target, invoke Keil

lines, local variables, and call stacks when investigating HardFaults, startup failures, stack overflows, and memory corruption.

  • Source-level fault diagnosis: Use ELF/DWARF data to resolve addresses to functions, source

FreeRTOS tasks, task contexts, and stack usage.

  • Peripheral and RTOS inspection: Decode peripheral registers through CMSIS-SVD and inspect

pyOCD/J-Link GDB server lifecycles.

  • Logs and runtime observability: Read UART, RTT, and selected J-Link SWO logs, and manage

continue an investigation instead of guessing code changes from symptoms alone.

  • Evidence-driven results: Return structured target, state, and validation evidence so AI can

configuration problems, tool failures, and insufficient evidence, including impact and the next safe check so unsupported paths are not debugged as firmware defects.

  • Actionable hardware boundaries: Distinguish MCU limitations, firmware-inapplicable tools,

🏗️ How It Works

flowchart LR
    AI["AI Client<br/>Codex / Claude Code"] --> MCP["McuBuddy<br/>MCP Server"]
    MCP --> EB["Execution Boundary<br/>Serialized Session"]
    EB --> TOOLS["Debugging Tools<br/>Diagnostics / Symbols / SVD / RTOS / Logs"]
    TOOLS --> KEIL["Keil MDK / UV4.exe<br/>Build / Optional Download"]
    TOOLS --> PROBE["Probe Backends<br/>pyOCD / J-Link / probe-rs"]
    KEIL --> IMAGE["AXF / ELF / HEX / BIN"]
    IMAGE --> TOOLS
    PROBE --> BOARD["Real MCU Board"]

MCP is not a protocol for invoking Keil. The AI calls McuBuddy through MCP; McuBuddy then uses Keil MDK through UV4.exe, pyOCD, J-Link, or another internal backend as required.

🚀 Quick Start

1. Prerequisites

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

McuBuddy: common questions

Is McuBuddy MCP server safe?
Yes, by our scan: it is graded A (88/100). Read the McuBuddy safety report
How do I install McuBuddy?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does McuBuddy need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is McuBuddy maintained?
The last commit was 79 days ago (2026-08-17). The latest release is v0.5.1.
How does McuBuddy compare with other MCP servers?
safety score 88/100 (higher than 75% of 48,255 servers); tools 100 (the typical server has 7); tools that change things 16% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.