Skip to main content
Glama
ZeroStack RF Diagnostics MCP

ZeroStack RF Diagnostics MCP

Official

check_coordinator_capacity

Read-onlyIdempotent

Calculate hardware SrcMatch slot use, pendAll promotion thresholds, and SRAM heap headroom for Zigbee coordinator capacity planning and topology sizing by device, sleepy end-device, and chip family.

Instructions

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-slot RFC_RAM SrcMatch exhaustion, pendAll (FP=1) promotion when sleepy_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 fetching DWT->CYCCNT latency benchmarks (get_zerostack_benchmarks).

Behavior:

  • Executes deterministically offline; derives router_count = device_count - sleepy_zed_count.

  • Raises ValueError if device_count < 0, sleepy_zed_count < 0, sleepy_zed_count > device_count, or chip_family is unrecognized.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "device_count": "<device_count>",
      "sleepy_zed_count": "<sleepy_zed_count>",
      "chip_family": "<chip_family>"
    },
    "name": "check_coordinator_capacity"
  }
}

Input Schema

NameRequiredDescriptionDefault
chip_familyYesCoordinator SoC family or SMLIGHT model identifier (case-insensitive). Accepted TI SimpleLink F2 values: `'F2_CC1352_CC2652'`, `'F2'`, `'CC2652P'`, `'CC2652P7'`, `'CC1352P7'`, `'CC2674P10'`, `'P7'`, `'P10'`, `'SLZB-06'`, `'SLZB-06U'`, `'SLZB-06P7'`, `'SLZB-06P7U'`, `'SLZB-06P7v1'`, `'SLZB-07P7'`, `'SLZB-06P10'`, `'SLZB-07P10'`. Accepted Silicon Labs EFR32 values: `'SILABS_EFR32'`, `'EFR32'`, `'EFR32MG21'`, `'EFR32MG24'`, `'MG21'`, `'MG24'`, `'SILABS'`, `'EMBER'`, `'SLZB-06M'`, `'SLZB-06Mg24'`.
device_countYesTotal Zigbee nodes joined to the mesh network (mains-powered routers + battery-powered sleepy end devices, excluding the coordinator itself). Must be an integer >= 0 and >= `sleepy_zed_count`.
sleepy_zed_countYesNumber of battery-powered / RX-off-when-idle Zigbee End Devices (ZEDs) directly parented to the coordinator that occupy hardware `SrcMatch` indirect-queue slots. Must satisfy `0 <= sleepy_zed_count <= device_count`.

Output Schema

NameRequiredDescriptionDefault
releaseYes
chip_familyYes
device_countYes
router_countYes
marketing_urlYes
sleepy_zed_countYes
zeroStackDiagUrlYes
documentation_urlYes
pend_all_behaviorYes
ram_heap_headroomYes
coordinator_platformYes
zerostack_repositoryYes
srcmatch_hardware_tableYes
zerostack_support_statusNo
interactive_web_analyzer_urlYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv0.1.1
    • addedInput schema / properties / chip_family / description
      Added value: +"Coordinator SoC family or SMLIGHT model identifier (case-insensitive). Accepted TI SimpleLink F2 values: `'F2_CC1352_CC2652'`, `'F2'`, `'CC2652P'`, `'CC2652P7'`, `'CC1352P7'`, `'CC2674P10'`, `'P7'`, `'P10'`, `'SLZB-06'`, `'SLZB-06U'`, `'SLZB-06P7'`, `'SLZB-06P7U'`, `'SLZB-06P7v1'`, `'SLZB-07P7'`, `'SLZB-06P10'`, `'SLZB-07P10'`. Accepted Silicon Labs EFR32 values: `'SILABS_EFR32'`, `'EFR32'`, `'EFR32MG21'`, `'EFR32MG24'`, `'MG21'`, `'MG24'`, `'SILABS'`, `'EMBER'`, `'SLZB-06M'`, `'SLZB-06Mg24'`."
    • addedInput schema / properties / chip_family / examples
      Added value: +[
      +  "F2_CC1352_CC2652",
      +  "SLZB-06P7",
      +  "SLZB-06P10",
      +  "SILABS_EFR32",
      +  "EFR32MG21"
      +]
    • addedInput schema / properties / device_count / description
      Added value: +"Total Zigbee nodes joined to the mesh network (mains-powered routers + battery-powered sleepy end devices, excluding the coordinator itself). Must be an integer >= 0 and >= `sleepy_zed_count`."
    • addedInput schema / properties / device_count / examples
      Added value: +[
      +  45,
      +  120,
      +  180
      +]
    • addedInput schema / properties / device_count / minimum
      Added value: +0
    • addedInput schema / properties / sleepy_zed_count / description
      Added value: +"Number of battery-powered / RX-off-when-idle Zigbee End Devices (ZEDs) directly parented to the coordinator that occupy hardware `SrcMatch` indirect-queue slots. Must satisfy `0 <= sleepy_zed_count <= device_count`."
    • addedInput schema / properties / sleepy_zed_count / examples
      Added value: +[
      +  20,
      +  36
      +]
    • addedInput schema / properties / sleepy_zed_count / minimum
      Added value: +0
  2. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/closed-world, so the description isn't carrying safety disclosure. It adds genuinely new behavior: deterministic offline execution, the derived `router_count = device_count - sleepy_zed_count`, and the four `ValueError` conditions that would otherwise only surface at call time. A brief note on what the returned capacity verdict means would earn the fifth point, but the output schema presumably covers that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the purpose, then cleanly sectioned into 'When to use', explicit exclusions, and 'Behavior' — easy to scan. The heavy backtick identifier formatting and enumerated thresholds add some visual noise, but nearly every clause carries operational information rather than restating the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations cover the safety profile, the schema fully documents all three required parameters, and an output schema exists so return values need no prose. Combined with the error conditions and derivation logic, an agent has everything required to call this correctly and interpret failures.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter descriptions are already rich (accepted chip_family aliases, minimums, constraints), so the baseline would be 3. The description goes beyond the schema by tying `sleepy_zed_count > 32` to pendAll promotion and by explaining the router_count derivation, which clarifies how the two counts interact semantically.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific verb ('Calculate') and three concrete outputs (SrcMatch slot utilization, pendAll threshold, SRAM heap headroom), and the 'Do NOT use' list names the three sibling tools that cover adjacent domains. An agent can distinguish this from analyze_zigbee_thread_log or decode_silicon_register without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the exact input tuple `(device_count, sleepy_zed_count, chip_family)` that selects this tool, describes the planning scenario it serves, and explicitly excludes three named alternatives with the reason each is wrong. Both the when and the when-not are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.