Skip to main content
Glama

ppk2-mcp

MCP server for Nordic Semiconductor's Power Profiler Kit II (PPK2). Provides 12 tools for discovering, connecting, configuring, and measuring current draw directly from Claude Code or Claude Desktop.

Features

  • Discover PPK2 devices on USB

  • Connect with automatic calibration loading

  • Configure source/ampere mode and supply voltage

  • Measure current at ~100 kHz native sample rate

  • Log raw measurements to timestamped CSV files

  • Inspect saved logs without leaving the conversation

Related MCP server: dbgprobe-mcp-server

Requirements

  • Python 3.10+

  • Nordic Semiconductor PPK2 hardware

  • USB connection to PPK2

Quick Start

git clone https://github.com/Ultrahuman-tech/ppk2-mcp.git
cd ppk2-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Then configure your MCP client (see below).

Configuration

Claude Code

Add to ~/.claude.json under mcpServers:

{
  "mcpServers": {
    "ppk2": {
      "command": "/path/to/ppk2-mcp/.venv/bin/python3",
      "args": ["/path/to/ppk2-mcp/ppk2_server.py"],
      "type": "stdio"
    }
  }
}

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "ppk2": {
      "command": "/path/to/ppk2-mcp/.venv/bin/python3",
      "args": ["/path/to/ppk2-mcp/ppk2_server.py"]
    }
  }
}

Replace /path/to/ppk2-mcp with the actual clone location.

Tools Reference

Tool

Description

list_devices

Scan USB for connected PPK2 devices

connect

Connect to a PPK2 and load calibration (returns session ID)

disconnect

Disconnect, stop measurement, power off DUT

set_mode

Set operating mode: source (PPK2 powers DUT) or ampere (external power)

set_voltage

Set supply voltage in mV (source mode only, 800-5000 mV)

power_control

Toggle DUT power on/off

get_session_info

Show current session state

start_measuring

Begin continuous current measurement

stop_measuring

Stop continuous measurement

measure

Atomic: start, collect for N seconds, stop, save CSV, return stats

list_logs

List saved measurement CSV files

get_log

Read a saved log file (metadata + first N rows)

Typical Workflow

list_devices          → find PPK2 on USB
connect               → get session_id
set_mode "source"     → PPK2 supplies power
set_voltage 3300      → 3.3V to DUT
power_control "on"    → power up the device
measure 5.0           → capture 5 seconds of current data
disconnect            → clean up

Logs

Raw measurement data is saved to the logs/ directory as timestamped CSV files. Each file contains:

  • Comment header with metadata (date, duration, mode, voltage, sample count, sample rate)

  • CSV data columns: sample_idx, current_ua (optionally digital for digital channels)

Example:

# PPK2 Raw Measurement Log
# Date: 2025-02-18 19:57:00
# Duration: 2.01s
# Mode: source
# Voltage: 3300 mV
# Samples: 200,544
# Sample Rate: 99,773 sps
sample_idx,current_ua
0,1523.45
1,1518.22
...

Known Issues

  • Stale serial buffer on reconnect: After a previous session crashes or is interrupted, the PPK2's serial buffer may contain leftover binary measurement data. The server handles this automatically by flushing the buffer before reading calibration data.

  • Metadata decode errors: The upstream ppk2-api library can crash on binary noise in the serial buffer. This server includes a built-in patch (latin-1 fallback) so no manual library edits are needed.

License

MIT - see LICENSE.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    MCP server for the JouleScope JS220 precision energy analyzer, enabling agents to measure current, voltage, power, charge, and energy via tools like measure_energy.
    10
    2
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Stateful MCP server for driving debug probes (J-Link) to flash, debug, and inspect embedded targets. Enables AI agents to perform flash, memory, breakpoint, and ELF/SVD-aware operations conversationally.
    41
    10
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server for programmable bench power supply control, enabling autonomous bootloader-entry probing via precise power cycling and telemetry.
    1
    -
  • F
    license
    A
    quality
    C
    maintenance
    Enables MCP clients to control a Nordic PPK2 for power profiling: configure source/measurement modes, set voltage, power DUT, measure current/power/energy, and capture logic channels.
    6
    -