ppk2-mcp
ppk2-mcp
Nordic Power Profiler Kit II용 헤드리스 드라이버, 명령줄 및 MCP 서버로, Nordic 자체 nRF Connect Power Profiler 앱의 디바이스 레이어를 감싸고 있습니다.
공식 앱을 재구현하지 않고 감싸는 이유
PPK2의 정확도는 명령 세트(소수의 opcode)에 있지 않습니다. 정확도는 연결 시 계측기가 보고하는 단위별 보정(per-unit calibration)과 14비트 ADC 판독값, 측정 범위, 그리고 그 보정값을 전류로 변환하는 변환 로직에 있습니다. 여기에는 범위 전환 시 발생하는 스파이크를 억제하는 필터도 포함됩니다. 이러한 부분들은 Nordic이 새 계측기 펌웨어를 출시할 때 변경되는 부분이며, 재구현이 조용히 잘못되기 쉬운 부분입니다. 숫자는 여전히 전류처럼 보이기 때문입니다.
따라서 vendor/pc-nrfconnect-ppk는 앱 자체의 서브모듈이며, 그 안의 src/device/serialDevice.ts가 그대로 임포트되어 사용됩니다. 이 저장소의 어떤 것도 ADC 판독값을 변환하지 않습니다. 새 펌웨어 릴리스를 추적하는 것은 서브모듈 업데이트일 뿐입니다.
이 저장소가 추가하는 것은 앱이 스크립트에 제공할 수 없는 부분입니다. 앱은 차트가 있는 Electron 프로그램이며, 측정에 필요한 것은 상태에 귀속된 숫자입니다.
Related MCP server: Prometheus MCP Server
평균이 제공하지 못하는 것을 측정
계측기는 전류와 8개 디지털 채널을 100 kSa/s로 함께 샘플링합니다. 디지털 채널을 펌웨어가 상태를 표시하기 위해 구동하는 핀(라디오 전원 꺼짐, 주변 장치 클럭 동작, 태스크 실행)에 연결하면, 캡처는 보드가 그 동안 평균한 값이 아니라 해당 상태의 비용을 말할 수 있습니다.
이것이 전체 설계입니다. 캡처는 RUNS로 저장됩니다. 디지털 워드가 변경되지 않은 최대 범위로, 각각 샘플 수, 평균, 극값, 전하를 포함합니다. 런 파일은 그 뒤에 있는 샘플보다 3자릿수 작고, 상태별 질문에 필요한 어떤 것도 잃지 않으며, 지원하는 결과 옆에 커밋할 수 있을 만큼 작습니다.
두 가지는 의도적으로 평활화하지 않습니다:
계측기 자체의 페이로드 카운터가 손실되었다고 말한 샘플은 손실로 간주되며 런을 닫지 않습니다. 드롭아웃은 상태 변경도 아니고 전류도 아닙니다. 호출자가 허용하는 것보다 더 많이 손실된 캡처는 평균화되지 않고 REFUSED됩니다. 손실은 상태 간에 고르게 분포되지 않기 때문입니다.
상태는 MASKED 디지털 워드이므로, 아무것도 클리핑되지 않은 채널은 런을 둘로 나눌 수 없습니다.
probe는 모든 채널을 보고하므로 실제로 연결된 것에서 마스크를 선택할 수 있습니다.
설치
Node 20 이상, USB에 연결된 PPK2.
git clone --recurse-submodules https://github.com/schuschu/ppk2-mcp
cd ppk2-mcp
npm installnode가 PATH에 없으면 export PPK2_NODE_BIN=/path/to/node/bin을 설정하면 ./ppk2 런처가 찾을 수 있습니다.
Linux에서 사용자는 계측기의 직렬 포트에 대한 읽기 및 쓰기 권한이 필요하며, 일반적으로 dialout 그룹의 구성원이어야 합니다.
명령줄
./ppk2 list
./ppk2 info
./ppk2 probe --seconds 5
./ppk2 capture --out /tmp/run --seconds 60 --mask 0x0f \
--names txrx,addr,txen,rxen --label "what this run is"probe는 어떤 디지털 채널이 연결되어 있는지 알려줍니다. capture는 <out>.runs.csv와 <out>.meta.json을 쓰고 디지털 상태별로 한 줄씩 출력합니다. 계측기가 --max-dropped-ppm보다 더 많은 스트림을 손실하면 0이 아닌 종료 코드로 종료됩니다.
MCP 서버
./node_modules/.bin/tsx src/mcp.ts또는 stdio 서버 항목으로:
{
"command": "npm",
"args": ["--prefix", "/path/to/ppk2-mcp", "run", "--silent", "mcp"]
}도구: ppk2_list, ppk2_info, ppk2_probe, ppk2_capture, ppk2_analyze.
모든 도구는 집계와 파일 경로로 응답합니다. 어떤 도구도 샘플을 반환하지 않습니다. 100 kSa/s에서 1분 캡처는 600만 개의 샘플이며, 이는 호출자가 보유할 수 있는 응답도 아니고 독자가 확인할 수 있는 것도 아닙니다. ppk2_analyze는 런 파일을 다시 읽고, 디지털 상태와 지속 시간 경계 세트가 주어지면 해당 상태의 런을 지속 시간별로 분할합니다. 이는 하나의 핀이 구분할 수 없는 두 상태를 간격 길이로 구분하는 방법입니다.
계측기는 호출당 열리고 그 후 닫힙니다. 한 번에 하나의 프로세스만 포트를 보유할 수 있고, 포트를 유지하는 서버는 앱과 명령줄을 모두 잠글 수 있기 때문입니다.
모드
여기서는 소스 출력을 활성화하지 않습니다. 계측기는 이미 있는 모드로 사용되며, 이 문서가 작성된 하네스는 자체 전원으로 전원이 공급되는 보드와 직렬로 연결된 전류계입니다. Nordic DK에서는 점퍼가 제거된 전류 측정 헤더입니다.
라이선스
벤더링된 앱과 이 래퍼는 Nordic의 라이선스 하에 있습니다. vendor/pc-nrfconnect-ppk/LICENSE를 참조하십시오.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
MCP server for Statsig API - interact with Statsig's feature flags, experiments, and analytics
Authenticated MCP server for ClearPolicy policy and compliance workflows.
Analytics and debugging for your MCP server — explore usage and sessions, then root-cause errors.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for the JouleScope JS220 precision energy analyzer, enabling agents to measure current, voltage, power, charge, and energy via tools like measure_energy.102Apache 2.0
- AlicenseNot gradedqualityDmaintenanceProvides access to Prometheus metrics and queries, allowing AI assistants to execute PromQL queries and analyze metrics data through standardized MCP interfaces.MIT
- AlicenseNot gradedqualityAmaintenanceA read-only MCP server for querying telemetry data from configurable backends. Provides tools to list sources, describe schemas, run bounded queries, and compute aggregates.MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Nordic Semiconductor's Power Profiler Kit II (PPK2), enabling current measurement and device control via 12 tools from Claude.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/schuschu/ppk2-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server