ZeroStack RF Diagnostics MCP
OfficialAnalyzes Home Assistant ZHA (zigpy-znp/bellows) logs and supports troubleshooting of home-automation and Zigbee mesh issues.
Provides Zigbee 3.0/R23 coordinator diagnostics, SRCMATCH hardware capacity checks, and Zigbee/Thread mesh coordinator capacity evaluation.
Analyzes Zigbee2MQTT/Z2M logs for MAC/APS/NWK error codes, SRSP timeouts, and ZCL/MQTT telemetry floods to diagnose Zigbee network problems.
ZeroStack RF Diagnostics & Benchmark MCP Server (zerostack-mcp)
Official ZeroStack Overview & Downloads: https://smlight.tech/software/zerostack Interactive Web Log Analyzer: https://smlight-tech.github.io/zerostack/ Technical Whitepaper — Part 1 (PDF): Scaling Zigbee 3.0 / R23 Beyond the 100-Node Wall MCP Server:
v0.9.9| Target Firmware: ZeroStack Release Zero (0.9.9-beta.1)
zerostack-mcp is an open-source Model Context Protocol (MCP) server that gives AI coding assistants and home-automation troubleshooting agents (Claude Desktop, Cursor, Windsurf, Cline, OpenAI Agents, Home Assistant AI agents) deterministic tools to:
Diagnose Zigbee2MQTT (
z2m), Home Assistant ZHA (zigpy-znp,bellows), and OpenThread RCP logs (analyze_zigbee_thread_log).Decode hardware radio/UART status registers (
decode_silicon_register) for TI SimpleLink F2 (CC2652P,CC2652P7,CC1352P7,CC2674P10) and Silicon Labs EFR32 (EFR32MG21,EFR32MG24).Evaluate Zigbee/Thread mesh coordinator capacity and
SRCMATCHhardware limits (check_coordinator_capacity).Query verified hardware validation benchmarks (
DWT->CYCCNT@48.0 MHz) (get_zerostack_benchmarks) comparing ZeroStack Release Zero (0.9.9-beta.1) against legacy TI Z-Stack (ZNP 3.x) across SMLIGHTSLZB-06andSLZB-07series coordinators.
Quick Start
Run with uvx (No Installation Required)
{
"mcpServers": {
"zerostack-rf": {
"command": "uvx",
"args": ["zerostack-mcp"]
}
}
}Local Development Installation
git clone https://github.com/zerostack-rf/zerostack-mcp.git
cd zerostack-rf-mcp
uv sync
uv run pytest
uv run zerostack-mcpRelated MCP server: agentic-hil
Supported Hardware — Release Zero (0.9.9-beta.1)
ZeroStack Release Zero (0.9.9-beta.1) supports the TI SimpleLink F2 family across SMLIGHT SLZB-06 and SLZB-07 series coordinators (Zigbee 3.0 / PRO R23 Coordinator & Router firmware with DMA-driven UART and Live Auto-Baud 115200 / 460800 / 1000000):
Coordinator Model | Radio SoC | SRAM / Flash | Hardware RTS/CTS | Transport |
|
|
| No | Ethernet / PoE / USB / Wi-Fi |
|
|
| Yes ( | Ethernet / PoE / USB / Wi-Fi |
|
|
| No | Ethernet / PoE / USB / Wi-Fi |
|
|
| Yes ( | Ethernet / PoE / USB / Wi-Fi |
|
|
| No | USB Dongle |
|
|
| Yes ( | Ethernet / PoE / USB / Wi-Fi |
|
|
| No | USB Dongle |
Note on Silicon Labs EFR32 (
EFR32MG21/EFR32MG24):zerostack-mcpincludes diagnostic rules (0x72,0xa1,ASH_NCP_FATAL_ERROR) andEUSART0_IFregister decoding for Silicon Labs EmberZNet / EZSP coordinators (SLZB-06M,SLZB-06Mg24, SkyConnect/ZBT-1). ZeroStack Release Zero (0.9.9-beta.1) ships on SMLIGHT TI SimpleLink F2 coordinators; Silicon Labs EFR32 support is in active development.
Verified Hardware Validation Benchmarks (TI CC1352P7 @ 48.0 MHz, DWT->CYCCNT)
Part 1: Deterministic Execution Latency (1 µs = 48 cycles)
Subsystem / Operation | Legacy TI Z-Stack ( | ZeroStack | Measured Improvement |
TCLK Lookup (300-entry table, miss / first contact) |
|
| 4,559× faster ( |
TCLK Lookup (300-entry table, oldest-record hit, age 383) |
|
| 1,915× faster ( |
Per-Frame NWK Encrypt ( |
|
| 134.4× faster (O(1), |
Per-Frame NWK Decrypt ( |
|
| 139.2× faster (O(1), |
Routed Hop Security Ceiling ( |
|
| 135× higher ceiling |
Per-Frame APS TX Security (300-peer table, |
|
| Up to 75.5× faster |
Device Authentication Check ( |
|
| 236× faster |
NVM Stack Key Read ( |
|
| 213.9× faster |
Idempotent NVM State Write (Unchanged |
|
| 26.7× faster + 0% flash wear |
NVM Compaction Frequency | Write #69 ( | Write #1,013 ( | 14.7× lower compaction frequency |
Dynamic Memory Allocation ( |
|
| 11.7× faster |
Timer Start Latency ( |
|
| 6.9× faster |
Inter-Task Event Enqueue ( |
|
| 2.9× faster |
Host Serial Round-Trip ( |
|
| 53% fewer total / 83% fewer reply |
Part 2: Adversarial Resilience & Fault Recovery
Stress Vector | Legacy TI Z-Stack ( | ZeroStack | Measured Improvement |
Malformed Secured OTA Frames (12 NWK/APS classes + 3,255 MAC vectors) | Remote CPU |
| Zero remote crash + 9.8×–402× lower CPU |
1,000-Frame Cryptographic Replay Flood ( |
|
| 92.8× faster ( |
NOR Flash Brownout Fuzzing ( |
|
| 749× lower post-brownout flash write volume |
Hostile UART Framing Abuse ( |
|
| Zero blackout ( |
50-Device Unauthenticated Join / TCLK Miss Flood ( |
|
| 7.7× faster end-to-end |
1,000-Frame 50-Router Echo Amplification Storm ( |
|
| 19.9× lower total CPU (20.3× faster/echo) |
64-Frame Post-Outage Unique Broadcast Flood ( | Admits | Admits | 10.6× lower CPU time (17.3× faster shed) |
MCP Tools, Resources & Prompts
Tools
All tools include read-only, idempotent ToolAnnotations (readOnlyHint=True, idempotentHint=True, destructiveHint=False, openWorldHint=False):
analyze_zigbee_thread_log(log_text): Matches raw Z2M/ZHA/OpenThread logs against 16+ error signatures (including decimal Z2M MAC codes225/233/240/241,0x10,0x11,0xC7,0xCD,0xA7/0xAD,6000msSRSP, and multi-line ZCL MQTT delta-zero telemetry floods).decode_silicon_register(chip, register_or_addr, hex_value): Decodes TI SimpleLink F2 (CMD_IEEE_RX,CMD_IEEE_CSMA,RFC_DBELL,RFC_RAM:SRCMATCH,VIMS,PRCM) and Silicon Labs EFR32 (EUSART0_IF).check_coordinator_capacity(device_count, sleepy_zed_count, chip_family): Evaluates TI SimpleLink F2 32-slotSRCMATCHhardware table utilization, indirect queue quota isolation (50%pool cap, max2frames/child), zero flash-read stalls during sleepy poll windows, and SRAM heap headroom.get_zerostack_benchmarks(platform): Returns Part 1 and Part 2 hardware validation benchmarks forSLZB-06,SLZB-06U,SLZB-06P7,SLZB-06P7U,SLZB-06P7V1,SLZB-07P7,SLZB-06P10,SLZB-07P10, or"all".
Resources & Prompts
zerostack://benchmarks/summary— Complete Part 1 & Part 2DWT->CYCCNTbenchmark dataset.zerostack://hardware/supported-models— Supported TI SimpleLink F2 hardware matrix for Release Zero (0.9.9-beta.1).zerostack://diagnostics/catalog— Full machine-readable ZeroStack diagnostics catalog.Prompt
diagnose_zigbee_log(log_text)— Structured troubleshooting workflow for Zigbee2MQTT / ZHA logs.
License
Apache License 2.0 (Apache-2.0) — Copyright (c) 2026 SMLIGHT / ZeroStack RF Engineering.
Learn more at https://smlight.tech/software/zerostack.
Available Tools
4 toolsanalyze_zigbee_thread_logARead-onlyIdempotent
Analyze pasted Zigbee2MQTT, Home Assistant ZHA, or OpenThread logs for fault signatures.
When to use:
Use this tool when diagnosing runtime error logs, adapter timeouts (
SRSP ... after 6000ms), MAC/NWK/APS status codes (0x10,0x11,0xc7,0xcd,0xe1/225,0xe9/233,0xf0/240,0xf1/241), interview failures (0xa7), or ZCL telemetry/genTimefloods.Do NOT use for decoding raw hexadecimal MCU register words (
decode_silicon_register), sizing network capacity (check_coordinator_capacity), or querying hardware benchmark tables (get_zerostack_benchmarks).
Behavior:
Executes deterministically offline with zero network or serial I/O.
Ranks detected faults by severity and root-cause priority (
ZNP_SYS_RESET_IND> lockstep timeouts > memory/buffer exhaustion > RF delivery symptoms) and returns stock SDK root causes, immediate workarounds, and SMLIGHT ZeroStack (Release Zero (0.9.9-beta.1)) fixes.
Inputs: log_text (required). Returns: status, matches, release, summary, +10 more
check_coordinator_capacityARead-onlyIdempotent
Calculate hardware SrcMatch slot utilization, pendAll threshold, and SRAM heap headroom.
When to use:
Use this tool for capacity planning and topology sizing given
(device_count, sleepy_zed_count, chip_family)to evaluate 32-slotRFC_RAMSrcMatchexhaustion,pendAll(FP=1) promotion whensleepy_zed_count > 32, indirect queue quota isolation, and SRAM headroom (88 KB/144 KB/256 KB).Do NOT use for parsing runtime logs (
analyze_zigbee_thread_log), decoding register hex values (decode_silicon_register), or fetchingDWT->CYCCNTlatency benchmarks (get_zerostack_benchmarks).
Behavior:
Executes deterministically offline; derives
router_count = device_count - sleepy_zed_count.Raises
ValueErrorifdevice_count < 0,sleepy_zed_count < 0,sleepy_zed_count > device_count, orchip_familyis unrecognized.
Inputs: chip_family (required), device_count (required), sleepy_zed_count (required). Returns: release, chip_family, device_count, router_count, +11 more
decode_silicon_registerARead-onlyIdempotent
Decode a hexadecimal MCU register or radio-core command status word into bitfields.
When to use:
Use this tool when inspecting a TI SimpleLink F2 (
CMD_IEEE_RX,CMD_IEEE_CSMA,RFC_DBELL,SRCMATCH,VIMS,PRCM,UART0_FR,UART0_RSR,UART0_CTL,IOCFG0..31,AON_PMCTL_RESETCTL), Silicon Labs EFR32 (EUSART0_IF,USART0_IF,USART0_STATUS,EMU_RSTCAUSE), or ARM Cortex-M4/M33 (SCB_CFSR0xE000ED28,SCB_HFSR0xE000ED2C) hex register/status value captured from SWD/JTAG, a crash dump, or telemetry.Do NOT use for parsing multi-line host application logs (
analyze_zigbee_thread_log) or evaluating mesh node counts (check_coordinator_capacity).
Behavior:
Executes deterministically offline with zero hardware or network I/O.
Returns decoded bitfield flags, boolean
healthystatus, root-cause diagnosis, and links to silicon errata notes; raisesValueErroron unsupportedchiporregister_or_addridentifiers or unparseablehex_valuestrings.
Inputs: chip (required), hex_value (required), register_or_addr (required). Returns: chip, address, healthy, raw_hex, +10 more
get_zerostack_benchmarksARead-onlyIdempotent
Retrieve hardware-verified DWT->CYCCNT latency and fault-injection benchmarks by SKU.
When to use:
Use this tool to query hardware specifications (CPU, Flash/SRAM, DIO10/DIO11 RTS/CTS wiring, supported baud rates) and cycle-accurate Part 1 execution latencies (
TCLKlookup,NWKencrypt/decrypt, routed hop ceiling,O(1)allocator) plus Part 2 adversarial resilience metrics (3,255 MAC vectors, 22,959 brownout cut points, UART framing abuse, 50-router broadcast storms) for an SMLIGHT coordinator model or'all'.Do NOT use for sizing a user's specific mesh node count (
check_coordinator_capacity) or diagnosing pasted log text (analyze_zigbee_thread_log).
Behavior:
Executes deterministically offline with zero network or hardware I/O.
Raises
ValueErrorifplatformdoes not match a supported SMLIGHT SKU or'all'.
Inputs: platform (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool targets a clearly distinct input type and task: numeric capacity sizing, hex register words, pasted runtime logs, and static benchmark lookup. Every description explicitly enumerates what to use it for and names the sibling tools it must not be confused with, leaving essentially no overlap.
All four names are snake_case and follow a verb_noun pattern (check_, decode_, analyze_, get_) with domain-specific nouns. No style mixing or vague verbs.
Four tools for a narrow offline RF/Zigbee diagnostics domain, each covering a genuinely separate diagnostic facet (sizing, register decode, log triage, benchmarks). Nothing redundant and nothing that feels like padding.
The surface covers the main offline diagnostic workflows — capacity planning, silicon register decoding, log fault triage, and hardware benchmarks — with no dangling cross-references. Minor gaps remain, such as firmware/config compatibility validation or any live serial/ZNP command inspection path, which agents would have to work around manually.
Maintenance
Related MCP Connectors
Offline log parsing, CI failures, HTTP capture analysis and bounded JSON configuration validation.
DNS, email auth, TLS, BGP/RPKI, WHOIS and subnet tools with plain-English fixes, plus webhook URLs.
x402 LLM proxy + data-enriched analysis (17 sources) + TimesFM predictive IoT intelligence.
Public DNS, mail, TLS, and web diagnostics plus Looking Glass probes via remote MCP.
Related MCP Servers
- AlicenseAqualityAmaintenanceA comprehensive MCP server that enables AI assistants to interact with Home Assistant, control smart home devices, query states, execute services, and manage automations via natural language.77196,503 PyPI5,847MIT
- AlicenseAqualityBmaintenanceAgentic Hardware-in-the-Loop (Agentic HIL) lets coding agents develop firmware on real embedded boards: flash, reset, read UART and exchange CAN traffic, diagnose and fix. Local, policy-gated MCP tools support OpenOCD, pyOCD and STM32CubeProgrammer, with pytest for CI.4425Apache 2.0
- FlicenseNot gradedqualityDmaintenanceAI sysadmin for Home Assistant that provides entity health analysis, automation diagnostics, dashboard analysis, configuration search, and system health scoring via the Model Context Protocol.-
- AlicenseAqualityCmaintenanceMCP server for administering a Zigbee2MQTT estate, enabling mesh health monitoring, device management, firmware updates, pairing, binding, and reporting via natural language.17113 npm36MIT