Skip to main content
Glama

Bitcoin Stratigraphy Enterprise Data Engine & Agent Notary Hub

Broadcast Telemetry Snapshot to Mesh

mesh.broadcast

Broadcast local telemetry snapshots and stratigraphy receipts to peer nodes across the Stratigraphy mesh network. Use this tool to propagate sovereign node state, sync multi-agent clusters, or announce new block validation events. Use mesh.get_status to inspect local peer connectivity before broadcasting. Requires network authorization or L402 settlement token. Live L402 Satoshi settlement: a configured NWC wallet issues the exact-priced Lightning invoice; paid execution requires confirmed incoming settlement and an invoice-bound payment proof. Handle HTTP 402, pay explicitly, then retry the identical request with Authorization: L402 :. Invoice creation alone is not payment; unavailable verification does not authorize execution.

Input Schema

NameRequiredDescriptionDefault
payloadYesUTC date selector for an existing telemetry record submitted for peer attestation, not a caller-supplied record object; for example, {"date":"2026-09-09"}.
agentEventNoOptional NIP-01 kind 20079 signature over JSON.stringify({networkId,date}) for this exact date selector. The signer must have a trusted mesh attestation. Example: a complete signed event with a matching date.
signalTypeYesEnforces the broadcast event schema; must be telemetry_snapshot to trigger peer validation, not an arbitrary signal. Constraints: allowed values: telemetry_snapshot. Example: "telemetry_snapshot".

Output Schema

NameRequiredDescriptionDefault
dateYesUTC date of the distributed telemetry record. Constraints: format: date. Example: "2026-09-09".
networkIdYesMesh network identifier committed in peer attestations. Example: "bitcoin-stratigraphy-mainnet-v1".
merkleRootYesMerkle root of local and peer attestation event identifiers. Constraints: pattern: ^[0-9a-f]{64}$. Example: "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd".
signalTypeYesSignal distributed to configured peers. Constraints: allowed values: telemetry_snapshot. Example: "telemetry_snapshot".
agentPubkeyNoPresent only when an agent-signed session was verified and accepted by the peer mesh. Constraints: pattern: ^[0-9a-f]{64}$. Example: "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd".
snapshotDigestYesSHA-256 digest of the canonical mesh-encoded signed snapshot. Constraints: pattern: ^[0-9a-f]{64}$. Example: "abababababababababababababababababababababababababababababababab".
quorumThresholdYesRequired total attestation count, including this node. Constraints: minimum: 1. Example: 2.
peerAttestationsYesNumber of remote pinned peers whose signatures were verified; excludes this node. Constraints: minimum: 1. Example: 1.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / payload / properties / date / description
      Previous value: -"UTC calendar date of the existing record to distribute, formatted YYYY-MM-DD. Constraints: format: date; pattern: ^\\d{4}-\\d{2}-\\d{2}$. Example: \"2026-09-09\"."New value: +"Required UTC date of an existing indexed record (YYYY-MM-DD, e.g. '2026-09-09'); selects the stored snapshot signed for peer validation, not a caller-supplied payload. Constraints: format: date; pattern: ^\\d{4}-\\d{2}-\\d{2}$. Example: \"2026-09-09\"."
  2. Changed2 schema fields changed
    • addedInput schema / properties / agentEvent
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Optional NIP-01 kind 20079 signature over JSON.stringify({networkId,date}) for this exact date selector. The signer must have a trusted mesh attestation. Example: a complete signed event with a matching date.",
      +  "examples": [
      +    {
      +      "content": "{\"networkId\":\"bitcoin-stratigraphy-mainnet-v1\",\"date\":\"2026-09-09\"}",
      +      "created_at": 1790000000,
      +      "id": "abababababababababababababababababababababababababababababababab",
      +      "kind": 20079,
      +      "pubkey": "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
      +      "sig": "efefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefef",
      +      "tags": []
      +    }
      +  ],
      +  "properties": {
      +    "content": {
      +      "description": "Exact JSON.stringify({networkId,date}) session binding. Example: \"{\\\"networkId\\\":\\\"bitcoin-stratigraphy-mainnet-v1\\\",\\\"date\\\":\\\"2026-09-09\\\"}\".",
      +      "example": "{\"networkId\":\"bitcoin-stratigraphy-mainnet-v1\",\"date\":\"2026-09-09\"}",
      +      "examples": [
      +        "{\"networkId\":\"bitcoin-stratigraphy-mainnet-v1\",\"date\":\"2026-09-09\"}"
      +      ],
      +      "type": "string"
      +    },
      +    "created_at": {
      +      "description": "Unix event timestamp in seconds. Example: 1790000000.",
      +      "example": 1790000000,
      +      "examples": [
      +        1790000000
      +      ],
      +      "type": "integer"
      +    },
      +    "id": {
      +      "description": "NIP-01 event hash. Constraints: pattern: ^[0-9a-f]{64}$. Example: \"abababababababababababababababababababababababababababababababab\".",
      +      "example": "abababababababababababababababababababababababababababababababab",
      +      "examples": [
      +        "abababababababababababababababababababababababababababababababab"
      +      ],
      +      "pattern": "^[0-9a-f]{64}$",
      +      "type": "string"
      +    },
      +    "kind": {
      +      "const": 20079,
      +      "description": "Agent session event kind. Example: 20079.",
      +      "example": 20079,
      +      "examples": [
      +        20079
      +      ],
      +      "type": "integer"
      +    },
      +    "pubkey": {
      +      "description": "Signing agent Nostr pubkey. Constraints: pattern: ^[0-9a-f]{64}$. Example: \"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd\".",
      +      "example": "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
      +      "examples": [
      +        "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
      +      ],
      +      "pattern": "^[0-9a-f]{64}$",
      +      "type": "string"
      +    },
      +    "sig": {
      +      "description": "Schnorr signature over the NIP-01 event. Constraints: pattern: ^[0-9a-f]{128}$. Example: \"efefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefef\".",
      +      "example": "efefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefef",
      +      "examples": [
      +        "efefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefef"
      +      ],
      +      "pattern": "^[0-9a-f]{128}$",
      +      "type": "string"
      +    },
      +    "tags": {
      +      "description": "NIP-01 string tag arrays. Example: [].",
      +      "examples": [
      +        []
      +      ],
      +      "items": {
      +        "description": "One NIP-01 tag. Example: [\"t\",\"session\"].",
      +        "examples": [
      +          [
      +            "t",
      +            "session"
      +          ]
      +        ],
      +        "items": {
      +          "description": "One string tag element. Example: \"session\".",
      +          "example": "session",
      +          "examples": [
      +            "session"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "pubkey",
      +    "sig",
      +    "kind",
      +    "created_at",
      +    "tags",
      +    "content"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / agentPubkey
      Added value: +{
      +  "description": "Present only when an agent-signed session was verified and accepted by the peer mesh. Constraints: pattern: ^[0-9a-f]{64}$. Example: \"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd\".",
      +  "example": "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
      +  "examples": [
      +    "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
      +  ],
      +  "pattern": "^[0-9a-f]{64}$",
      +  "type": "string"
      +}
  3. Changed2 schema fields changed
    • changedInput schema / properties / payload / description
      Previous value: -"Select one existing UTC-dated telemetry record; for example, {\"date\":\"2026-09-09\"}."New value: +"UTC date selector for an existing telemetry record submitted for peer attestation, not a caller-supplied record object; for example, {\"date\":\"2026-09-09\"}."
    • changedInput schema / properties / signalType / description
      Previous value: -"Only telemetry_snapshot is supported; this sends one canonical record rather than accepting arbitrary signals. Constraints: allowed values: telemetry_snapshot. Example: \"telemetry_snapshot\"."New value: +"Enforces the broadcast event schema; must be telemetry_snapshot to trigger peer validation, not an arbitrary signal. Constraints: allowed values: telemetry_snapshot. Example: \"telemetry_snapshot\"."
  4. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations declare a write, open-world, non-idempotent operation, and the description goes well beyond that: it requires network authorization or an L402 settlement token, spells out the HTTP 402 -> pay -> retry-with-Authorization flow, and warns that invoice creation alone is not payment and unverified settlement does not authorize execution. This is exactly the kind of behavioral detail annotations cannot convey.

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?

Purpose and routing are front-loaded, and every sentence is functional. The L402 passage is dense and somewhat run-on, but each clause carries a necessary constraint rather than filler.

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?

With an output schema present and full schema coverage, the description only needs to cover context the structured fields cannot: authorization, payment settlement semantics, and failure/retry behavior, all of which it does thoroughly.

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 documents payload.date, agentEvent, and the signalType enum in depth. The description does not add syntax or format meaning beyond what the schema provides, so the baseline of 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?

The first sentence states a specific verb and resource: broadcast telemetry snapshots and stratigraphy receipts to peer nodes across the mesh. It is clearly distinguishable from sibling read tools like mesh.get_status and the stratigraphy.get* family.

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 enumerates concrete use cases (propagate sovereign node state, sync multi-agent clusters, announce block validation events) and explicitly names mesh.get_status as the prerequisite inspection step before broadcasting. No alternative is left ambiguous.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources