Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Klievan/jlink-mcp --skill embedded-debugginggit clone --depth 1 https://github.com/Klievan/jlink-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/klievan/jlink-mcp/embedded-debugging)<a href="https://agentmods.dev/skills/klievan/jlink-mcp/embedded-debugging"><img src="https://agentmods.dev/badge/skills/klievan/jlink-mcp/embedded-debugging/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/klievan/jlink-mcp/embedded-debugging"><img src="https://agentmods.dev/badge/skills/klievan/jlink-mcp/embedded-debugging.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00077 | $0.02164 |
| Opus 5.5 | $0.00031 | $0.00866 |
| Sonnet 5.5 | $0.00015 | $0.00433 |
| Haiku 4.5 | $0.00008 | $0.00216 |
Grade A, and why
embedded-debugging scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 182 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Embedded debugging over a debug probe
You are talking to a physical microcontroller through a debug probe. It is slower, more stateful, and far less forgiving than a process on your machine.
The single rule that matters: the device is the source of truth, and it is cheap to ask it. Nearly every wrong answer in this domain comes from reasoning about what the hardware "should" be doing instead of reading it.
Before you debug anything: two files that change everything
Most sessions are needlessly blind because these were never supplied. Check
get_config at the start and ask for whichever is missing.
The ELF gives you names
Without it you do not merely lose names — you lose the stack. Measured on an
nRF52840, the same halted target, one gdb_load apart:
# no symbols
#0 0x00000048 in ?? ()
# after gdb_load
#0 0x00000048 in rtt_puts (s=s@entry=0x520 "] <") at src/fixture.c:124
#1 0x000001c2 in log_line (level=0x59b "inf", module=0x54a "hil_fixture",
msg=0x58d "fixture ready") at src/fixture.c:158
#2 0x000002fa in main () at src/fixture.c:282
One anonymous frame becomes three named ones with arguments and line numbers. GDB cannot unwind past the top frame without the debug info, so "the caller" is not a question you can even ask until the ELF is loaded.
gdb_load { elfFile: "build/zephyr/zephyr.elf" } # symbols only, does not touch flash
This does not reprogram the device — it loads symbols into GDB. Pass
flash: true only when you actually intend to program it. The server halts
the target briefly to run it and puts it back, so you do not have to. Load the ELF that
matches the firmware currently on the target; a stale ELF gives confidently
wrong function names, which is worse than ??.
Once loaded: gdb_backtrace, and gdb_command for info locals,
print myStruct, x/16xw &buffer, and turning a faulting address into a line:
info line *0x2a4
Line 91 of "src/fixture.c" starts at address 0x2a4 <main> and ends at 0x2a8 <main+4>.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 182 lines · 77 tokens per session scan A bb2de185df67
embedded-debugging is a skill published in the GitHub repository Klievan/jlink-mcp (36 stars, last pushed 7d ago), licensed MIT. It adds 77 tokens to every session and 2,164 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
firmware-debugger
(oh-my-embedded) Firmware debugging via GDB and serial monitor. Breakpoints, memory inspection, stack traces, JTAG/SWD. Requires debug probe.
ek-omniprobe-ai
A local bridge for reading serial-port text and standard samples, then analysing logs and signal waveforms and adjusting device settings safely. Serial ports are connections commonly used to communicate with embedded devices.
nuedc
A workflow for solving China’s National Undergraduate Electronic Design Contest (TI Cup), from understanding a task to designing circuits, writing code, compiling, flashing, and debugging. It can generate wiring diagrams and support MCU, FPGA, simulation, and PCB work, but physical wiring, soldering, and instrument operation still need a person.
serial-debug
CLI-first serial port debugging and macro automation with serial-mcp-server for Codex and Claude Code. Use when working with UART or USB-serial devices, listing serial ports, probing STM32/Arduino/ESP32 boards, writing or reading serial data, running JSON serial macros, controlling RTS/DTR, or using serial-mcp-server…
8051-mcu-debug
Use when debugging 8051-compatible microcontrollers, 51 MCU firmware, STC download issues, Keil C51 projects, interrupts, timers, UART, or startup failures.
cortex-m-debug
Use when debugging Cortex-M microcontrollers, firmware bring-up, SWD/JTAG sessions, faults, startup code, or flashing failures.