debug_profile
Retrieve or update active STM32 GDB target settings (MCU, ELF, SVD, board, probe, server) so sessions target the right hardware and firmware. Set fields or deep-merge nested hub/reset blocks.
Instructions
Active debug profile (mcu/elf/svd/probe). action=get | set([mcu,elf_path,svd_path,board,probe,server_type,server_args,project_root,hub,notes,merge]). set merges at the TOP LEVEL ONLY: omitted fields keep their value, but a nested block you pass REPLACES the stored one whole — hub={map:{3:{label:TC}}} drops the rest of hub, including what hub(action=discover) wrote. merge=true deep-merges nested blocks instead; leave it off to DROP a stale entry, since replace is the only way to remove one. Returns the full resulting profile, which is in-memory only: empty again after the MCP server restarts.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| hub | No | Programmable USB hub binding: {port, serial, channel, map, power_cycle, guard}. channel is 1-based and selects which port this session's board sits on. | |
| mcu | No | ||
| board | No | ||
| merge | No | Deep-merge nested blocks (hub, rtt, uart, swo, reset, hil) into the stored ones instead of replacing them -- use it to add one key, e.g. a hub.map label, without dropping the identity hub(action=discover) wrote. Leave it off to replace, which is the only way to remove a stale entry. | |
| notes | No | ||
| probe | No | ||
| action | Yes | Which operation to perform. | |
| session | No | Optional debug-session name. Omit for the default target. | |
| elf_path | No | ||
| svd_path | No | ||
| server_args | No | ||
| server_type | No | ||
| project_root | No |