プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

J-Link MCP

作者:Klievanバージョン 0.8.0i★ –iパソコンで動く
レジストリ名io.github.Klievan/jlink-mcp

インストール

概要

作者による説明(英語の原文)

Debug embedded firmware on real hardware: J-Link probes, Cortex-M faults, RTT logs, GDB.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: その他
  • 入力が必要なもの:JLINK_DEVICE

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: JLINK_DEVICE, JLINK_SERIAL, SVD_PATH, JLINK_RTT_ADDR

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "jlink": {
      "command": "npx",
      "args": [
        "-y",
        "jlink-mcp"
      ],
      "env": {
        "JLINK_DEVICE": "your-value",
        "JLINK_SERIAL": "your-value",
        "SVD_PATH": "your-value",
        "JLINK_RTT_ADDR": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add jlink --env JLINK_DEVICE=your-value --env JLINK_SERIAL=your-value --env SVD_PATH=your-value --env JLINK_RTT_ADDR=your-value -- npx -y jlink-mcp

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "jlink": {
      "command": "npx",
      "args": [
        "-y",
        "jlink-mcp"
      ],
      "env": {
        "JLINK_DEVICE": "your-value",
        "JLINK_SERIAL": "your-value",
        "SVD_PATH": "your-value",
        "JLINK_RTT_ADDR": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "jlink": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "jlink-mcp"
      ],
      "env": {
        "JLINK_DEVICE": "your-value",
        "JLINK_SERIAL": "your-value",
        "SVD_PATH": "your-value",
        "JLINK_RTT_ADDR": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • JLINK_DEVICE 必須 env
    Target device name, exactly as J-Link spells it (e.g. nRF52840_XXAA, STM32F407VG). Use the search_devices tool to find it.
  • JLINK_SERIAL env
    Serial number of a specific probe, when more than one is attached.
  • SVD_PATH env
    CMSIS-SVD file for the target. Without it, peripheral reads are undecoded hex.
  • JLINK_RTT_ADDR env
    Address of the firmware's _SEGGER_RTT symbol. Lets RTT survive a reset or flash.

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント Klievan で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

その他のほかのサーバーとの比較i

  • このカテゴリのほかの32568件のうち0%よりスターが多い
  • このカテゴリのほかの32568件のうち75%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの32568件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

J-Link MCPは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:JLINK_DEVICE

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.8.0)がレジストリに届いたのは11 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, FlyDocs

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

クラウドで動く★ 211昨日更新
インストール

FlyDocs

作者:flydocs.ai

Spec-driven development workflow: your agent works issues, sessions and the status lifecycle.

パソコンで動く今日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

jlink-mcp

Give AI hands to touch silicon.

An MCP server that lets LLMs debug embedded devices through SEGGER J-Link probes.


See it work

Real MCP tool calls against a real nRF52840-DK. Reproduce it yourself: npm run demo

Your firmware just crashed. One tool call:

> diagnose_crash

Crash Diagnosis

CPU State

Core: PC=0x000000B8 SP=0x2003FFA8 R0=0x0000000A R1=0x000007FF R2=0x00000001 ... Status: XPSR=0x21000003 CONTROL=0x00000000 PRIMASK=0x00000000 ... Stack: MSP=0x2003FFA8 PSP=0x00000000

⚠ CPU is in exception handler (IPSR=0x00000003)

Fault Registers

CFSR=0x01000000 HFSR=0x40000000 DFSR=0x00000000 MMFAR=0xe000edf8 BFAR=0xe000edf8

Decoded Faults

UsageFault (UFSR):

  • UNALIGNED: Unaligned memory access

HardFault (HFSR):

  • FORCED: Forced HardFault (escalated from configurable fault)
Exception Stack Frame

R0 = 0x0000000A R1 = 0x000007FF R12 = 0x00000000 LR = 0x000001F5 PC = 0x00000254 xPSR = 0x21000000

→ Faulting instruction at PC=0x00000254

Recent Errors/Warnings from RTT

[WRN] sensor_drv: sample out of range, clamping seq=2

Fault decoded, exception frame unwound, faulting instruction named, and the device's own log correlated — from one call, without a human reading a datasheet to find out what bit 24 of CFSR means.

And it knows what the silicon is

Point it at your target's CMSIS-SVD file and peripheral registers stop being hex:

> read_peripheral FICR

FICR @ 0x10000000 INFO.PART @ 0x10000100 = 0x00052840 (read-only) [31:0] PART 0x52840 → N52840 INFO.RAM @ 0x1000010C = 0x00000100 (read-only) [31:0] RAM 0x100 → K256 INFO.FLASH @ 0x10000110 = 0x00000400 (read-only) [31:0] FLASH 0x400 → K1024

0x400 means 1024 KB of flash — but only if you know that, and an LLM guessing at bit layouts is exactly the failure this avoids. The addresses come from the vendor's own description, and the meanings from its enumerations.

*Both transcripts are verbatim output from an nRF52840-DK in this project's hardware test suite.*

What is this?

jlink-mcp connects AI assistants (Claude, Copilot, etc.) to your embedded hardware via SEGGER J-Link debug probes using the Model Context Protocol.

Instead of manually typing J-Link commands, your AI assistant can:

  • Read registers and memory to understand device state
  • Flash firmware and reset devices
  • Stream RTT logs and search them by level/module/regex
  • Diagnose crashes by auto-decoding ARM Cortex-M fault registers
  • Control execution — halt, step, resume, breakpoints
  • Start GDB servers for full debugging sessions

Also supports OpenOCD (ST-Link, CMSIS-DAP, FTDI) and Black Magic Probe backends.

Installing

You need the SEGGER J-Link software — that is what this server drives — a probe connected to an ARM Cortex-M target, and Node 18+. For the other backends, OpenOCD or arm-none-eabi-gdb instead.

Claude Code — from the plugin marketplace. This brings the embedded-debugging skill along with the server, which is what stops an assistant guessing at your hardware:

/plugin marketplace add Klievan/jlink-mcp

/plugin install jlink-mcp

Any other agent — point it at this repository and ask it to set itself up:

Install the MCP server at https://github.com/Klievan/jlink-mcp and configure

it for my board.

It will find what it needs here. If you would rather do it by hand, the server is on npm and needs no build step: npx -y jlink-mcp, with JLINK_DEVICE set to your target. mcp-config.json is a config you can paste.

VS Code — install the extension. It registers the server for Copilot Chat, Claude, and any MCP-aware client, so there is nothing to configure.

Nix / NixOS — run directly from the flake without installing:

# Run standalone MCP server

nix run github:Klievan/jlink-mcp

Or in an MCP client configuration (e.g. Claude Desktop / Claude Code)

"command": "nix", "args": ["run", "github:Klievan/jlink-mcp", "--"]

Or add jlink-mcp and jlink-mcp-skills to your system configuration or flake:

# flake.nix inputs

inputs.jlink-mcp.url = "github:Klievan/jlink-mcp";

In your packages:

inputs.jlink-mcp.packages.''${system}.jlink-mcp inputs.jlink-mcp.packages.''${system}.jlink-mcp-skills

Note for NixOS users: Add your preferred probe tools (segger-jlink / segger-jlink-headless, openocd, or gdb) to environment.systemPackages or your devShell. segger-jlink requires nixpkgs.config.allowUnfree = true; and services.udev.packages = [ pkgs.segger-jlink ]; for probe USB permissions.

Then check it

Ask for check_setup. One call, and it says what is missing and what to do:

Not ready to debug yet.

OK probe software — J-Link software found at /Applications/SEGGER/JLink BLOCK probe — none detected (Connecting to J-Link via USB...FAILED). Check the USB cable. BLOCK target device — not set. Find the exact name with search_devices, then set_device. note SVD — not loaded, so peripheral reads stay raw hex. Set SVD_PATH to a CMSIS-SVD file.

You do not need your device's exact part number up front. search_devices searches all 9800 that J-Link supports, by part number, manufacturer, or core.

Tools (48)

Workflow Tools (start here)
ToolDescription
start_debug_sessionOne-call setup. Starts GDB server + connects RTT + returns boot log.
snapshotCaptures full device state: registers, fault status, stack dump, RTT output.
diagnose_crashAuto-reads and decodes ARM Cortex-M fault registers (CFSR, HFSR, MMFAR, BFAR) with exception stack frame.
Device Setup
ToolDescription
list_devicesScan for connected probes and show the configured target
set_deviceChange the target device at runtime — no restart needed
set_serial_numberChange the probe serial number at runtime (for multi-probe setups)
get_configCurrent probe, target device, and GDB server state
Device Control
ToolDescription
device_infoProbe type, target CPU, compact register summary
haltHalt CPU
resumeResume CPU
resetReset device. halt stops it at the reset vector; strategy picks a J-Link reset type, or omit it and let J-Link choose
stepSingle-step one instruction
Peripherals (CMSIS-SVD)

Set jlinkMcp.svdPath to your target's SVD — the same file Cortex-Debug takes as svdFile. Vendors publish one per part.

ToolDescription
list_peripheralsEvery peripheral and base address on the chip
read_peripheralRead a peripheral's registers and decode each one's bit fields by name
decode_registerDecode one register — read from the device, or interpret a value you already have
Memory & Registers
ToolDescription
read_memoryRead memory at address (clean hex dump output)
write_memoryWrite 32-bit value to address
read_registersAll CPU registers in compact format
read_registerRead specific register (PC, SP, R0-R12, etc.)
Flash
ToolDescription
flashFlash .hex/.bin/.elf firmware to device
eraseErase entire flash
Breakpoints
ToolDescription
set_breakpointSet hardware breakpoint at address
clear_breakpointsClear all breakpoints
GDB Server
ToolDescription
gdb_server_startStart probe's GDB server
gdb_server_stopStop GDB server + disconnect RTT
gdb_server_statusGDB server, RTT, and proxy status
Source-Level Debugging

Attach a real GDB client for symbol-aware work — backtraces, variable inspection, and stepping by source line rather than by instruction.

ToolDescription
gdb_connectAttach a GDB client (auto-starts the server; optional ELF for symbols)
gdb_loadLoad an ELF for debug symbols, optionally flashing it too
gdb_backtraceCall stack, optionally with locals in each frame
gdb_commandRun any GDB command — print sensor_state, info threads, break main
gdb_waitWait for the target to stop (after a continue or a breakpoint)
gdb_disconnectDetach the client, clearing breakpoints and debug hardware
RTT (Real-Time Transfer)
ToolDescription
rtt_connectConnect to RTT telnet port
rtt_disconnectDisconnect from RTT
rtt_readRead recent log lines (ANSI stripped, Zephyr format parsed)
rtt_searchFilter logs by level (err/wrn/inf/dbg), module, or regex
rtt_sendSend data to device via RTT down-channel
rtt_clearClear RTT buffer
Telnet Proxy (Trice / Pigweed)
ToolDescription
telnet_proxy_startStart TCP proxy that tees RTT for external detokenizers
telnet_proxy_stopStop proxy
telnet_proxy_statusProxy connection status

| `te

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く