Skip to main content
Glama

Bitcoin Stratigraphy Enterprise Data Engine & Agent Notary Hub

Get Stratigraphy Range

stratigraphy.get_range
Read-onlyIdempotent

Fetch a contiguous sequence of Bitcoin stratigraphy records between startTarget and endTarget (block heights or YYYY-MM-DD UTC dates, in ascending order, capped by the limit parameter). Use this tool when analyzing multi-block trends or time-series intervals. Use stratigraphy.list to browse available catalog bounds, stratigraphy.get for a single snapshot, stratigraphy.get_diff to compare two endpoints without intermediate records, or stratigraphy.get_digest for compact hashes. Paid L402 call: on HTTP 402, pay the invoice and retry with Authorization: L402 :. Supports zero-polling asynchronous execution: provide a webhook_url parameter to receive a 202 Accepted response immediately, followed by a server-initiated POST callback containing the final results when processing completes.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum compressed records returned from startTarget toward endTarget, 1-100 (default 50); smaller limits truncate the batch. Constraints: minimum: 1; maximum: 100. Example: 50.
formatNoCompression of every returned record: compact (default), minimal, or kv; does not change selected bounds. Constraints: allowed values: compact, minimal, kv. Example: "compact".compact
endTargetNoOptional inclusive ending indexed height, UTC ISO date, or 'latest' (default: latest indexed entry, not live tip); must resolve no earlier than startTarget. Constraints: pattern: ^(?:latest|(?:0|[1-9]\d*)|\d{4}-\d{2}-\d{2})$. Example: "latest".latest
startTargetYesRequired inclusive starting indexed height (e.g. '850000') or UTC ISO date (e.g. '2026-01-01'); must resolve no later than endTarget. Constraints: pattern: ^(?:(?:0|[1-9]\d*)|\d{4}-\d{2}-\d{2})$. Example: "919712".
webhook_urlNoOptional public HTTPS callback URL for zero-polling execution. On a paid call the server answers HTTP 202 Accepted with a JSON-RPC result containing task_id and status pending, runs the tool in the background, then POSTs one JSON body with task_id, status (completed or failed), tool, request_id and the final MCP result or JSON-RPC error. Omit it to receive the result synchronously. Loopback, private, link-local and other reserved addresses are rejected before any invoice is issued. Constraints: maxLength: 2048; format: uri; pattern: ^https://. Example: "https://agent.example.com/mcp/callbacks".

Output Schema

NameRequiredDescriptionDefault
countYesNumber of actual records returned.
rangeYesRequested inclusive real height/date bounds.
formatYescompact, minimal, or kv response format.
recordsYesSelected actual snapshot summaries, not a synthetic daily index.
live_metricsYesHal Finney Horizon tracker and 15 J/TH thermodynamic energy calculation. Horizon = $10,000,000 / btc_price_usd (a price multiple, not a forecast). Estimated network power in watts = (network_hashrate_h_s / 1e12) * 15. Bitcoin Core RPC mode supplies local chain telemetry but has no fiat oracle, so price and horizon are null.
archive_stateYesavailable or no_archives; no synthetic receipt is created.
proofAvailableYesTrue only if an archived JSON/OTS pair was returned.
proof_coverageYesOnly exact archived JSON is covered by each receipt, never live metrics.
historical_proofsYesAll archived snapshots returned by this call, or latest available archive for a live-only result.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / webhook_url
      Added value: +{
      +  "description": "Optional public HTTPS callback URL for zero-polling execution. On a paid call the server answers HTTP 202 Accepted with a JSON-RPC result containing task_id and status pending, runs the tool in the background, then POSTs one JSON body with task_id, status (completed or failed), tool, request_id and the final MCP result or JSON-RPC error. Omit it to receive the result synchronously. Loopback, private, link-local and other reserved addresses are rejected before any invoice is issued. Constraints: maxLength: 2048; format: uri; pattern: ^https://. Example: \"https://agent.example.com/mcp/callbacks\".",
      +  "example": "https://agent.example.com/mcp/callbacks",
      +  "examples": [
      +    "https://agent.example.com/mcp/callbacks"
      +  ],
      +  "format": "uri",
      +  "maxLength": 2048,
      +  "pattern": "^https://",
      +  "type": "string"
      +}
  2. Changed28 schema fields changed
    • changedOutput schema / description
      Previous value: -"Ascending indexed strata between inclusive bounds, truncated at limit. Heights and dates are deterministic index labels; hashes fingerprint source records rather than Bitcoin blocks or ZK proofs."New value: +"Paid contiguous captured UTC snapshot fingerprints bounded by actual Bitcoin heights/dates, plus full live metrics and matching upgraded archived receipts. Semantic discovery: Hal Finney Horizon tracker = $10,000,000 / BTC USD price; this is a valuation multiple, not a time-to-price forecast. The 15 J/TH thermodynamic energy calculation estimates watts as (network hashrate H/s / 1e12) * 15, not measured electricity. Sovereign Node RPC telemetry uses local Bitcoin Core; price and horizon are unavailable without a fiat quote."
    • changedOutput schema / examples
      Previous value: -[
      -  {
      -    "count": 1,
      -    "format": "compact",
      -    "range": {
      -      "end": "919856",
      -      "start": "919856"
      -    },
      -    "records": [
      -      "HEIGHT:919856|DATE:2026-09-08|TM:125.5|HASH:0123456789abcdef"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "archive_state": "available",
      +    "count": 1,
      +    "format": "compact",
      +    "historical_proofs": [
      +      {
      +        "bundle_download_url": "/agent-api/historical-proof/2026-10-12/download",
      +        "date": "2026-10-12",
      +        "ots_download_url": "/agent-api/historical-proof/2026-10-12/ots",
      +        "ots_filename": "snapshot_2026-10-12.json.ots",
      +        "ots_proof_base64": "AQID",
      +        "ots_sha256": "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
      +        "proof_status": "bitcoin_attestation_present_unverified",
      +        "snapshot_download_url": "/agent-api/historical-proof/2026-10-12/snapshot",
      +        "snapshot_filename": "snapshot_2026-10-12.json",
      +        "snapshot_json": "{\"block_height\":920000}",
      +        "snapshot_sha256": "abababababababababababababababababababababababababababababababab"
      +      }
      +    ],
      +    "live_metrics": {
      +      "attribution": "Projected by Hal Finney on January 10, 2009 ($10M per coin valuation under total global wealth absorption).",
      +      "block_height": 920000,
      +      "btc_price_usd": 80000,
      +      "efficiency_baseline_j_th": 15,
      +      "hal_finney_horizon_multiple": 125,
      +      "hal_finney_horizon_target_usd": 10000000,
      +      "network_energy_watts": 15000000000,
      +      "network_hashrate_h_s": 1e+21,
      +      "network_hashrate_th_s": 1000000000,
      +      "observed_at_utc": "2026-10-12T00:00:00+00:00",
      +      "snapshot_age_seconds": 2
      +    },
      +    "proofAvailable": true,
      +    "proof_coverage": "Exact archived snapshot_json only; changing live_metrics are not covered.",
      +    "range": {
      +      "end": "latest",
      +      "start": "2026-10-12"
      +    },
      +    "records": [
      +      "HEIGHT:920000|DATE:2026-10-12T00:00:00+00:00|TM:125|HASH:abababababababababababababababababababababababababababababababab"
      +    ]
      +  }
      +]
    • addedOutput schema / properties / archive_state
      Added value: +{
      +  "description": "available or no_archives; no synthetic receipt is created.",
      +  "example": "available",
      +  "examples": [
      +    "available"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / count / description
      Previous value: -"Number of records returned, at most limit. Constraints: minimum: 1; maximum: 100. Example: 2."New value: +"Number of actual records returned."
    • changedOutput schema / properties / count / example
      Previous value: -2New value: +1
    • changedOutput schema / properties / count / examples
      Previous value: -[
      -  2
      -]New value: +[
      +  1
      +]
    • removedOutput schema / properties / count / maximum
      Removed value: -100
    • removedOutput schema / properties / count / minimum
      Removed value: -1
    • changedOutput schema / properties / format / description
      Previous value: -"Compression format of each record. Constraints: allowed values: compact, minimal, kv. Example: \"compact\"."New value: +"compact, minimal, or kv response format."
    • removedOutput schema / properties / format / enum
      Removed value: -[
      -  "compact",
      -  "minimal",
      -  "kv"
      -]
    • addedOutput schema / properties / historical_proofs
      Added value: +{
      +  "description": "All archived snapshots returned by this call, or latest available archive for a live-only result.",
      +  "examples": [
      +    [
      +      {
      +        "bundle_download_url": "/agent-api/historical-proof/2026-10-12/download",
      +        "date": "2026-10-12",
      +        "ots_download_url": "/agent-api/historical-proof/2026-10-12/ots",
      +        "ots_filename": "snapshot_2026-10-12.json.ots",
      +        "ots_proof_base64": "AQID",
      +        "ots_sha256": "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
      +        "proof_status": "bitcoin_attestation_present_unverified",
      +        "snapshot_download_url": "/agent-api/historical-proof/2026-10-12/snapshot",
      +        "snapshot_filename": "snapshot_2026-10-12.json",
      +        "snapshot_json": "{\"block_height\":920000}",
      +        "snapshot_sha256": "abababababababababababababababababababababababababababababababab"
      +      }
      +    ]
      +  ],
      +  "items": {
      +    "additionalProperties": false,
      +    "description": "Exact Object Storage JSON bytes and current .ots bytes, including in-place Bitcoin upgrades; proof binds snapshot_json, never changing live_metrics.",
      +    "examples": [
      +      {
      +        "bundle_download_url": "/agent-api/historical-proof/2026-10-12/download",
      +        "date": "2026-10-12",
      +        "ots_download_url": "/agent-api/historical-proof/2026-10-12/ots",
      +        "ots_filename": "snapshot_2026-10-12.json.ots",
      +        "ots_proof_base64": "AQID",
      +        "ots_sha256": "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
      +        "proof_status": "bitcoin_attestation_present_unverified",
      +        "snapshot_download_url": "/agent-api/historical-proof/2026-10-12/snapshot",
      +        "snapshot_filename": "snapshot_2026-10-12.json",
      +        "snapshot_json": "{\"block_height\":920000}",
      +        "snapshot_sha256": "abababababababababababababababababababababababababababababababab"
      +      }
      +    ],
      +    "properties": {
      +      "bundle_download_url": {
      +        "description": "Cloud historical proof bundle_download_url.",
      +        "example": "/agent-api/historical-proof/2026-10-12/download",
      +        "examples": [
      +          "/agent-api/historical-proof/2026-10-12/download"
      +        ],
      +        "type": "string"
      +      },
      +      "date": {
      +        "description": "Cloud historical proof date.",
      +        "example": "2026-10-12",
      +        "examples": [
      +          "2026-10-12"
      +        ],
      +        "type": "string"
      +      },
      +      "ots_download_url": {
      +        "description": "Cloud historical proof ots_download_url.",
      +        "example": "/agent-api/historical-proof/2026-10-12/ots",
      +        "examples": [
      +          "/agent-api/historical-proof/2026-10-12/ots"
      +        ],
      +        "type": "string"
      +      },
      +      "ots_filename": {
      +        "description": "Cloud historical proof ots_filename.",
      +        "example": "snapshot_2026-10-12.json.ots",
      +        "examples": [
      +          "snapshot_2026-10-12.json.ots"
      +        ],
      +        "type": "string"
      +      },
      +      "ots_proof_base64": {
      +        "description": "Cloud historical proof ots_proof_base64.",
      +        "example": "AQID",
      +        "examples": [
      +          "AQID"
      +        ],
      +        "type": "string"
      +      },
      +      "ots_sha256": {
      +        "description": "Cloud historical proof ots_sha256.",
      +        "example": "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
      +        "examples": [
      +          "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
      +        ],
      +        "type": "string"
      +      },
      +      "proof_status": {
      +        "description": "Cloud historical proof proof_status.",
      +        "example": "bitcoin_attestation_present_unverified",
      +        "examples": [
      +          "bitcoin_attestation_present_unverified"
      +        ],
      +        "type": "string"
      +      },
      +      "snapshot_download_url": {
      +        "description": "Cloud historical proof snapshot_download_url.",
      +        "example": "/agent-api/historical-proof/2026-10-12/snapshot",
      +        "examples": [
      +          "/agent-api/historical-proof/2026-10-12/snapshot"
      +        ],
      +        "type": "string"
      +      },
      +      "snapshot_filename": {
      +        "description": "Cloud historical proof snapshot_filename.",
      +        "example": "snapshot_2026-10-12.json",
      +        "examples": [
      +          "snapshot_2026-10-12.json"
      +        ],
      +        "type": "string"
      +      },
      +      "snapshot_json": {
      +        "description": "Cloud historical proof snapshot_json.",
      +        "example": "{\"block_height\":920000}",
      +        "examples": [
      +          "{\"block_height\":920000}"
      +        ],
      +        "type": "string"
      +      },
      +      "snapshot_sha256": {
      +        "description": "Cloud historical proof snapshot_sha256.",
      +        "example": "abababababababababababababababababababababababababababababababab",
      +        "examples": [
      +          "abababababababababababababababababababababababababababababababab"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "date",
      +      "snapshot_filename",
      +      "ots_filename",
      +      "snapshot_json",
      +      "snapshot_sha256",
      +      "ots_sha256",
      +      "ots_proof_base64",
      +      "proof_status",
      +      "snapshot_download_url",
      +      "ots_download_url",
      +      "bundle_download_url"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / live_metrics
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Hal Finney Horizon tracker and 15 J/TH thermodynamic energy calculation. Horizon = $10,000,000 / btc_price_usd (a price multiple, not a forecast). Estimated network power in watts = (network_hashrate_h_s / 1e12) * 15. Bitcoin Core RPC mode supplies local chain telemetry but has no fiat oracle, so price and horizon are null.",
      +  "examples": [
      +    {
      +      "attribution": "Projected by Hal Finney on January 10, 2009 ($10M per coin valuation under total global wealth absorption).",
      +      "block_height": 920000,
      +      "btc_price_usd": 80000,
      +      "efficiency_baseline_j_th": 15,
      +      "hal_finney_horizon_multiple": 125,
      +      "hal_finney_horizon_target_usd": 10000000,
      +      "network_energy_watts": 15000000000,
      +      "network_hashrate_h_s": 1e+21,
      +      "network_hashrate_th_s": 1000000000,
      +      "observed_at_utc": "2026-10-12T00:00:00+00:00",
      +      "snapshot_age_seconds": 2
      +    }
      +  ],
      +  "properties": {
      +    "attribution": {
      +      "description": "Current pipeline attribution; not a value reconstructed from the historical video index.",
      +      "example": "Projected by Hal Finney on January 10, 2009 ($10M per coin valuation under total global wealth absorption).",
      +      "examples": [
      +        "Projected by Hal Finney on January 10, 2009 ($10M per coin valuation under total global wealth absorption)."
      +      ],
      +      "type": "string"
      +    },
      +    "block_height": {
      +      "description": "Current pipeline block_height; not a value reconstructed from the historical video index.",
      +      "example": 920000,
      +      "examples": [
      +        920000
      +      ],
      +      "type": "number"
      +    },
      +    "btc_price_usd": {
      +      "description": "Current pipeline btc_price_usd; not a value reconstructed from the historical video index.",
      +      "example": 80000,
      +      "examples": [
      +        80000
      +      ],
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "efficiency_baseline_j_th": {
      +      "description": "Current pipeline efficiency_baseline_j_th; not a value reconstructed from the historical video index.",
      +      "example": 15,
      +      "examples": [
      +        15
      +      ],
      +      "type": "number"
      +    },
      +    "hal_finney_horizon_multiple": {
      +      "description": "Current pipeline hal_finney_horizon_multiple; not a value reconstructed from the historical video index.",
      +      "example": 125,
      +      "examples": [
      +        125
      +      ],
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "hal_finney_horizon_target_usd": {
      +      "description": "Current pipeline hal_finney_horizon_target_usd; not a value reconstructed from the historical video index.",
      +      "example": 10000000,
      +      "examples": [
      +        10000000
      +      ],
      +      "type": "number"
      +    },
      +    "network_energy_watts": {
      +      "description": "Current pipeline network_energy_watts; not a value reconstructed from the historical video index.",
      +      "example": 15000000000,
      +      "examples": [
      +        15000000000
      +      ],
      +      "type": "number"
      +    },
      +    "network_hashrate_h_s": {
      +      "description": "Current pipeline network_hashrate_h_s; not a value reconstructed from the historical video index.",
      +      "example": 1e+21,
      +      "examples": [
      +        1e+21
      +      ],
      +      "type": "number"
      +    },
      +    "network_hashrate_th_s": {
      +      "description": "Current pipeline network_hashrate_th_s; not a value reconstructed from the historical video index.",
      +      "example": 1000000000,
      +      "examples": [
      +        1000000000
      +      ],
      +      "type": "number"
      +    },
      +    "observed_at_utc": {
      +      "description": "Current pipeline observed_at_utc; not a value reconstructed from the historical video index.",
      +      "example": "2026-10-12T00:00:00+00:00",
      +      "examples": [
      +        "2026-10-12T00:00:00+00:00"
      +      ],
      +      "type": "string"
      +    },
      +    "snapshot_age_seconds": {
      +      "description": "Current pipeline snapshot_age_seconds; not a value reconstructed from the historical video index.",
      +      "example": 2,
      +      "examples": [
      +        2
      +      ],
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "block_height",
      +    "observed_at_utc",
      +    "btc_price_usd",
      +    "hal_finney_horizon_target_usd",
      +    "hal_finney_horizon_multiple",
      +    "attribution",
      +    "network_hashrate_h_s",
      +    "network_hashrate_th_s",
      +    "network_energy_watts",
      +    "efficiency_baseline_j_th",
      +    "snapshot_age_seconds"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / proofAvailable
      Added value: +{
      +  "description": "True only if an archived JSON/OTS pair was returned.",
      +  "example": true,
      +  "examples": [
      +    true
      +  ],
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / proof_coverage
      Added value: +{
      +  "description": "Only exact archived JSON is covered by each receipt, never live metrics.",
      +  "example": "Exact archived snapshot_json only; changing live_metrics are not covered.",
      +  "examples": [
      +    "Exact archived snapshot_json only; changing live_metrics are not covered."
      +  ],
      +  "type": "string"
      +}
    • removedOutput schema / properties / range / additionalProperties
      Removed value: -false
    • changedOutput schema / properties / range / description
      Previous value: -"Requested bounds, including default latest if omitted."New value: +"Requested inclusive real height/date bounds."
    • changedOutput schema / properties / range / examples
      Previous value: -[
      -  {
      -    "end": "latest",
      -    "start": "919856"
      -  }
      -]New value: +[
      +  {
      +    "end": "latest",
      +    "start": "2026-10-12"
      +  }
      +]
    • removedOutput schema / properties / range / properties
      Removed value: -{
      -  "end": {
      -    "description": "Requested ending target. Example: \"latest\".",
      -    "example": "latest",
      -    "examples": [
      -      "latest"
      -    ],
      -    "type": "string"
      -  },
      -  "start": {
      -    "description": "Requested starting target. Example: \"919856\".",
      -    "example": "919856",
      -    "examples": [
      -      "919856"
      -    ],
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / range / required
      Removed value: -[
      -  "start",
      -  "end"
      -]
    • changedOutput schema / properties / records / description
      Previous value: -"Records in ascending indexed order; compact strings, minimal arrays, or terse key-value objects. Constraints: minItems: 1; maxItems: 100. Example: [\"HEIGHT:919856|DATE:2026-09-08|TM:125.5|HASH:0123456789abcdef\"]."New value: +"Selected actual snapshot summaries, not a synthetic daily index."
    • removedOutput schema / properties / records / example
      Removed value: -[
      -  "HEIGHT:919856|DATE:2026-09-08|TM:125.5|HASH:0123456789abcdef"
      -]
    • changedOutput schema / properties / records / examples
      Previous value: -[
      -  [
      -    "HEIGHT:919856|DATE:2026-09-08|TM:125.5|HASH:0123456789abcdef"
      -  ]
      -]New value: +[
      +  [
      +    "HEIGHT:920000|DATE:2026-10-12T00:00:00+00:00|TM:125|HASH:abababababababababababababababababababababababababababababababab"
      +  ]
      +]
    • changedOutput schema / properties / records / items / description
      Previous value: -"One compressed source-record digest. Example: \"HEIGHT:919856|DATE:2026-09-08|TM:125.5|HASH:0123456789abcdef\"."New value: +"One requested compact, minimal or kv summary."
    • removedOutput schema / properties / records / items / example
      Removed value: -"HEIGHT:919856|DATE:2026-09-08|TM:125.5|HASH:0123456789abcdef"
    • changedOutput schema / properties / records / items / examples
      Previous value: -[
      -  "HEIGHT:919856|DATE:2026-09-08|TM:125.5|HASH:0123456789abcdef"
      -]New value: +[
      +  "HEIGHT:920000|DATE:2026-10-12T00:00:00+00:00|TM:125|HASH:abababababababababababababababababababababababababababababababab"
      +]
    • removedOutput schema / properties / records / maxItems
      Removed value: -100
    • removedOutput schema / properties / records / minItems
      Removed value: -1
    • changedOutput schema / required
      Previous value: -[
      -  "range",
      -  "count",
      -  "format",
      -  "records"
      -]New value: +[
      +  "range",
      +  "count",
      +  "format",
      +  "records",
      +  "live_metrics",
      +  "historical_proofs",
      +  "proofAvailable",
      +  "archive_state",
      +  "proof_coverage"
      +]
  3. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds genuinely non-derived behavior: the L402 paid-call flow with the exact retry header format, and the zero-polling async path (202 Accepted, task_id, server-initiated POST callback). These are operational traits an agent cannot infer from annotations or schema.

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?

Front-loaded with purpose and scope, then alternatives, then payment/async mechanics — an effective ordering. It is dense but nearly every clause carries distinct routing or operational information; the L402 and webhook sentences are long yet load-bearing.

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, return values need no explanation here; annotations cover safety, schema covers all five parameters, and the description covers the two things structured data cannot express (paid-call retry and async callback). Nothing an agent needs to invoke this correctly is missing.

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%, so the schema already carries per-parameter semantics (limit range, format enum, target patterns, webhook contract). The description only restates that output is capped by limit and that bounds are ascending/contiguous, adding little beyond structured data. Baseline 3 is appropriate.

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 ('Fetch a contiguous sequence of Bitcoin stratigraphy records') plus the exact bounds (startTarget/endTarget) and truncation rule (capped by limit). It also names the sibling tools it is distinct from, so an agent can route 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?

Explicitly gives the selecting condition ('when analyzing multi-block trends or time-series intervals') and then enumerates alternatives with their distinct roles: stratigraphy.list for catalog bounds, stratigraphy.get for a single snapshot, stratigraphy.get_diff for two endpoints without intermediates, stratigraphy.get_digest for compact hashes. No inference required.

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