McuBuddy
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCUBUDDY_TOOL_PROFILE | No | Tool profile to use. Set to 'full' to expose the complete expert catalog from earlier alpha releases. | core |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_runtime_configD | – |
| inspect_project_memoryC | Read target-project memory or prepare a read-only onboarding proposal. |
| write_project_memoryC | Write canonical memory inside a confirmed target project. |
| match_chip_nameB | Resolve a chip alias to a backend-specific target name. |
| get_target_infoC | Return alias-match and device-patch info for a target on a given backend. |
| list_tool_safetyC | List safety levels for public McuBuddy tools. |
| list_validation_recordsB | List machine-readable real-hardware validation records. |
| pack_diagnoseB | Find and checksum-verify the managed CMSIS-Pack for a target. |
| pack_installA | Download and checksum-verify a managed CMSIS-Pack after confirmation. |
| configure_probeB | Set probe connection parameters. Run list_connected_probes first to find unique_id. |
| configure_logB | Set UART log channel parameters (e.g. uart_port='COM5', uart_baudrate=115200). |
| configure_elfB | Set the ELF/AXF file path for symbol resolution. |
| discover_keil_projectsB | Find Keil project files, targets, and likely AXF/ELF outputs under a directory. |
| configure_keil_projectB | Auto-configure Keil build and ELF paths from a project path or discovery root. |
| doctorB | Run a read-only environment, dependency, probe, target, and config preflight. |
| first_contactC | Run the safest first board contact flow and suggest next debug tools. |
| build_projectD | – |
| flash_firmwareD | – |
| list_connected_probesA | List all probes currently connected to this machine. Start here if unsure what probe to use. |
| probe_connectD | – |
| probe_haltD | – |
| probe_resumeD | – |
| probe_resetD | – |
| read_stopped_contextD | – |
| backtraceA | Heuristic call stack reconstruction for Cortex-M targets. Frame 0 is the current PC. Frame 1 is LR (return address). Further frames are found by scanning the stack for addresses that resolve to known function symbols in the loaded ELF. Accuracy depends on compiler optimizations; best with -O0 or -O1. Requires probe connected and target halted. |
| flash_imageA | Flash a raw binary file with erase, program, verify, and optional reset. path must be within security.allowed_file_paths when that allowlist is configured. erase_mode accepts 'sector' (default) or 'chip'. This persistent operation requires explicit confirmation and both flash erase and programming to be enabled. |
| compare_elf_to_flashA | Compare all loadable ELF sections against actual target memory. Reads each PROGBITS+ALLOC section from the ELF, reads the same address range from target memory, and reports mismatching bytes. Useful for verifying that flash programming completed correctly. Requires ELF loaded and probe connected. |
| list_rtos_tasksA | List all FreeRTOS tasks with state, priority, and stack usage. Walks pxReadyTasksLists, xDelayedTaskList*, and xSuspendedTaskList to enumerate all tasks. Reads TCB fields: name, priority, stack base, stack top pointer. max_priorities: upper bound for scanning pxReadyTasksLists (default 32). task_name_len: configMAX_TASK_NAME_LEN in your FreeRTOS build (default 16). Requires ELF loaded and probe connected with target halted. |
| rtos_task_contextA | Read the saved register context of a blocked or suspended FreeRTOS task. Parses the Cortex-M4F context switch stack frame stored in the task's TCB. Reconstructs R0-R12, SP, LR, PC, xPSR and resolves PC to a symbol/source line. Automatically detects whether FPU context was saved (EXC_RETURN bit 4). If the named task is currently running, returns live register values instead. task_name: exact task name as passed to xTaskCreate (case-sensitive). task_name_len: configMAX_TASK_NAME_LEN in your FreeRTOS build (default 16). Requires ELF loaded and probe connected with target halted. |
| read_rtt_logA | Read Segger RTT log output directly from target RAM via probe (no UART needed). Scans the specified RAM range for the RTT control block ('SEGGER RTT' magic), then reads the ring buffer of the requested up-channel. channel: RTT up-channel index (default 0). search_start: start of RAM scan (default 0x20000000). search_size: bytes to scan (default 0x50000 = 320 KB). Requires probe connected and target halted (or briefly halted to read). |
| collect_crash_evidenceC | Collect structured crash facts without assigning a root cause. |
| collect_startup_evidenceC | Collect reset, vector, context, and log facts for startup failures. |
| collect_peripheral_evidenceC | Collect SVD-backed peripheral, RCC, and GPIO facts. |
| collect_rtos_evidenceC | Collect FreeRTOS task and optional task-context facts. |
| elf_loadD | – |
| log_connectD | – |
| uart_sendD | – |
| uart_read_bytesD | – |
| uart_exchangeD | – |
| log_tailD | – |
| disconnect_allD | – |
| svd_loadA | Load a CMSIS-SVD file to enable peripheral register interpretation. SVD files define the register map of a chip. You can find SVD files in your chip vendor's SDK, or at https://github.com/posborne/cmsis-svd-data Example: svd_load('/path/to/STM32L496.svd') |
| svd_read_peripheralA | Read all register values for a peripheral and interpret each field. Combines hardware register reads with SVD field definitions to produce a structured, human-readable view of peripheral state. Requires probe connected and target halted. Example: svd_read_peripheral('USART2') |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/cunjun/McuBuddy'
If you have feedback or need assistance with the MCP directory API, please join our Discord server