Debug embedded firmware on real hardware: J-Link probes, Cortex-M faults, RTT logs, GDB.
Connect Runs on your machine
claude mcp add jlink-mcp -e JLINK_DEVICE=<JLINK_DEVICE> -e JLINK_SERIAL=<JLINK_SERIAL> -e SVD_PATH=<SVD_PATH> -e JLINK_RTT_ADDR=<JLINK_RTT_ADDR> -- npx -y [email protected]
{
"mcpServers": {
"jlink-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"JLINK_DEVICE": "<JLINK_DEVICE>",
"JLINK_SERIAL": "<JLINK_SERIAL>",
"SVD_PATH": "<SVD_PATH>",
"JLINK_RTT_ADDR": "<JLINK_RTT_ADDR>"
}
}
}
}
{
"mcpServers": {
"jlink-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"JLINK_DEVICE": "<JLINK_DEVICE>",
"JLINK_SERIAL": "<JLINK_SERIAL>",
"SVD_PATH": "<SVD_PATH>",
"JLINK_RTT_ADDR": "<JLINK_RTT_ADDR>"
}
}
}
}
{
"servers": {
"jlink-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"JLINK_DEVICE": "<JLINK_DEVICE>",
"JLINK_SERIAL": "<JLINK_SERIAL>",
"SVD_PATH": "<SVD_PATH>",
"JLINK_RTT_ADDR": "<JLINK_RTT_ADDR>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
JLINK_DEVICERequired | Target device name, exactly as J-Link spells it (e.g. nRF52840_XXAA, STM32F407VG). Use the search_devices tool to find it. |
JLINK_SERIALOptional | Serial number of a specific probe, when more than one is attached. |
SVD_PATHOptional | CMSIS-SVD file for the target. Without it, peripheral reads are undecoded hex. |
JLINK_RTT_ADDROptional | Address of the firmware's _SEGGER_RTT symbol. Lets RTT survive a reset or flash. |
Details
| Package | [email protected] (NPM, stdio) |
| First published | 26 Oct 2026 |
| Last updated | 26 Oct 2026 |
| Registry name | io.github.Klievan/jlink-mcp |
More developer tools servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
