Skip to main content
Glama
cunjun
by cunjun

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCUBUDDY_TOOL_PROFILENoTool 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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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