mcp-gauge
What this MCP does
Provides coverage discovery, paid official data records, citation-hash verification, and cross-checking of supported factual signals.
Tools
Input schema
{'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'}}}
Output schema
{'type': 'object', 'required': [], 'properties': {'note': {'type': 'string', 'description': 'Screening-level disclaimer.'}, 'error': {'type': 'string', 'description': 'Present only when the call failed; human-readable reason.'}, 'detail': {'type': 'string', 'description': "Present on some failures: the upstream endpoint's own error text."}, 'nature': {'type': 'string', 'description': 'What this manifest is.'}, 'totals': {'type': 'object', 'description': 'signal_ids / industries / distinct_entities / freshness counts across the whole catalogue.'}, 'signals': {'type': 'array', 'items': {'type': 'object', 'properties': {'checkup': {'type': 'object', 'description': 'Latest patrol result for the line (full mode).'}, 'factory': {'type': 'string', 'description': 'Internal collector name (full mode).'}, 'entities': {'type': 'array', 'items': {'type': 'object', 'properties': {'entity': {'type': 'string', 'description': 'Object id.'}, 'freshness': {'type': 'string', 'description': 'fresh | recent | stale.'}, 'entity_name': {'type': 'string', 'description': 'Human-readable object name.'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp of the observation.'}, 'overdue_days': {'type': 'number', 'description': 'How many days past the declared cycle this object is.'}, 'vintage_days': {'type': 'number', 'description': 'Age of the underlying source vintage in days.'}, 'update_status': {'type': 'string', 'description': 'on_schedule | overdue | not_published | unknown, for this object.'}, 'data_age_hours': {'type': 'number', 'description': 'Age of the observation in hours.'}}, 'additionalProperties': True}, 'description': 'Per-entity detail; present only when full=true.'}, 'industry': {'type': ['string', 'null'], 'description': 'Domain the line belongs to; null when the line is not classified.'}, 'signal_id': {'type': 'string', 'description': 'e.g. hydrology.river-level'}, 'description': {'type': 'string', 'description': 'What the line measures (full mode).'}, 'record_type': {'type': 'string', 'description': 'Kind of record the line emits (full mode).'}, 'update_status': {'type': 'string', 'description': 'on_schedule | overdue | not_published | unknown.'}, 'entities_count': {'type': 'integer', 'description': 'How many objects the line covers.'}, 'temporal_cycle': {'type': 'string', 'description': 'Publication cycle declared by the upstream source (full mode).'}, 'signal_id_label': {'type': 'string', 'description': 'Human-readable line name (full mode).'}, 'freshness_counts': {'type': 'object', 'description': 'fresh / recent / stale counts for the line.'}, 'max_overdue_days': {'type': 'number', 'description': 'Largest overdue gap in the line, in days.'}, 'latest_observed_at': {'type': ['string', 'null'], 'description': 'ISO timestamp of the newest observation; null when the line has never published.'}, 'update_status_counts': {'type': 'object', 'description': 'Per-status entity counts.'}}, 'additionalProperties': True}, 'description': 'One entry per signal line. Compact by default; pass full=true for per-entity detail.'}, 'cache_note': {'type': 'string', 'description': 'What the cache does and does not affect.'}, 'cache_ttl_s': {'type': 'number', 'description': 'Cache lifetime of this manifest in seconds.'}, 'cache_policy': {'type': 'string', 'description': 'Cache policy in force.'}, 'freshness_rule': {'type': 'string', 'description': 'How fresh/recent/stale are decided.'}, 'update_status_rule': {'type': 'object', 'description': 'How on_schedule / overdue / not_published / unknown are decided.'}, 'freshness_thresholds': {'type': 'object', 'description': 'The numeric thresholds behind freshness_rule.'}}, 'description': 'Coverage + freshness manifest. On failure this object is an error report instead (see error/detail).', 'additionalProperties': True}
Input schema
{'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'}}}
Output schema
{'type': 'object', 'required': [], 'properties': {'got': {'type': 'integer', 'description': 'Present on failure: the HTTP status actually returned.'}, 'hint': {'type': 'string', 'description': 'Present on failure: the next thing to try, e.g. find_signal.'}, 'note': {'type': 'string', 'description': 'Standing statement that this server never takes payment.'}, 'error': {'type': 'string', 'description': 'Present only when the call failed; human-readable reason.'}, 'detail': {'type': 'string', 'description': "Present on some failures: the upstream endpoint's own error text."}, 'method': {'type': 'string', 'description': 'HTTP method to use at pay_at (always GET).'}, 'pay_at': {'type': 'string', 'description': 'URL to send the paid GET to.'}, 'expected': {'type': 'string', 'description': 'Present on failure: what was expected (an HTTP 402 challenge).'}, 'how_to_pay': {'type': 'string', 'description': 'How to sign and send the X-PAYMENT header; pay from a plain EOA.'}, 'after_payment': {'type': 'string', 'description': 'What the paid response carries and how to verify it offline.'}, 'x402_challenge': {'type': 'object', 'description': 'The upstream 402 body verbatim: x402Version + accepts[] (scheme / network / asset / payTo / amount).'}}, 'description': 'The real x402 payment challenge and how to pay it. No paid data is ever returned here. On failure this object is an error report instead.', 'additionalProperties': False}
Input schema
{'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.'}}}
Output schema
{'type': 'object', 'required': [], 'properties': {'error': {'type': 'string', 'description': 'present only when the buy endpoint could not be reached'}, 'price': {'type': 'string', 'description': 'the listed price, present only when asked_about matches a listed endpoint'}, 'title': {'type': ['string', 'null'], 'description': 'the listing title of that endpoint, when it has one'}, 'detail': {'type': 'string', 'description': 'the upstream error text, when there is one'}, 'endpoint': {'type': 'string', 'description': 'always "/buy" - which endpoint answered'}, 'free_first': {'type': 'string', 'description': 'what stays free and how to avoid paying for a lookup with no data'}, 'asked_about': {'type': ['string', 'null'], 'description': 'the path you asked about, or null if you asked for the channel list on its own'}, 'ways_to_buy': {'type': 'array', 'items': {'type': 'object', 'properties': {'for': {'type': 'string', 'description': 'who this channel is for - agent with a wallet, or a person/team'}, 'how': {'type': 'string', 'description': 'what you actually do to pay through this channel'}, 'opens': {'type': ['string', 'null'], 'description': 'YYYY-MM-DD - present only while a channel is configured but not open'}, 'caveat': {'type': 'string', 'description': 'x402 only: the reference client default per-call cap that silently blocks higher-priced calls'}, 'status': {'type': 'string', 'description': 'open | not-self-serve | configured-not-open-yet | unavailable'}, 'channel': {'enum': ['x402', 'subscription-token', 'fiat-card'], 'type': 'string', 'description': 'which rail'}, 'unlocks': {'type': 'array', 'items': {'type': 'string'}, 'description': 'which endpoints this channel unlocks, when it is not per-call'}, 'honest_note': {'type': 'string', 'description': 'plain statement of what is not available yet, when that is the case'}}}, 'description': 'every payment channel with its REAL status - including channels that are wired but not open yet'}, 'note_unknown_path': {'type': 'string', 'description': 'present only when asked_about matched no listed endpoint'}}}
Input schema
{'type': 'object', 'required': ['record_hash'], 'properties': {'record_hash': {'type': 'string', 'description': 'sha256:<64 hex>, or a >=8-hex prefix as posted publicly'}}}
Output schema
{'type': 'object', 'required': [], 'properties': {'note': {'type': 'string', 'description': 'Screening-level disclaimer.'}, 'error': {'type': 'string', 'description': 'Present only when the call failed; human-readable reason.'}, 'found': {'type': 'boolean', 'description': 'Whether a published Truth Bear reading matches this hash.'}, 'scope': {'type': 'string', 'description': 'What this hash does and does not attest.'}, 'entity': {'type': ['string', 'null'], 'description': 'Object id the reading is about.'}, 'endpoint': {'type': 'string', 'description': 'Always "gauge/verify".'}, 'verified': {'type': 'boolean', 'description': 'Whether the canonical hash recomputed server-side matches the one supplied.'}, 'signal_id': {'type': ['string', 'null'], 'description': 'e.g. hydrology.river-level'}, 'ots_status': {'type': ['string', 'null'], 'description': 'Per-record field, unused: individual records are not stamped one by one. Anchoring happens per write-batch - see GET /gauge/anchor?hash= for the Merkle inclusion proof and, once the calendar confirms, the Bitcoin block number.'}, 'source_ref': {'type': ['string', 'null'], 'description': 'URL of the official source record.'}, 'undetermined': {'type': 'boolean', 'description': 'true when the lookup itself failed (e.g. DB unavailable) - NOT a verdict of "fake".'}, 'record_status': {'type': ['object', 'null'], 'properties': {'note': {'type': 'string', 'description': 'Why the record is kept queryable on purpose.'}, 'since': {'type': ['string', 'null'], 'description': 'UTC ISO second-precision timestamp of when we flagged it.'}, 'state': {'type': 'string', 'description': '"active" or a withdrawal state such as "quarantined".'}, 'reason': {'type': ['string', 'null'], 'description': 'Short machine-readable reason code.'}}, 'description': 'Three-state disclosure. state="active" for a normal record; a non-active state (e.g. "quarantined") means the record is genuine and its hash still verifies, but we have since flagged it as not fit for delivery - do NOT rely on the reading itself. Carries since (UTC ISO) and reason when non-active.'}, 'snapshot_date': {'type': ['string', 'null'], 'description': 'YYYY-MM-DD of the reading.'}, 'reverse_lookup': {'type': 'string', 'description': 'Plain-language statement of exactly what this hash attests.'}, 'recomputed_hash': {'type': ['string', 'null'], 'description': 'sha256:<64 hex> recomputed from the stored record.'}, 'hash_core_version': {'type': ['integer', 'null'], 'description': 'Version of the canonical hash core used.'}, 'is_truth_bear_record': {'type': ['boolean', 'null'], 'description': 'true / false, or null when the check could not be run (see undetermined).'}, 'how_to_check_a_claimed_value': {'type': 'string', 'description': 'Present when found: how to check a value someone claims.'}}, 'description': 'Verdict for one record_hash. On failure this object is an error report instead (see error/detail).', 'additionalProperties': True}
Input schema
{'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.'}}}
Output schema
{'type': 'object', 'required': [], 'properties': {'legs': {'type': 'array', 'items': {'type': 'object', 'required': [], 'properties': {'dir': {'type': ['integer', 'null'], 'description': 'measured direction THIS window: +1 / -1 / 0 (|Δ|<minMove) / null when a value is missing. NOT the expectation.'}, 'as_of': {'type': ['string', 'null'], 'description': 'ISO timestamp of the current reading; null when unavailable.'}, 'entity': {'type': 'string', 'description': 'object id this leg reads, e.g. US-TX or us.'}, 'expect': {'type': ['integer', 'null'], 'description': 'pre-registered expected direction (+1 or -1) - the arrow, fixed in advance, not this window.'}, 'metric': {'type': 'string', 'description': 'which scalar in the reading, e.g. rate_pct.'}, 'minMove': {'type': ['number', 'null'], 'description': 'per-leg deadband: if |current_value-previous_value| < minMove then dir is recorded as 0. Delivered so you can recompute dir yourself.'}, 'optional': {'type': 'boolean', 'description': 'present when this leg is a non-required confirmation leg (does not change the line state).'}, 'dependent': {'type': 'boolean', 'description': 'present when this leg is a super-population of another (e.g. national vs state) - agreement is weak, only mismatch is informative.'}, 'signal_id': {'type': 'string', 'description': 'e.g. macro.unemployment'}, 'source_ref': {'type': ['string', 'null'], 'description': 'URL of the official source record; null when unavailable.'}, 'record_hash': {'type': ['string', 'null'], 'description': 'per-leg official record hash - POST /gauge/verify (or verify_citation) to check it independently.'}, 'source_tier': {'type': ['string', 'null'], 'description': 'provenance tier of the leg; null when unavailable.'}, 'current_value': {'type': ['number', 'null'], 'description': 'newest official reading; null when unavailable.'}, 'previous_value': {'type': ['number', 'null'], 'description': 'prior official reading; null when unavailable.'}, 'contradicts_registered_direction': {'type': 'boolean', 'description': 'present on an optional leg that moved against its registered direction.'}}, 'description': 'One official series ("leg") in the line, with the fields needed to recompute its direction offline.', 'additionalProperties': True}, 'description': 'one entry per official series in the line.'}, 'line': {'type': 'string', 'description': 'the line code you asked for, e.g. E or F.'}, 'note': {'type': 'string', 'description': 'standing disclaimer: direction is observed, not a trend/forecast/causation claim.'}, 'error': {'type': 'string', 'description': 'Present only when the call failed; human-readable reason.'}, 'state': {'type': 'string', 'description': 'directions_matched | direction_mismatch | inverse_consistent | not_comparable | insufficient. A count/observation, NOT an adjudication.'}, 'title': {'type': 'string', 'description': 'letter-only title (e.g. "線E"); never a phenomenon name.'}, 'detail': {'type': 'string', 'description': "Present on some failures: the upstream endpoint's own error text."}, 'entity': {'type': 'string', 'description': 'the external contract code, e.g. US-TX.'}, 'nature': {'type': ['string', 'null'], 'description': 'neutral English disclosure; may be null.'}, 'reason': {'type': ['string', 'null'], 'description': 'stale | missing_current_or_previous | below_min_move | period_misaligned | no_active_drought | parallel_display | null.'}, 'matched': {'type': 'integer', 'description': 'N: how many REQUIRED legs had measured dir === expect this window.'}, 'required': {'type': 'integer', 'description': 'M: number of required legs. The public claim is exactly "N of M moved in the registered direction".'}, 'statement': {'type': 'string', 'description': 'the locked, neutral disclosure sentence with N/M substituted.'}, 'pair_state': {'type': ['string', 'null'], 'description': 'inverse-pair lines (F/FW) only: holds_stress | holds_relief | broken | insufficient | not_comparable; absent/null on other lines.'}, 'verify_hint': {'type': 'string', 'description': 'exactly how to recompute the state offline from each leg (record_hash + dir=sign(Δ) with minMove deadband).'}, 'snapshot_window': {'type': ['object', 'null'], 'properties': {'to': {'type': 'string', 'description': 'window end.'}, 'from': {'type': 'string', 'description': 'window start.'}}, 'description': 'the {from,to} window the legs were read over, or null.', 'additionalProperties': True}}, 'description': 'Count-style read of one interweave line: how many official series moved in their pre-registered direction. Descriptive only - no verdict of "true/false", no forecast, no causation. On failure this object is an error report instead (see error/detail).', 'additionalProperties': True}
Recent tool changes
Similar MCP servers
LiveDataLink
Exposes public-data tools covering economics, labor, banking, transport, books, legal opinions, carriers, environmental data, and…
Stratalize Healthcare
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Governance
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Oracle
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Real Estate
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Crypto & DeFi
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Valuein — SEC EDGAR Fundamentals & Smart-Money Data
Provides point-in-time SEC EDGAR fundamentals, filings, ownership signals, financial analysis, valuation models, research reports…
equibles
Provides equity and market research tools covering SEC filings, company financials, portfolios, prices, options, macroeconomic da…