Verify official facts with Bitcoin-anchored proof. 180+ signals, x402 pay-per-call.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
FREE coverage + freshness manifest: which signal_id lines exist, how many entities each covers, and fresh/recent/stale counts - so you can check "is my entity covered and how fresh" BEFORE paying. Optional filters: industry, signal_id, entity.
true = per-entity detail (larger); default compact summary
object id, e.g. a USGS site id
restrict to one domain, e.g. hydrology, agriculture, energy
e.g. hydrology.river-level
FREE coverage + freshness manifest: which signal_id lines exist, how many entities each covers, and fresh/recent/stale counts - so you can check "is my entity covered and how fresh" BEFORE paying. Optional filters: industry, signal_id, entity.
| Argument | Type | Description |
|---|---|---|
| full | boolean | true = per-entity detail (larger); default compact summary |
| entity | string | object id, e.g. a USGS site id |
| industry | string | restrict to one domain, e.g. hydrology, agriculture, energy |
| signal_id | string | e.g. hydrology.river-level |
{
"type": "object",
"properties": {
"full": {
"type": "boolean",
"description": "true = per-entity detail (larger); default compact summary"
},
"entity": {
"type": "string",
"description": "object id, e.g. a USGS site id"
},
"industry": {
"type": "string",
"description": "restrict to one domain, e.g. hydrology, agriculture, energy"
},
"signal_id": {
"type": "string",
"description": "e.g. hydrology.river-level"
}
}
}Returns the REAL x402 payment challenge (accepts[]: network / asset / payTo / amount) for the paid endpoint that serves a given signal_id+entity, or any listed endpoint addressed directly by `path`. This tool does NOT deliver paid data and does NOT take payment - MCP has no payment layer. Pay at the returned url with your own x402 client (USDC on Base or Solana, gasless EIP-3009; pay from a plain EOA) and you receive the record directly, with record_hash you can verify offline. This tool only fetches the 402 challenge; it delivers no paid data and collects no payment.
| Argument | Type | Description |
|---|---|---|
| dim | string | which product: full read (gauge) or a single add-on; the price of each is in the 402 challenge this tool returns, never here |
| path | string | Alternative addressing: any listed endpoint path, optionally with its query string (e.g. "/gauge/chokepoint-region?loc=hormuz"). The full list of legal paths is the free /manifest?all=1. Use this for the bundles and census lines that are not addressed by signal_id+entity. |
| entity | string | which object within that line, e.g. the USGS site id 07010000 |
| signal_id | string | which signal line, e.g. hydrology.river-level - use find_signal to list them |
{
"type": "object",
"anyOf": [
{
"required": [
"path"
]
},
{
"required": [
"signal_id",
"entity"
]
}
],
"properties": {
"dim": {
"enum": [
"gauge",
"ruler",
"calibrated",
"strata",
"history"
],
"type": "string",
"description": "which product: full read (gauge) or a single add-on; the price of each is in the 402 challenge this tool returns, never here"
},
"path": {
"type": "string",
"description": "Alternative addressing: any listed endpoint path, optionally with its query string (e.g. \"/gauge/chokepoint-region?loc=hormuz\"). The full list of legal paths is the free /manifest?all=1. Use this for the bundles and census lines that are not addressed by signal_id+entity."
},
"entity": {
"type": "string",
"description": "which object within that line, e.g. the USGS site id 07010000"
},
"signal_id": {
"type": "string",
"description": "which signal line, e.g. hydrology.river-level - use find_signal to list them"
}
}
}FREE. Ask how to pay for a listed endpoint and get every channel with its REAL status - including the ones that are wired but not open yet. Three channels exist: x402 micropayment (for an agent with a funded USDC wallet on Base), a stateless subscription Bearer token (for a person or team - no wallet, no private key, no account), and a card rail. This tool takes no payment and holds no key; it only tells you which doors exist and which are open today.
| Argument | Type | Description |
|---|---|---|
| path | string | A listed endpoint path (e.g. "/gauge/grid-reliability-region") to get its price alongside the channels. Omit it to get the channel list on its own. The full list of legal paths is the free /manifest?all=1. |
{
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "A listed endpoint path (e.g. \"/gauge/grid-reliability-region\") to get its price alongside the channels. Omit it to get the channel list on its own. The full list of legal paths is the free /manifest?all=1."
}
}
}FREE. Given a record_hash from any Truth Bear record, look it up and recompute the canonical hash server-side, returning whether it is a genuine Truth Bear official record plus a plain-language reverse lookup of what exactly that hash attests. Use this to check a citation you were handed by another agent or document BEFORE relying on it. No payment, no API key.
| Argument | Type | Description |
|---|---|---|
| record_hash* | string | sha256:<64 hex>, or a >=8-hex prefix as posted publicly |
{
"type": "object",
"required": [
"record_hash"
],
"properties": {
"record_hash": {
"type": "string",
"description": "sha256:<64 hex>, or a >=8-hex prefix as posted publicly"
}
}
}FREE. Cross-verify one GAUGE interweave line: it returns each official series ("leg") in the line with its own record_hash, current/previous values, expected direction and per-leg minMove deadband, plus a count-style state (directions_matched / direction_mismatch / inverse_consistent / not_comparable / insufficient) and N-of-M. Everything needed to recompute the verdict OFFLINE is in the response - verify each leg hash with verify_citation, then recompute dir=sign(current-previous) with the minMove deadband. Descriptive only: no forecast, no causation, no advice. No payment, no API key.
| Argument | Type | Description |
|---|---|---|
| line* | string | which interweave line, e.g. "E" (state vs national unemployment) or "F" (drought vs crop). Public demo lines are E and F. |
| entity* | string | the object within the line, as US-<ST>, e.g. "US-TX" (case-insensitive). Required. |
{
"type": "object",
"required": [
"line",
"entity"
],
"properties": {
"line": {
"type": "string",
"description": "which interweave line, e.g. \"E\" (state vs national unemployment) or \"F\" (drought vs crop). Public demo lines are E and F."
},
"entity": {
"type": "string",
"description": "the object within the line, as US-<ST>, e.g. \"US-TX\" (case-insensitive). Required."
}
}
}