Skip to main content
Glama

Server Details

Provenance-first DePIN telemetry: 331 live networks + 129 Bittensor subnets, 10,508 series.

Ownership verified
Status
Healthy
Uptime
99.3% over 65 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
OV3RK177/kairos-mcp-server
GitHub Stars
0
Server Listing
Kairos Signal MCP Server

TDQS

A4/5.0

Scored across 15 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but there is mild overlap between dataset-catalog tools (get_stats, list_datasets, get_data_dictionary) and between data-retrieval tools (fetch_dataset, get_metric_history, get_network). The descriptions cross-reference each other well, reducing confusion in practice, but the surface still has a few tools whose boundaries require careful reading.

Naming Consistency5/5

All 15 tool names follow a consistent snake_case verb_noun pattern (e.g. check_balance, fetch_dataset, get_network, verify_value). The verbs are clear and predictable, and there are no deviations in style or convention.

Tool Count5/5

15 tools is within the well-scoped range and each tool appears to earn its place: data discovery, retrieval, verification, and credit management are all covered without obvious redundancy. The count feels appropriate for a multi-feed data platform with provenance and billing features.

Completeness4/5

The surface covers data discovery, retrieval, verification, and credit lifecycle well. A minor gap is the lack of a dedicated tool to browse all available networks without already knowing a name or ticker (find_networks requires a query), and there is no tool for usage or purchase history beyond balance. These are workable gaps.

Available Tools

21 tools
check_balanceCheck credit balanceA
Read-onlyIdempotent
Inspect

Check your remaining credit balance. Use after purchases to see remaining credits.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyYesYour API key

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds only the 'after purchases' timing cue and does not mention rate limits, cost, or response shape, so it adds modest value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, purpose stated first, use case second, with no filler. Every clause earns its place for a tool this simple.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool whose annotations cover safety and idempotency, the description plus schema is nearly sufficient; 'remaining credits' implies the return value. It lacks any note on units, currency, or failure behavior for an invalid key, which is the only real gap.

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?

There is a single parameter (api_key) with 100% schema description coverage, so the schema already documents it fully. The description adds nothing about the parameter, which matches the baseline 3 when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Check ... credit balance') that is unambiguous and clearly distinct from siblings like topup_credits or purchase_data in intent. It does not explicitly name an alternative, so it stops short of the 5 tier.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use after purchases to see remaining credits' gives a concrete triggering context, which is more than most definitions offer. It provides no explicit exclusions or named alternatives, so it is clear context rather than full when/when-not guidance.

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

fetch_datasetFetch raw dataset rowsB
Read-onlyIdempotent
Inspect

Query records from a dataset with limit/offset. Free tier: 10 records per query. For depin_onchain, raw archived observations, including rejected rows, are retained. observation_quality reports limited PKT airdrop checks; not_checked means not validated. This read-time annotation is not covered by original proof hashes.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax records (max 10 for free tier)
offsetNoRecord offset
datasetYesDataset name (e.g., depin_onchain)

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds real behavioral context beyond them: the free-tier 10-record cap, that rejected rows are retained for depin_onchain, and that observation_quality read-time annotations are not covered by original proof hashes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core query sentence is front-loaded, but the remainder pivots into dataset-specific caveats about observation_quality and proof hashes that only apply to one dataset, diluting focus for general callers. Some sentences earn their place; others are only conditionally relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only query tool with an annotation-covered safety profile and full schema coverage, the essentials are present. However, with no output schema, gaps remain around default limit, ordering, and pagination behavior that the description could reasonably address.

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 coverage is 100%, so the schema already documents dataset, limit, and offset, establishing the baseline of 3. The description restates limit/offset and echoes the tier cap ('10 records per query') but adds no format, default, or ordering detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Query records from a dataset with limit/offset,' and the title reinforces 'Fetch raw dataset rows.' It is unambiguous what the tool does, though it does not explicitly distinguish itself from siblings like list_datasets or get_data_dictionary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named. It gives context (free tier cap, depin_onchain retention) but never tells the agent when this tool is the right choice versus list_datasets, get_data_dictionary, or purchase_data.

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

find_networksFind DePIN networks by name or tickerA
Read-onlyIdempotent
Inspect

Looks up DePIN networks (and Bittensor subnets) that have live data, by name or ticker, e.g. 'akash', 'helium', 'FIL'. Returns symbol, name, category and the network's public page. Use it to get the symbol that get_network, get_metric_history and verify_value take. Read-only, no key.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20).
queryNoName or ticker fragment, case-insensitive. Omit to list.
categoryNoOptional category filter, e.g. compute, storage, wireless, AI.

Output Schema

ParametersJSON Schema
NameRequiredDescription
matchesYes
networksYes
returnedYes

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, non-destructive and non-open-world, so the safety profile is covered; the description reinforces it redundantly but usefully adds the auth fact 'no key' and the behavioral filter that only networks with live data are returned. It stops short of saying anything about pagination or result ordering, which is the remaining gap.

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?

Four compact sentences, led by the purpose and follow-up routing, with no filler or marketing language. The 'Read-only, no key' clause partially duplicates the annotations, which is the only wasted space.

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?

All required parameters are optional and documented, an output schema exists so return values need no elaboration, and the description nonetheless names the returned fields (symbol, name, category, public page). An agent has everything needed to select and call this tool correctly.

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 coverage is 100% and each of the three parameters (query, category, limit) is already documented, so the schema carries the load. The description's example tickers add a little flavor about query format, but it says nothing extra about category values or the limit default, 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?

The description states a specific verb and resource (look up DePIN networks and Bittensor subnets), narrows the scope to entries with live data, and illustrates the input format with concrete tickers ('akash', 'helium', 'FIL'). It clearly differentiates itself from detail-oriented siblings like get_network by describing itself as the symbol-resolution step.

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 explicitly states the downstream purpose: 'Use it to get the symbol that get_network, get_metric_history and verify_value take.' That names three alternatives and the condition (need to resolve a symbol) that selects this tool over them, so the agent does not have to infer routing.

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

get_data_dictionaryGet the data dictionaryA
Read-onlyIdempotent
Inspect

ONBOARDING SPEC: freshness, history depth, coverage and endpoints per feed (depin_onchain, depin_daily, health_profiles, signal_ledger, market_ticks, zk_footprints). Machine-legible; answers 'how stale is this and how far back does it go' for every feed. Free, no key.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: it is machine-legible, free, and requires no API key, which affects whether and how an agent invokes it. That is real added value over the structured fields.

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?

Three dense sentences that front-load what it returns (freshness, history depth, coverage, endpoints) and lead with 'ONBOARDING SPEC'. It is tight, though the label and feed enumeration make it slightly list-heavy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-param, read-only tool with full annotation coverage and no output schema, the description covers what it answers, its scope, and its cost/auth posture. The only minor gap is the exact return shape, which the description only gestures at with 'machine-legible'.

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

Parameters4/5

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

There are zero parameters, so the baseline is 4 by the rubric. The description correctly implies a parameterless call with nothing to configure, and 'no key' confirms no auth parameter is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (metadata about feeds) and enumerates the feeds by name, and quotes the exact question it answers ('how stale is this and how far back does it go'). It is clearly distinguishable from siblings like get_stats or get_metric_history, though the label 'data dictionary' plus the enumerated feeds does the heavy lifting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The scope question ('how stale is this and how far back does it go') implies when to consult it, and 'free, no key' tells the agent there is no setup cost. But there is no explicit when-to-use vs. alternative guidance (e.g., vs. get_metric_history or list_datasets), so an agent must infer the routing.

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

get_depin_slashing_auditAudit DePIN slashing & enforcement capacity (Qazi 2026 Theorem 1)
Read-onlyIdempotent
Inspect

Evaluates Qazi et al. (2026) Theorem 1 enforcement capacity p_audit*(lambdaS + deltamin Phi) >= Gamma, security margin, and incentive compatibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNo
stake_usdNo
slash_fractionNo
get_derivation_ledgerGet the derivation ledgerA
Read-onlyIdempotent
Inspect

Returns the derivation ledger index. With a symbol: up to 20 recent archived upstream fetches behind that network, each with time, verify_url, the SHA-256 and size of the raw payload, the collector code hash and the fetch status, so a published value can be traced to the exact bytes and build that produced it (the payload bytes themselves are the paid derivation_replay product). A network with live data that the ledger does not cover yet returns entries: [] with ledger_status not_yet_covered and the covered symbols. Without a symbol: every covered symbol with its latest fetch time and entry count. Read-only, no key. To compare a live value with its upstream right now, use verify_value.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoOptional: one network symbol, case-insensitive (e.g. AKT). Omit for the coverage list.

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, so 'Read-only, no key' mostly restates them (though 'no key' does add auth context). What earns credit is genuinely new behavior: the 20-entry cap, the 'entries: [] with ledger_status not_yet_covered plus covered symbols' edge case, and the explicit paywall boundary that payload bytes are the separate paid derivation_replay product. That is material disclosure an agent could not infer from the annotations.

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 the core purpose and organized by mode (with symbol / without symbol / read-only), with no filler sentences. It is on the long side for one optional parameter, but each sentence contributes a distinct fact (fields returned, truncation limit, empty-result status, paywall boundary).

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?

There is no output schema, and the description compensates fully: it enumerates the returned fields (time, verify_url, SHA-256, size, collector code hash, fetch status), describes the coverage-list shape, and handles the not_yet_covered edge case. An agent has everything needed to call it and interpret the response.

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 single optional param already documents case-insensitivity and that omitting it returns the coverage list. The description adds the 'up to 20 recent fetches' limit, but that is return-volume behavior rather than parameter semantics. Baseline 3 is right when the schema carries the parameter documentation.

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+resource ('Returns the derivation ledger index') and then cleanly splits the tool into its two operating modes: with a symbol (up to 20 archived upstream fetches) and without (coverage list). It also names the sibling it is not — 'To compare a live value with its upstream right now, use verify_value' — so an agent can separate it from verify_value and verify_footprint without opening a 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 routing: supply a symbol to trace one published value to bytes/build, omit it to get the coverage list. It also names verify_value as the alternative for live comparisons, which is the main confusion risk among the verify_* siblings. When-to-use and when-to-use-something-else are both covered.

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

get_hodge_regime_sieveCompute Helmholtz-Hodge & Barbour-Reinert regime sieve
Read-onlyIdempotent
Inspect

Returns live Helmholtz-Hodge decomposition (gradient, curl, harmonic shares), Barbour-Reinert (2026) Stein-Chen triangle clump deflation factor, and multitype branching contagion threshold rho(M).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

get_listing_dilution_scoreCompute F1 post-listing dilution & physical usage wedge score
Read-onlyIdempotent
Inspect

Computes F1 post-listing supply dilution & funding crowding score plus the physical DePIN usage vs financial crowding divergence wedge.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNo
usage_growth_zNo
supply_dilution_zNo
funding_crowding_zNo
get_metric_historyGet daily history for one network metricA
Read-onlyIdempotent
Inspect

Returns the daily series for one network metric (one point per UTC day, with how many observations backed it), e.g. symbol=AKT metric=GPU_ACTIVE. Days with no observation are absent, never zero. The free tier serves the last 7 days and says so in window_notice; an X-API-Key header on the connection serves your tier's window. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoDays of history requested (default 7).
metricYesMetric name exactly as get_network lists it, e.g. GPU_ACTIVE.
symbolYesNetwork ticker, e.g. AKT.

Output Schema

ParametersJSON Schema
NameRequiredDescription
metricYes
pointsYes
symbolYes
window_daysNo
window_noticeNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/non-destructive, so the closing 'Read-only' is redundant. The description nonetheless adds material behavior beyond the annotations: absent days are omitted rather than zero (a critical semantics trap for an agent), and auth/tier limits are disclosed via the X-API-Key header and window_notice.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the return shape, followed by the absent-vs-zero caveat and then the access rules. Nothing is padded and each clause carries distinct information.

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, the description need not document return fields, and it still covers the non-obvious gaps: observation density per point, missing-day semantics, free-tier window, and API-key authentication. An agent has everything needed to call it correctly and interpret results.

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 symbol, metric and days are already documented with examples and bounds. The description only reinforces the symbol/metric pairing via its example and touches the 7-day default indirectly through tier language; it adds little parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Returns the daily series for one network metric' — and pins down grain (one point per UTC day) and an example invocation (symbol=AKT metric=GPU_ACTIVE). It is clearly separable from listing tools like get_network, though it never names a sibling explicitly to route against.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Offers contextual guidance about windowing — the free tier serves 7 days and signals it via window_notice, and an X-API-Key header unlocks your tier's window — which tells the agent what to expect but not when to prefer this tool over alternatives such as get_stats or get_network. Usage is implied rather than stated with exclusions.

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

get_networkGet a network's latest measured valuesA
Read-onlyIdempotent
Inspect

Returns the latest first-party measurements for one DePIN network (GPU and CPU capacity, storage, node or hotspot counts, on-chain totals), each with value, unit, as_of, freshness and the verify_url on the network's own API that you can open to check it. Market prices are not included. metric_filter narrows by substring; stale readings are omitted unless include_stale is true. Read-only, no key.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesNetwork ticker, e.g. AKT, FIL, HNT (find_networks resolves names).
max_metricsNoMax metrics returned (default 40).
include_staleNoInclude readings past their freshness window (default false).
metric_filterNoOptional case-insensitive substring, e.g. 'gpu' or 'storage'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNo
symbolYes
categoryNo
page_urlNo
telemetryYes
stale_omittedNo
metrics_matchedNo
metrics_returnedYes
onchain_first_partyYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely new context: no API key needed, stale readings are filtered by default, and each metric ships a verify_url on the network's own API that can be opened to independently check the figure. That verification path is not derivable from the 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?

Three sentences, front-loaded with the resource and payload contents, followed by two short behavioral constraints. The opening sentence is long and parenthetical, but every clause carries distinct information and nothing is redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be spelled out, yet the description still previews the per-metric shape (value, unit, as_of, freshness, verify_url), which is useful. Combined with the coverage/exclusion notes and the no-key statement, an agent has what it needs; only the alternative-tool routing (get_metric_history, find_networks) 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 every parameter is already documented in the schema. The description restates the metric_filter substring behavior and the include_stale default without adding new semantics (e.g., what counts as 'stale', or how max_metrics interacts with filtering). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('Returns the latest first-party measurements for one DePIN network') and enumerates the metric families covered (GPU/CPU capacity, storage, node/hotspot counts, on-chain totals). It also sets a scope boundary ('Market prices are not included'), which helps separate it from a price-oriented tool. It never names the closest sibling, get_metric_history, so the 'latest vs. history' distinction must be inferred from the word 'latest'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the agent can infer this is the one-network snapshot tool, and the behavior notes (metric_filter narrows, stale omitted unless include_stale) hint at narrower read patterns. However, there is no explicit 'use this instead of X when Y' guidance, and the pointer to find_networks for resolving tickers lives only in the schema, not the description.

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

get_network_signalsRead live network signal decomposition
Read-onlyIdempotent
Inspect

Returns the current scheduled Hodge and lag-relation snapshots, coverage, observation times, invariants and timestamped history for configured market, DePIN and world cohorts. Requires an existing engines-capable API key in the X-API-Key header. Descriptive relationships only: no fitted memory kernel, causal attribution, calibrated anomaly probability or trading-performance claim. Missing or stale inputs remain explicitly unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

get_rmt_regime_stateCompute Marchenko-Pastur RMT & Kramers-Moyal regime state
Read-onlyIdempotent
Inspect

Returns Marchenko-Pastur RMT edge ratio lambda_1/lambda_+, Absorption Ratio AR_5, Kramers-Moyal potential well count, and SurgeRegimeController mode (SURGE_PRESS / NORMAL_COMPOUND / CHOP_SHIELD).

ParametersJSON Schema
NameRequiredDescriptionDefault
persistence_hoursNo
get_shap_node_attributionCompute exact categorical ANOVA & Shapley node attribution
Read-onlyIdempotent
Inspect

Computes Ferrere et al. (2026) exact categorical functional ANOVA decomposition and local additive Shapley values to machine precision.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNo
get_statsGet coverage statisticsA
Read-onlyIdempotent
Inspect

Returns the row count of every dataset served here (depin_onchain, market_ticks and the rest), their total, the scope statement and the free-tier limits. No arguments, no key, read-only. For one network's live values use get_network; for freshness and history depth per feed use get_data_dictionary.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds genuinely new context beyond them: 'No arguments, no key' tells the agent no authentication or parameters are needed. It stops short of stating cost or rate-limit behavior, which would round out a 5.

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?

Three sentences, return contents front-loaded, routing second, and no filler. The 'read-only' clause is mildly redundant against the annotations, but everything else earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-arg, no-auth, read-only stats tool with no output schema, the description covers what it returns, what is excluded, and which siblings handle related queries. Only the absence of cost/credit implications and return-shape hints keeps it from a 5.

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

Parameters4/5

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

There are zero parameters, so the baseline is 4. The description's 'No arguments' declaration is consistent with the empty schema and usefully confirms no input is required; no further parameter meaning is possible.

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 (returns row counts of every dataset) and enumerates the payload: per-dataset counts, total, scope statement, and free-tier limits. It also names the sibling tools it is not (get_network, get_data_dictionary), so an agent can discriminate without opening a 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 routing is given for both alternatives: use get_network for one network's live values and get_data_dictionary for freshness/history depth per feed. This is unambiguous when-to-use and when-not guidance.

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

list_datasetsList raw datasetsA
Read-onlyIdempotent
Inspect

List the current dataset catalog with record counts. Browsing is free; existing query and daily-call limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare the safe-read profile (readOnlyHint, idempotentHint, destructiveHint=false), so the bar is lower. The description still adds genuinely non-structured information: this operation is free of charge while queries are subject to existing query and daily-call limits. It does not mention pagination or list size limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, with the what-you-get ('catalog with record counts') front-loaded before the cost caveat. Nothing to trim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-param, no-output-schema list tool the description covers what is returned and the cost model, which is most of what an agent needs. It omits whether the catalog is paginated or how large it can be, a minor gap.

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

Parameters4/5

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

The tool takes zero parameters and the schema is an empty object, so there is nothing to disambiguate. Baseline 4 applies; no parameter meaning is needed or missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the current dataset catalog') and adds scope detail ('with record counts'), which distinguishes it from the singular fetch_dataset sibling. It does not explicitly name which sibling to use instead, but the plural-list scope is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The cost framing ('Browsing is free; existing query and daily-call limits apply') implies this is the cheap discovery step worth doing before fetching or purchasing, but it never states that directly nor names an alternative tool. Usage is implied rather than instructed.

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

list_productsList data products and pricesA
Read-onlyIdempotent
Inspect

Browse purchasable products with prices in credits ($1 = 1 credit). DePIN supply-telemetry, provenance, derivation-replay, history and the intel bundle start at $0.49. Grade purchases are conditional on measured-grade availability; check /v1/credits/pricing before buying. Signal-feed tiers, DAG-manifold tiers and mcp_unlimited are priced but NOT yet purchasable: their entitlement is not wired into the serving API, so purchase_data refuses them with 503 not_yet_deliverable rather than charging you for nothing. Call after register_agent.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/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), yet the description adds substantial non-obvious behavior: which tiers are priced but not purchasable, that purchase_data will return 503 not_yet_deliverable for them, and that grade purchases are conditional on measured-grade availability. This is exactly the kind of consequence-level disclosure annotations cannot express.

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 pricing are front-loaded, and the long middle sentence about unpurchasable tiers carries genuinely load-bearing information rather than filler. It is denser than it strictly needs to be, packing several product names and caveats into one block, but nothing is redundant.

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 parameterless listing tool with a full annotation set and no output schema, the description supplies everything an agent needs to call it correctly and to interpret the credit pricing and purchasability caveats. Return shape is not described, but the safety annotations and pricing context make that a negligible gap.

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

Parameters4/5

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

The tool takes zero parameters, so per the rubric the baseline is 4. The description introduces no additional parameter detail (none exists), and none is needed for a parameterless lister.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Browse purchasable products with prices in credits') and immediately clarifies the credit-to-dollar rate. It is clearly distinct from purchase_data and check_balance in intent, but it never explicitly contrasts itself with the potentially-overlapping list_datasets sibling, so an agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete sequencing rule ('Call after register_agent') and a pre-purchase instruction ('check /v1/credits/pricing before buying'), which steers usage well. It stops short of naming the alternative tool to use when the task is not browsing products (e.g., list_datasets), so the when-not guidance is incomplete.

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

purchase_dataBuy a data product with creditsA
Destructive
Inspect

Buy a product with your credits; the data ships inline in the response. Deliverability is product-specific, including grade availability; check /v1/credits/pricing before buying — call list_products for the live prices rather than trusting a figure restated here, which is how a price in a second place drifts from the first. The signal_*, dag_* and mcp_unlimited keys are priced but return 503 not_yet_deliverable — they are deliberately blocked, not broken, because nothing grants their entitlement yet. Credits buy DATA; they do not change your access tier. Use api_key from register_agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyYesYour API key from register_agent
product_keyYesProduct key to purchase (e.g. depin_provenance, depin_networks; list_products has every key and price)
idempotency_keyNoOptional. Any stable string unique to THIS intended purchase (e.g. a uuid). If a network error makes you retry the same call, re-send the SAME idempotency_key: the retry returns the same receipt and re-delivers the data without a second charge.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: deliverability is product-specific, data is returned inline, specific key families return 503 by design, and credits do not alter access tier. It does not, however, describe receipt/error behavior or warn that the credit spend is irreversible.

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 the action and the return behavior. The parenthetical about a price 'drifting' from its first location is wordy meta-commentary, but the remaining sentences (503 blocked keys, credits buy data not tier) each carry operational value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by stating that data ships inline in the response and that deliverability is product-specific. For a destructive, credit-spending tool the remaining gap is the absence of receipt/charge-failure semantics, but the essentials for correct invocation are present.

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 product_key, api_key and idempotency_key are already fully documented, including retry semantics. The description only restates that the api_key comes from register_agent and points at list_products for keys/prices, adding little beyond the schema. Baseline 3 applies when the schema does the heavy lifting.

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 ('Buy a product with your credits') plus the key outcome ('the data ships inline in the response'), which distinguishes it from siblings like list_products (browse) and fetch_dataset (retrieve). An agent can identify the operation 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear prerequisite (api_key from register_agent), routes pricing lookups to list_products instead of trusting a restated figure, and names a concrete when-not case: the signal_*, dag_* and mcp_unlimited keys are priced but deliberately blocked. It stops short of advising when to prefer a read-only sibling over spending credits.

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

register_agentRegister an agent API keyAInspect

Creates an API key for this agent and grants the free starter credits ($5 free credits, no card (first 3 keys per IP per 30 days)). Past the per-IP limit a key is still created, with $0, and the response says so. A key is only needed for purchase_data, check_balance and topup_credits; every read-only tool works without one. email is optional and used for delivery and top-up notices.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoOPTIONAL contact email (for delivery and topup notifications). Omit to register anonymously.
agent_nameYesYour agent name

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare it is a non-idempotent write; the description adds the per-IP rate limit (3 keys/30 days), the degraded fallback behavior past that limit ($0 key still issued and the response says so), and that email is optional. These are behavioral traits not derivable from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the primary action and side effect, then the prerequisite routing, then the optional parameter note. No 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?

For a two-parameter write tool with no output schema, the description covers the trigger conditions, rate limits, degraded-mode behavior, and return-signal ('the response says so'). Nothing required to invoke it 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 documents both parameters. The description's note that email is optional is already in the schema; it adds no new syntax or format detail, 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+resource ('Creates an API key for this agent') plus the side effect of granting starter credits. It is clearly distinguishable from the read-only sibling tools it names.

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 states when a key is needed (purchase_data, check_balance, topup_credits) and when it is not (all read-only tools), which is exactly the routing information an agent needs against the 14 sibling tools.

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

topup_creditsAdd credits (card checkout link or USDC quote)AInspect

Add credits. Card (one call): {"method": "stripe", "amount": N} where N is $20 or $99 — returns a Stripe checkout_url already bound to your api_key, and credits post automatically once Stripe confirms payment at $1 = 1 credit. No human step and no wallet needed. USDC on Base ({"method": "usdc"}) is also accepted but requires more work: verify your sender first via POST /v1/credits/crypto/challenge and /verify with X-API-Key, sign the returned challenge with your own EOA, then pass the verified from_address and send only after a successful quote — credit requires finalized Base evidence. Instructions: https://kairossignal.com/docs/crypto.html

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount in USD to add. Fixed packs only: 20 or 99. Any other value returns the available packs instead of a link.
methodYesPayment method
api_keyYesYour API key
tx_hashNoLegacy optional field; a transaction hash does not replace from_address or verify payment.
from_addressNoRequired for USDC: your EOA address already verified to this API account through the wallet challenge flow.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare the generic profile (openWorldHint=true, non-idempotent, non-destructive). The description goes well beyond that: credits post automatically once Stripe confirms, the checkout_url is bound to the caller's api_key, $1 = 1 credit, USDC credit requires finalized Base evidence, and the legacy tx_hash is called out as non-substituting.

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 'Add credits.' and every clause carries information (pricing, flow steps, doc link). The inline JSON fragments slightly interrupt readability, but nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-step payment tool with no output schema, the description covers both flows, the return of checkout_url for card, and the preconditions for USDC, plus an external docs pointer. It omits what a USDC quote returns and how errors surface, which leaves a small gap.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it fixes amount to the $20/$99 packs with the $1=1 credit rate and explains that from_address must be an already-verified EOA. It does not document the quote/challenge response shape, which the schema also omits.

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+resource ('Add credits') and immediately enumerates the two supported funding paths (Stripe card, USDC on Base). This cleanly separates it from siblings like check_balance (read) and purchase_data (dataset purchase), so an agent can route without inspecting 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description contrasts the two methods explicitly: card is 'one call' with 'no human step and no wallet needed', while USDC 'requires more work' with a spelled-out verify/sign/quote sequence. It gives clear selection context but states no hard exclusions or failure/retry conditions.

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

verify_footprintVerify a row's Merkle inclusion proofA
Read-onlyIdempotent
Inspect

Retained Merkle-membership check for one depin_onchain observation: stamp_day (YYYYMMDD), leaf_index (0-based row in /attestations/batch_.tsv), expected_row_sha256. verified=true ONLY when the row at that index hashes to expected_row_sha256 AND its inclusion path reaches that day's manifest merkle_root. Says nothing about Bitcoin status or upstream accuracy. Returns JSON: row_sha256, merkle_root, row_hash_matches, inclusion_path_reaches_root, verified, proof_url. Use it when you hold a row from a daily batch and want to show it was committed that day; a call with arguments missing lists the days with a proof ready and a working example. Read-only, no key. Other datasets: unsupported (no retained proof).

ParametersJSON Schema
NameRequiredDescriptionDefault
datasetNoOnly depin_onchain has retained proofs (the default).depin_onchain
stamp_dayYesBatch day as YYYYMMDD (UTC); separators are ignored.
leaf_indexYes0-based line number of the row in /attestations/batch_<stamp_day>.tsv.
expected_row_sha256YesLowercase hex SHA-256 of that row's exact bytes (no trailing newline).

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover readOnly/idempotent/non-destructive, and the description adds real context beyond them: the exact truth condition for verified=true, an explicit statement of what it does NOT assert (Bitcoin status, upstream accuracy), the no-key requirement, and the missing-argument fallback. This is unusually rich behavioral disclosure.

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 the core purpose and truth condition, and every sentence carries content (scope limit, return fields, usage, fallback). It is dense with parentheticals and could be tightened, but nothing is clearly wasted.

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 no output schema, the description compensates by enumerating the returned JSON fields (row_sha256, merkle_root, row_hash_matches, inclusion_path_reaches_root, verified, proof_url). Combined with scope limits and usage, an agent has everything needed to call and interpret it.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds semantic meaning beyond the schema by tying expected_row_sha256 and leaf_index to the verified=true condition and the manifest merkle_root. It reinforces rather than merely repeats the field formats.

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+resource (retained Merkle-membership check for one depin_onchain observation) and scopes it tightly to a single dataset and row, distinguishing it from the sibling verify_value by naming the exact proof type and data domain. An agent can tell what it does 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit when ('when you hold a row from a daily batch and want to show it was committed that day'), a when-not ('Other datasets: unsupported'), and even describes missing-argument behavior (lists days with a proof ready plus an example). It does not name a sibling alternative to redirect to, so it stops short of the top bar.

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

verify_valueRe-check a value against its upstream sourceA
Read-only
Inspect

Re-reads the upstream API behind one of our values right now and reports where the same number appears in the upstream response (JSONPath), the relative difference, and a verdict: exact, within_1pct, within_10pct, no_matching_field or not_checkable_by_get. Use it to check a figure before relying on it. Makes one GET to a third-party API; read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
metricYesMetric name from get_network, e.g. ACTIVE_MINERS.
symbolYesNetwork ticker, e.g. FIL.

Output Schema

ParametersJSON Schema
NameRequiredDescription
oursYes
matchNo
metricYes
symbolYes
verdictYes
upstreamNo
explanationNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint=false and destructiveHint=false, so safety is covered. The description adds genuine value beyond that: it discloses the exact outbound behavior (one GET to a third-party API) and enumerates failure verdicts such as not_checkable_by_get and no_matching_field, which tell the agent what a null/negative result means.

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?

Three front-loaded sentences: what it does, when to use it, and its runtime footprint. Every sentence earns its place, with only mild redundancy in the trailing "read-only" clause that duplicates readOnlyHint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value shape needn't be re-explained, and the description still names the verdict vocabulary needed to interpret results. It is essentially complete, missing only cost/latency or rate-limit expectations for the third-party GET.

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 coverage is 100% with both parameters documented (metric tied to get_network metrics, symbol as network ticker), so the schema carries the load. The description adds nothing about parameter semantics or valid value ranges, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: it re-reads the upstream API behind a value and reports JSONPath location, relative difference, and a named verdict set. An agent immediately knows this is a source-verification tool, though the description never distinguishes it from the similarly named sibling verify_footprint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use it to check a figure before relying on it" gives a clear triggering condition. There are no exclusions, prerequisites, or comparison to alternatives such as verify_footprint or get_metric_history, so the agent must infer when this is preferable to those siblings.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • Addedget_depin_slashing_audit
    • Addedget_hodge_regime_sieve
    • Addedget_listing_dilution_score
    • Addedget_rmt_regime_state
    • Addedget_shap_node_attribution
  2. 6 tool updates
    • Changedget_derivation_ledger2 fields changed
      • changedInput schema / properties / symbol / description
        Previous value: -"Optional: filter to one symbol (e.g. AKT). Omit for the coverage list."New value: +"Optional: one network symbol, case-insensitive (e.g. AKT). Omit for the coverage list."
      • addedInput schema / properties / symbol / examples
        Added value: +[
        +  "AKT"
        +]
    • Changedget_metric_history2 fields changed
      • addedInput schema / properties / metric / examples
        Added value: +[
        +  "GPU_ACTIVE"
        +]
      • addedInput schema / properties / symbol / examples
        Added value: +[
        +  "AKT"
        +]
    • Changedget_network1 field changed
      • addedInput schema / properties / symbol / examples
        Added value: +[
        +  "AKT",
        +  "FIL",
        +  "HNT"
        +]
    • Addedget_network_signals
    • Changedverify_footprint6 fields changed
      • addedInput schema / properties / dataset / default
        Added value: +"depin_onchain"
      • addedInput schema / properties / dataset / description
        Added value: +"Only depin_onchain has retained proofs (the default)."
      • addedInput schema / properties / expected_row_sha256 / description
        Added value: +"Lowercase hex SHA-256 of that row's exact bytes (no trailing newline)."
      • addedInput schema / properties / leaf_index / description
        Added value: +"0-based line number of the row in /attestations/batch_<stamp_day>.tsv."
      • addedInput schema / properties / stamp_day / description
        Added value: +"Batch day as YYYYMMDD (UTC); separators are ignored."
      • changedInput schema / required
        Previous value: -[
        -  "dataset",
        -  "stamp_day",
        -  "leaf_index",
        -  "expected_row_sha256"
        -]New value: +[
        +  "stamp_day",
        +  "leaf_index",
        +  "expected_row_sha256"
        +]
    • Changedverify_value2 fields changed
      • addedInput schema / properties / metric / examples
        Added value: +[
        +  "ACTIVE_MINERS"
        +]
      • addedInput schema / properties / symbol / examples
        Added value: +[
        +  "FIL"
        +]

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    A
    maintenance
    MCP services for agent security preflight, source scanning, injection screening, proof-of-work policy rehearsal, carbon accounting, climate disclosure and regulatory monitoring. Use each hosted endpoint in the README. Inspect a free quote before buyer-authorized x402/USDC payment. Includes free trust and settlement tools. Maxwell rehearsal does not activate runtime protection.
    220
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.