J-Link MCP
Debug embedded firmware on real hardware: J-Link probes, Cortex-M faults, RTT logs, GDB.
Connector by Klievan · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/klievan-jlink-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: debugging
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 20 read · 22 write · 4 delete · 2 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 48
Read from the source code; the running server may list different tools.
Read 20 · Look things up without changing anything.
check_setupdevice_infodiagnose_crashgdb_backtracegdb_server_statusgdb_waitget_configlist_deviceslist_peripheralsread_memoryread_peripheralread_register
Show 8 more tools
read_registersrtt_readrtt_searchrtt_statussearch_devicessnapshottelnet_proxy_readtelnet_proxy_status
Write 22 · Create, change, send or run things.
decode_registerflashgdb_commandgdb_connectgdb_disconnectgdb_loadgdb_server_startgdb_server_stophaltresumertt_disconnectrtt_send
Show 10 more tools
set_breakpointset_deviceset_rtt_addressset_serial_numberset_svd_pathstart_debug_sessionsteptelnet_proxy_starttelnet_proxy_stopwrite_memory
Delete 4 · Delete, drop, revoke or wipe things.
clear_breakpointseraseresetrtt_clear
Not yet classified 2 · We could not tell from the name and description.
probe_commandrtt_connect
Secrets and settings it asks for
Other settings (environment variables or headers).
JLINK_DEVICEJLINK_RTT_ADDRJLINK_SERIALSVD_PATH
Network hosts it talks to 3
github.com· found in codekb.segger.com· found in codesegger.com· found in code
Files it touches
/dev/ttyACM0/opt/SEGGER/opt/SEGGER/JLink/usr/local/SEGGER/usr/local/SEGGER/JLink- Any path the agent passes to its tools
Tools (48)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
check_setupCheck that everything needed to debug is in place: the probe software, a connected probe, a target device name, and the optional files that make output readable. Run this first when anything fails, or when starting on a machine for the first time.
clear_breakpointsClear all breakpoints, including any left armed in the debug hardware by an earlier session
decode_registerDecode a value into named bit fields using the target's SVD. Reads from the device unless a value is supplied — useful for interpreting a number you already have.
device_infoDescription is built at runtime.
diagnose_crashAuto-read and decode ARM Cortex-M fault registers (CFSR, HFSR, MMFAR, BFAR), exception stack frame, and recent errors.
eraseErase target flash memory
flashFlash firmware to the target device
gdb_backtraceGet a stack backtrace. With debug symbols loaded, shows function names, file paths, and line numbers.
gdb_commandSend any GDB command and get the response. For execution commands (continue, step, next, finish, until), blocks until the target stops or times out. If the target doesn't stop, use gdb_wait to poll. Examples: 'bt' (backtrace), 'info threads', 'print myVar', 'break main', 'continue', 'next', 'step', 'finish', 'info registers', 'x/10xw 0x20000000'
gdb_connectConnect a GDB client to the running GDB server. Enables source-level debugging: backtraces, variable inspection, conditional breakpoints, stepping by source line. Optionally load an ELF file for symbol info.
gdb_disconnectDisconnect the GDB client (does not stop the GDB server)
gdb_loadLoad an ELF file into GDB. By default loads symbols only (for source-level debugging: backtraces with file:line, variable names). Set flash=true to also program it onto the target.
gdb_server_startDescription is built at runtime.
gdb_server_statusGet GDB server, RTT, and telnet proxy status
gdb_server_stopDescription is built at runtime.
Show 33 more tools
gdb_waitPoll for target stop after a continue/step that timed out. Returns the stop reason (breakpoint hit, signal, finished stepping, etc.) when the target halts.
get_configGet current probe and server configuration
haltHalt the target CPU
list_devicesScan for connected PROBES — the debuggers plugged into this machine, not target chips. Despite the name it does not list target devices; use search_devices for those. Shows probe serial numbers and whether one is reachable.
list_peripheralsList the target's peripherals and base addresses, from its CMSIS-SVD description. Requires an SVD file to be configured.
probe_commandDescription is built at runtime.
read_memoryRead memory from the target. Returns clean hex dump.
read_peripheralRead every register of a peripheral from the target and decode each one's bit fields by name. This is read_memory plus the meaning of what was read.
read_registerRead a specific CPU register by name
read_registersRead all CPU registers (compact format, FP only if non-zero).
resetReset the target device. Halting leaves the core stopped at the reset vector, which is where you want it before flashing, or to watch startup run.
resumeResume the target CPU
rtt_clearClear RTT buffer
rtt_connectDescription is built at runtime.
rtt_disconnectDisconnect from RTT
rtt_readRead RTT log lines (clean, parsed Zephyr format). Non-destructive — reading does not consume the buffer. Returns the NEWEST lines by default; oldest:true returns the start of the buffer. Note the buffer spans reflashes: its oldest lines may be from firmware you have since replaced. rtt_clear drops them.
rtt_searchSearch/filter RTT logs by level, module, or regex
rtt_sendSend data to device via RTT down-channel
rtt_statusRead SEGGER's RTT control block on the target: is it initialised, how much has the firmware written, and how much has the probe collected. Use this when RTT is silent — it separates a quiet device from a probe that stopped collecting, which look identical from rtt_read.
search_devicesSearch the device names this J-Link installation accepts, by part number, manufacturer, or core. Use this before set_device instead of guessing a part number — the name must match exactly, and a wrong one fails in a way that looks like broken hardware.
set_breakpointSet a hardware breakpoint
set_deviceSet the target device name at runtime. Required before any debugging commands will work. The name must match J-Link's exactly — use search_devices to find it rather than guessing a part number. Examples: 'nRF52840_XXAA', 'nRF5340_xxAA_APP', 'STM32F407VG', 'STM32L476RG'.
set_rtt_addressTell the server where the firmware's RTT control block is (its _SEGGER_RTT symbol), at runtime. Without it RTT cannot be recovered after a reset or flash, and a stopped stream is indistinguishable from a quiet device. Mirrors set_device.
set_serial_numberSet the debug probe serial number at runtime. Required when multiple probes are connected to select which one to communicate with. Run list_devices to see connected serial numbers.
set_svd_pathPoint the server at a CMSIS-SVD file for the target at runtime, so peripheral reads come back with named fields and decoded values instead of raw hex. Mirrors set_device — you do not have to restart with SVD_PATH set.
snapshotCapture complete device state: CPU registers (compact), fault status, recent RTT output, and stack dump.
start_debug_sessionDescription is built at runtime.
stepStep one CPU instruction
telnet_proxy_readRead raw data from telnet proxy buffer
telnet_proxy_startStart a TCP relay that re-serves the RTT stream on another port, so an external decoder (Trice, Pigweed, or your own) can consume it alongside this server. It relays bytes; it does not decode them.
telnet_proxy_statusGet telnet proxy status
telnet_proxy_stopStop telnet proxy
write_memoryWrite a 32-bit value to memory
Signals
- Stars
- 38
- Forks
- 6
- Open issues
- 1
- Contributors
- 3
- Last commit
- Oct 9, 2026 (19 days ago)
- Last release
- Aug 28, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.Klievan/jlink-mcp- Version
- 0.6.0
- Auth
- No auth
- Packages
- npm jlink-mcp
- License
- MIT
- Repository
- github.com/Klievan/jlink-mcp
- Website
- github.com/Klievan/jlink-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
J-Link MCP. Agent Mart. https://agentmart.dev/connectors/klievan-jlink-mcp (last updated 2026-10-24)