Skip to main content
Glama
ZeroStack RF Diagnostics MCP

ZeroStack RF Diagnostics MCP

Official

decode_silicon_register

Read-onlyIdempotent

Decode hexadecimal MCU register and radio-core status words into bitfields to diagnose TI SimpleLink F2, Silicon Labs EFR32, and ARM Cortex-M faults from SWD, crash dumps, or telemetry.

Instructions

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_CFSR 0xE000ED28, SCB_HFSR 0xE000ED2C) 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 healthy status, root-cause diagnosis, and links to silicon errata notes; raises ValueError on unsupported chip or register_or_addr identifiers or unparseable hex_value strings.

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": {
      "chip": "<chip>",
      "register_or_addr": "<register_or_addr>",
      "hex_value": "<hex_value>"
    },
    "name": "decode_silicon_register"
  }
}

Input Schema

NameRequiredDescriptionDefault
chipYesTarget MCU family, SoC part number, SMLIGHT coordinator SKU, or ARM Cortex-M core token (case-insensitive). Accepted TI SimpleLink F2 tokens: `'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 tokens: `'EFR32'`, `'EFR32MG21'`, `'EFR32MG24'`, `'MG21'`, `'MG24'`, `'SILABS'`, `'EMBER'`, `'SLZB-06M'`, `'SLZB-06Mg24'`. Accepted universal ARM SCB fault tokens: `'ARM'`, `'CORTEX-M'`, `'CORTEX-M4'`, `'CORTEX-M33'`.
hex_valueYesObserved 16-bit or 32-bit register or radio command status value as a hexadecimal string (with or without `'0x'` prefix, e.g. `'0x0807'`, `'0x2401'`, `'0x00000028'`, `'0x00008200'`, `'0x40000000'`).
register_or_addrYesRegister symbol, radio command name, or MMIO hex address supported for `chip` (case-insensitive). TI SimpleLink F2 values: `'CMD_IEEE_RX'`, `'CMD_IEEE_CSMA'`, `'RFC_DBELL'` (`'0x40041014'`), `'SRCMATCH'` (`'RFC_RAM'`, `'0x21000000'`), `'VIMS'` (`'0x40034000'`), `'PRCM'` (`'0x400821D4'`, `'0x580821D4'`, `'0x480821D4'`), `'UART0_FR'` (`'0x40001018'`), `'UART0_RSR'` (`'UART0_ECR'`, `'0x40001004'`), `'UART0_CTL'` (`'0x40001030'`), `'IOCFG'` (`'IOCFG0'`..`'IOCFG47'`, `'0x40081000'`..`'0x400810BC'`), `'AON_PMCTL_RESETCTL'` (`'RESETCTL'`, `'0x40090028'`, `'0x58090028'`, `'0x48090028'`). Silicon Labs EFR32 values: `'EUSART0_IF'` (`'0x5B01004C'`, `'0x4B01004C'`), `'USART0_IF'` (`'0x50058048'` / `'0x40058048'` on MG21, `'0x5005C048'` / `'0x4005C048'` on MG24), `'USART0_STATUS'` (`'0x50058018'` / `'0x40058018'` on MG21, `'0x5005C018'` / `'0x4005C018'` on MG24), `'EMU_RSTCAUSE'` (`'RSTCAUSE'`, `'0x50004094'`, `'0x40004094'`). Universal ARM Cortex-M4/M33 values (accepted on F2, EFR32, or `'ARM'`/`'CORTEX-M'`): `'SCB_CFSR'` (`'CFSR'`, `'0xE000ED28'`), `'SCB_HFSR'` (`'HFSR'`, `'0xE000ED2C'`).

Output Schema

NameRequiredDescriptionDefault
chipYes
addressYes
healthyYes
raw_hexYes
releaseYes
registerYes
bitfieldsYes
diagnosisYes
marketing_urlYes
silicon_note_urlYes
zeroStackDiagUrlYes
zerostack_repositoryYes
zero_stack_remediationNo
interactive_web_analyzer_urlYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv0.9.10
    • changedInput schema / properties / chip / description
      Previous value: -"Target MCU family, SoC part number, or SMLIGHT coordinator SKU (case-insensitive). Accepted TI SimpleLink F2 tokens: `'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 tokens: `'EFR32'`, `'EFR32MG21'`, `'EFR32MG24'`, `'MG21'`, `'MG24'`, `'SILABS'`, `'EMBER'`, `'SLZB-06M'`, `'SLZB-06Mg24'`."New value: +"Target MCU family, SoC part number, SMLIGHT coordinator SKU, or ARM Cortex-M core token (case-insensitive). Accepted TI SimpleLink F2 tokens: `'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 tokens: `'EFR32'`, `'EFR32MG21'`, `'EFR32MG24'`, `'MG21'`, `'MG24'`, `'SILABS'`, `'EMBER'`, `'SLZB-06M'`, `'SLZB-06Mg24'`. Accepted universal ARM SCB fault tokens: `'ARM'`, `'CORTEX-M'`, `'CORTEX-M4'`, `'CORTEX-M33'`."
    • changedInput schema / properties / chip / examples
      Previous value: -[
      -  "CC2652P7",
      -  "SLZB-06P10",
      -  "EFR32MG21"
      -]New value: +[
      +  "CC2652P7",
      +  "SLZB-06P10",
      +  "EFR32MG21",
      +  "CORTEX-M33"
      +]
    • changedInput schema / properties / hex_value / description
      Previous value: -"Observed 16-bit or 32-bit register or radio command status value as a hexadecimal string (with or without `'0x'` prefix, e.g. `'0x0807'`, `'0x2401'`, `'0x00000001'`, `'0xFFFFFFFF'`, `'0x08'`)."New value: +"Observed 16-bit or 32-bit register or radio command status value as a hexadecimal string (with or without `'0x'` prefix, e.g. `'0x0807'`, `'0x2401'`, `'0x00000028'`, `'0x00008200'`, `'0x40000000'`)."
    • changedInput schema / properties / hex_value / examples
      Previous value: -[
      -  "0x0807",
      -  "0x2401",
      -  "0x00000001",
      -  "0xFFFFFFFF",
      -  "0x08"
      -]New value: +[
      +  "0x0807",
      +  "0x2401",
      +  "0x00000028",
      +  "0x20006011",
      +  "0x00008200",
      +  "0x40000000"
      +]
    • changedInput schema / properties / register_or_addr / description
      Previous value: -"Register symbol, radio command name, or MMIO hex address supported for `chip` (case-insensitive). Accepted TI SimpleLink F2 values: `'CMD_IEEE_RX'` (`'IEEERX'`, `'RX_STATUS'`), `'CMD_IEEE_CSMA'` (`'IEEECSMA'`, `'CSMA'`), `'RFC_DBELL'` (`'RFCPEIEN'`, `'0x40041014'`), `'SRCMATCH'` (`'SRC_MATCH'`, `'RFC_RAM'`, `'0x20001060'`), `'VIMS'` (`'VIMS_STAT'`, `'0x40034000'`), `'PRCM'` (`'PRCM_RFCMODEHWOPT'`, `'0x400821D0'`). Accepted Silicon Labs EFR32 values: `'EUSART0_IF'` (`'EUSART0:IF'`, `'EUSART'`)."New value: +"Register symbol, radio command name, or MMIO hex address supported for `chip` (case-insensitive). TI SimpleLink F2 values: `'CMD_IEEE_RX'`, `'CMD_IEEE_CSMA'`, `'RFC_DBELL'` (`'0x40041014'`), `'SRCMATCH'` (`'RFC_RAM'`, `'0x21000000'`), `'VIMS'` (`'0x40034000'`), `'PRCM'` (`'0x400821D4'`, `'0x580821D4'`, `'0x480821D4'`), `'UART0_FR'` (`'0x40001018'`), `'UART0_RSR'` (`'UART0_ECR'`, `'0x40001004'`), `'UART0_CTL'` (`'0x40001030'`), `'IOCFG'` (`'IOCFG0'`..`'IOCFG47'`, `'0x40081000'`..`'0x400810BC'`), `'AON_PMCTL_RESETCTL'` (`'RESETCTL'`, `'0x40090028'`, `'0x58090028'`, `'0x48090028'`). Silicon Labs EFR32 values: `'EUSART0_IF'` (`'0x5B01004C'`, `'0x4B01004C'`), `'USART0_IF'` (`'0x50058048'` / `'0x40058048'` on MG21, `'0x5005C048'` / `'0x4005C048'` on MG24), `'USART0_STATUS'` (`'0x50058018'` / `'0x40058018'` on MG21, `'0x5005C018'` / `'0x4005C018'` on MG24), `'EMU_RSTCAUSE'` (`'RSTCAUSE'`, `'0x50004094'`, `'0x40004094'`). Universal ARM Cortex-M4/M33 values (accepted on F2, EFR32, or `'ARM'`/`'CORTEX-M'`): `'SCB_CFSR'` (`'CFSR'`, `'0xE000ED28'`), `'SCB_HFSR'` (`'HFSR'`, `'0xE000ED2C'`)."
    • changedInput schema / properties / register_or_addr / examples
      Previous value: -[
      -  "CMD_IEEE_RX",
      -  "RFC_DBELL",
      -  "0x40041014",
      -  "SRCMATCH",
      -  "EUSART0_IF"
      -]New value: +[
      +  "CMD_IEEE_RX",
      +  "RFC_DBELL",
      +  "UART0_FR",
      +  "IOCFG11",
      +  "AON_PMCTL_RESETCTL",
      +  "EUSART0_IF",
      +  "EMU_RSTCAUSE",
      +  "SCB_CFSR"
      +]
  2. Changed6 schema fields changedv0.1.1
    • addedInput schema / properties / chip / description
      Added value: +"Target MCU family, SoC part number, or SMLIGHT coordinator SKU (case-insensitive). Accepted TI SimpleLink F2 tokens: `'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 tokens: `'EFR32'`, `'EFR32MG21'`, `'EFR32MG24'`, `'MG21'`, `'MG24'`, `'SILABS'`, `'EMBER'`, `'SLZB-06M'`, `'SLZB-06Mg24'`."
    • addedInput schema / properties / chip / examples
      Added value: +[
      +  "CC2652P7",
      +  "SLZB-06P10",
      +  "EFR32MG21"
      +]
    • addedInput schema / properties / hex_value / description
      Added value: +"Observed 16-bit or 32-bit register or radio command status value as a hexadecimal string (with or without `'0x'` prefix, e.g. `'0x0807'`, `'0x2401'`, `'0x00000001'`, `'0xFFFFFFFF'`, `'0x08'`)."
    • addedInput schema / properties / hex_value / examples
      Added value: +[
      +  "0x0807",
      +  "0x2401",
      +  "0x00000001",
      +  "0xFFFFFFFF",
      +  "0x08"
      +]
    • addedInput schema / properties / register_or_addr / description
      Added value: +"Register symbol, radio command name, or MMIO hex address supported for `chip` (case-insensitive). Accepted TI SimpleLink F2 values: `'CMD_IEEE_RX'` (`'IEEERX'`, `'RX_STATUS'`), `'CMD_IEEE_CSMA'` (`'IEEECSMA'`, `'CSMA'`), `'RFC_DBELL'` (`'RFCPEIEN'`, `'0x40041014'`), `'SRCMATCH'` (`'SRC_MATCH'`, `'RFC_RAM'`, `'0x20001060'`), `'VIMS'` (`'VIMS_STAT'`, `'0x40034000'`), `'PRCM'` (`'PRCM_RFCMODEHWOPT'`, `'0x400821D0'`). Accepted Silicon Labs EFR32 values: `'EUSART0_IF'` (`'EUSART0:IF'`, `'EUSART'`)."
    • addedInput schema / properties / register_or_addr / examples
      Added value: +[
      +  "CMD_IEEE_RX",
      +  "RFC_DBELL",
      +  "0x40041014",
      +  "SRCMATCH",
      +  "EUSART0_IF"
      +]
  3. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so 'deterministic offline with zero hardware or network I/O' largely corroborates them. The description does add genuinely new behavior beyond the annotations: the failure mode (raises ValueError on unsupported chip or register_or_addr, or unparseable hex_value) and the payload shape (bitfield flags, boolean healthy status, root-cause diagnosis, errata links). No contradiction with the declared safety profile.

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?

Well front-loaded and cleanly sectioned into 'When to use' and 'Behavior', with the disambiguation before the mechanics. Minor deduction because the long chip/register token enumeration in the description duplicates what the 100%-covered schema already provides, costing tokens without adding routing value.

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?

For a three-required-parameter read-only decoder, everything an agent needs is present: scope, exclusions, determinism, error conditions, and a pointer to the returned fields. Return-value detail is backed by an output schema, so the description need not expand it further.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already enumerates every accepted chip token and register symbol with aliases and MMIO addresses. The description's parameter-adjacent content (the chip and register lists in 'When to use') restates that enumeration rather than adding new semantics such as format expectations or normalization rules, so the baseline 3 applies.

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?

States a specific verb and resource: 'Decode a hexadecimal MCU register or radio-core command status word into bitfields.' The 'When to use' block names concrete register/chip families, and the exclusion sentence names the two siblings (analyze_zigbee_thread_log, check_coordinator_capacity) it is not, so an agent can route without opening the 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?

Explicit positive selection criteria tied to data provenance ('captured from SWD/JTAG, a crash dump, or telemetry') plus explicit negative guidance with named alternatives. Both the when and the when-not are stated rather than inferred.

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