Skip to main content
Glama

Server Details

Calibrated intelligence via x402 (USDC Base). ERC-8004 #84581: 272 payments, 49 wallets.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.3% over 62 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
ChatGPT
–
Claude
–

TDQS

A3.6/5.0

Scored across 27 tools

Disambiguation4/5

Tools target largely distinct domains (weather, FX, DeFi, crypto, prediction markets, health, seismology, space weather), so an agent can usually tell them apart from names and descriptions. Minor overlap exists between exchange_rates_verified and ecb_forex_fixing_vs_market, and between payto_preflight and registry_watch, but each has a differentiated angle (cross-verification vs fixing-vs-quote, address check vs change history).

Naming Consistency4/5

Almost the entire set uses a predictable snake_case, domain-plus-aspect convention (air_quality, fed_watch, gas_oracle_multi, polymarket_trades). The single clear deviation is 'dnsdomain', which breaks the pattern and reads oddly next to the rest. Overall very consistent with one outlier.

Tool Count4/5

27 tools is on the heavy side for most servers, but this is explicitly an aggregation 'mesh' where each tool represents a distinct external data source, so breadth is the product rather than redundancy. The inclusion of synthora_search as a discovery entry point helps navigate the catalog, though the count still borders on unwieldy.

Completeness4/5

Coverage is broad across macro/finance, crypto/DeFi, climate/weather, geopolitics, health and infrastructure monitoring, with sensible paired signals (rates, supply, yields, anomalies). A few thematic gaps exist (e.g. equities/commodities, broader news/event feeds), but the surface is largely self-consistent for an intelligence-mesh purpose.

Available Tools

27 tools
air_qualityA
Read-onlyIdempotent
Inspect

SYNTHORA air-quality: live air quality for any city or lat,lon — PM2.5/PM10/ozone/NO2, EU and US AQI, and a WHO-threshold operational verdict (good/moderate/harmful). Source: open-meteo Air Quality (CAMS/ESA Copernicus), free, no key. $0.01 USDC x402 Base. [x402: 0.01 USDC per call on Base]

NameRequiredDescriptionDefault
inputNoSYNTHORA air-quality: live air quality for any city or lat,lon — PM2.5/PM10/ozone/NO2, EU and US AQI, and a WHO-threshold operational verdict (good/moderate/harmful). Source: open-meteo Air Quality (C

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/idempotent/no-destructive, and the description usefully adds the upstream source (open-meteo CAMS/ESA Copernicus), that no API key is required, and the $0.01 USDC x402-on-Base payment/access model. It stops short of rate limits or response-shape detail, but for a pure read tool the added cost and access context is meaningful.

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?

Purpose is correctly front-loaded and the sentences are tight, but the trailing '[x402: 0.01 USDC per call on Base]' simply restates the earlier '$0.01 USDC x402 Base', and the 'SYNTHORA air-quality:' branding prefix is redundant with the tool name. Some trimming would sharpen it.

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?

With no output schema and only one optional param, the description carries the load well: it names the pollutant metrics, both AQI scales, the derived verdict, the data source, and the cost. Only minor gaps (caching, rate limits, error/format on invalid locations) remain.

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 is a single param with full schema coverage, whose only example is 'Delhi'. The description adds real semantic value by revealing that the input also accepts a 'lat,lon' coordinate pair, broadening the agent's understanding of valid input beyond the schema's city-name example.

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 resource (live air quality) with a precise scope (any city or lat,lon) and enumerates the exact outputs: PM2.5/PM10/ozone/NO2, EU and US AQI, and a WHO-threshold verdict. The 'live' qualifier naturally separates it from the historical_weather sibling, so an agent can classify it 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 Guidelines3/5

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

Usage is only implied through the word 'live' and the accepted input forms ('any city or lat,lon'). There is no explicit 'use this when X, use historical_weather when Y' routing and no stated prerequisites beyond the cost note. Adequate but leaves the agent to infer the current-vs-historical boundary.

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

bitcoin_feesA
Read-onlyIdempotent
Inspect

SYNTHORA bitcoin-fees: Bitcoin fee tiers in sat/vB (fastest/half-hour/hour/economy/minimum) plus current block height. Source: mempool.space public API, keyless. Bitcoin only. [x402: 0.01 USDC per call on Base]

NameRequiredDescriptionDefault
redNoOptional Bitcoin-only selector; exact lowercase bitcoin. Omit for Bitcoin. Does not select fee tier.
networkNoOptional Bitcoin-only selector; exact lowercase bitcoin. Omit for Bitcoin. Does not select fee tier.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds genuinely useful context beyond that: the data source (mempool.space public API, keyless) and the access cost (0.01 USDC per call via x402), which an agent needs to know before invoking.

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?

Dense and front-loaded: resource, return shape, source, payment model all in one compact block. The 'SYNTHORA bitcoin-fees:' prefix duplicates the tool name and the separate x402 bracket could be smoother, but nothing is wasted.

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?

With no output schema, the description carries the burden of describing returns and does so (the five fee tiers plus block height), alongside source and cost, while annotations cover the read-only profile. Minor gaps remain around freshness/caching of the block-height value and error behavior.

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 both parameters have explicit const values, so the schema fully documents them. The description only echoes 'Bitcoin only', adding nothing about the odd duplicated red/network selectors; 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.

Purpose4/5

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

States a specific resource (Bitcoin fee tiers) and enumerates exactly what comes back (fastest/half-hour/hour/economy/minimum in sat/vB plus current block height), which is more specific than most siblings. However, it never names or contrasts an alternative (e.g. gas_oracle_multi), so the differentiation is implicit rather than stated.

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?

'Bitcoin only' and the fee-tier enumeration imply this is the tool for Bitcoin fee lookups, giving implied usage context. There is no explicit when-to-use/when-not guidance and no pointer to a sibling for multi-chain or non-Bitcoin fee data, so routing is left to inference.

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

defi_llama_tvl_rankingA
Read-onlyIdempotent
Inspect

SYNTHORA defi-llama-tvl-ranking: Top DeFi protocols by TVL with rank, chain, category and 1d/7d change, capped list (default 50, max 200 via {"limit":N}). Source: api.llama.fi/protocols (DefiLlama), keyless, timestamped. [x402: 0.01 USDC per call on Base]

NameRequiredDescriptionDefault
limitNotop N, default 50, max 200

TDQS

A3.9/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly, idempotent, openWorld), but the description adds genuinely useful context beyond them: the upstream source and its keyless nature, timestamping, and a per-call x402 cost on Base. That cost/auth disclosure materially helps an agent decide whether to call it.

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?

A single dense sentence that front-loads the resource and return fields before constraints and cost. The 'SYNTHORA defi-llama-tvl-ranking:' prefix is mildly redundant with the tool name but overall it wastes little space.

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?

With no output schema, the description usefully names the return fields and the list cap, plus source and payment model. A brief note on pagination or sort order would make it fully complete, but an agent has enough to call it 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 description coverage is 100% and the only parameter is already documented as 'top N, default 50, max 200'. The description repeats the same default/max, adding no syntax or format detail beyond the schema, 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?

Specific verb+resource: ranks DeFi protocols by TVL, and it enumerates the returned fields (rank, chain, category, 1d/7d change), which cleanly separates it from siblings like defi_yields and stablecoin_supply.

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 'Top DeFi protocols by TVL' framing implies when to call it, but there is no explicit when-not guidance and no sibling alternatives (e.g. defi_yields) named. Usage is implied rather than stated.

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

defi_yieldsA
Read-onlyIdempotent
Inspect

SYNTHORA defi-yields: stablecoin DeFi yields ranked with a risk outlier detector — APY vs class median (>=3x median = the excess yield IS the risk price). Only pools with TVL >= $10M. Source: DefiLlama, free, no key. $0.01 USDC x402 Base. [x402: 0.01 USDC per call on Base]

NameRequiredDescriptionDefault
redNoOptional nonempty chain name, trimmed and matched case-insensitively for exact equality against captured pool.chain. Omit for all captured eligible chains. A chain outside that captured universe returns an explicit error; this does not select another data source.
desdeNoOptional timezone-aware ISO8601 cut, not in the future. Compares current eligible pools with the latest local batch at or before that cut. Changes use the full eligible universe, independently of red/activo/protocolo display filters. Missing older batches are reported; no history coverage is guaranteed.
activoNoOptional nonempty asset symbol token. It is trimmed, uppercased and matched against tokens of the pool symbol (for example USDC); not a substring, contract-address or mint lookup. Omit for all eligible symbols. A token with no matches may produce an empty selected list.
pool_idNoOptional exact pool ID for local batch-history retrieval only; it does not filter the current top-pool list. History defaults to 30 days unless historial_dias supplies 1-90. This is not a live DefiLlama history request; missing local history is disclosed as a gap.
protocoloNoOptional nonempty protocol/project identifier, such as aave-v3. Trimmed and matched case-insensitively for exact equality with pool.proyecto; not a substring or protocol-contract lookup. Omit for all projects in the captured eligible universe.
historial_diasNoRequires pool_id; history availability is not guaranteed.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, openWorld), so the bar is lower, and the description clears it by disclosing the data source (DefiLlama, no key), the TVL eligibility floor, and — most usefully — that calls are metered at $0.01 USDC via x402 on Base. That payment/auth context is exactly the kind of behavior annotations cannot express. No rate limits or result-size limits are mentioned.

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?

Front-loads the resource and mechanic well, but the brand prefix 'SYNTHORA defi-yields:' is filler and the payment fact is stated twice ('$0.01 USDC x402 Base' followed by '[x402: 0.01 USDC per call on Base]'). Dense and readable, yet it wastes budget on redundancy while omitting parameter guidance.

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?

With six optional parameters, no required fields, and no output schema, the description should carry more of the return-shape burden. It does convey the metric and the outlier rule, but says nothing about how many pools come back, ordering beyond 'ranked', or how the pool_id/desde history mode differs in output from the current-list mode, leaving real gaps.

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 six parameters (red, desde, activo, pool_id, protocolo, historial_dias) are fully documented in the schema. The description adds no parameter-level detail beyond the implicit idea of a 'class' comparison; baseline 3 is appropriate when the schema does all the work.

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 resource (stablecoin DeFi yields) plus the differentiating mechanic (APY ranked against class median with a >=3x outlier flag). This is intrinsically separable from siblings like defi_llama_tvl_ranking (TVL) and stablecoin_supply (supply), so an agent can route 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 Guidelines3/5

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

Gives scoping context ('Only pools with TVL >= $10M') and interpretive guidance ('>=3x median = the excess yield IS the risk price'), which shapes how results should be read. It never states when to prefer this over a sibling or when it is the wrong tool, so usage is implied rather than directed.

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

dnsdomainA
Read-onlyIdempotent
Inspect

Full DNS + WHOIS/RDAP domain report in one call. Resolves A, AAAA, MX, TXT, NS, CNAME, SOA and DNSSEC over DNS-over-HTTPS, plus structured WHOIS via RDAP (registrar, registration/expiration/updated dates, EPP status, nameservers), and returns a 0-100 domain-hygiene score with letter grade (age, days-to-expiry, nameserver redundancy, MX presence, DNSSEC, SPF/DMARC, registrar lock). Deterministic, Ed25519-signed. 0.001 USDC via x402 on Base. SYNTHORA. First 3 calls FREE per wallet — send header 'X-WALLET: 0x' (no payment); then 0.001 USDC per call. [x402: 0.001 USDC per call on Base]

NameRequiredDescriptionDefault
domainYesDomain, URL or email address to report on

TDQS

A3.6/5.0
Behavior4/5

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

The annotations already declare readOnly, idempotent and non-destructive, and the description goes further by disclosing price (0.001 USDC via x402 on Base), a free tier of three calls per wallet, the X-WALLET auth header, determinism, and Ed25519 signing. This is real behavioral context beyond the structured fields. It falls short of 5 because the interaction between the free tier and the header is ambiguous (is the header needed only while free calls remain?) and the pricing is stated twice in different forms.

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 capability and output enumeration is front-loaded and useful, but the pricing model appears twice ('0.001 USDC via x402 on Base' and the bracketed x402 footer) and the bare 'SYNTHORA' branding is noise. Roughly a third of the text is payment repetition rather than decision-relevant content.

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?

With no output schema, the description must explain returns, and it does so well by naming the record types, the RDAP fields (registrar, dates, EPP status, nameservers) and the score components. What is missing is failure behavior — what happens on NXDOMAIN, a domain with no RDAP record, or a rejected wallet/payment — which matters for a network-dependent lookup.

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 there is only one parameter, so the schema ('Domain, URL or email address to report on') carries the full semantic load. The description adds no format examples, no normalization rules, and no error guidance for malformed domains, so it earns only the baseline.

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 — a full DNS plus WHOIS/RDAP report for a domain — and even enumerates the exact record types (A, AAAA, MX, TXT, NS, CNAME, SOA, DNSSEC) and hygiene scoring inputs. It is highly specific about what the tool produces. However, it never positions itself against sibling tools such as registry_watch, which an agent may confuse with domain-registry lookups.

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 through the capability list: an agent can infer it should call this when it needs DNS records plus registration data for one domain. But there is no explicit when-to-use/when-not, no alternatives named, and no guidance on how it relates to registry_watch or who_gho_indicator_timeseries-style watching tools. The payment/tier text is invocation mechanics, not selection guidance.

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

doaj_article_searchA
Read-onlyIdempotent
Inspect

Searches the Directory of Open Access Journals article index, returning titles, authors, DOIs, journal, ISSNs, abstracts and open-access full-text links as JSON. A keyless endpoint for autonomous research agents and agent-to-agent workflows sourcing legally free, peer-reviewed open-access literature. First 3 calls FREE per wallet — send header X-WALLET: 0x. No charge on upstream failure. [x402: 0.005 USDC per call on Base]

NameRequiredDescriptionDefault
queryYesquery

TDQS

A4.1/5.0
Behavior5/5

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

Annotations only cover the safety profile (read-only, idempotent, open-world, non-destructive); the description goes well beyond that by disclosing the payment model (x402 0.005 USDC on Base), a free tier (first 3 calls per wallet), the required X-WALLET header with format, and the no-charge-on-failure guarantee. This is exactly the kind of auth/cost behavior an agent cannot infer from 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?

The core capability is front-loaded in the first sentence, followed by audience framing and then the critical payment details. Some phrasing ('agent-to-agent workflows', 'legally free') is promotional, but every clause carries usable information.

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?

With no output schema, the description compensates by listing the return fields, and it fully covers the cost/auth mechanics needed to invoke the endpoint successfully. The only omission is query-syntax guidance, which is minor for a single free-text parameter.

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?

Only one parameter (query) and schema coverage is 100%, so the baseline is 3. The description adds no query syntax guidance (boolean operators, field targeting) that would help a search agent construct a valid query.

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 ('Searches the Directory of Open Access Journals article index') and enumerates the returned fields (titles, authors, DOIs, journal, ISSNs, abstracts, full-text links). No sibling tool overlaps this domain, so it is trivially distinguishable.

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 description frames the intended context ('autonomous research agents', 'legally free, peer-reviewed open-access literature') which implies when to reach for it, but never states when NOT to use it or names an alternative tool for adjacent needs. Usage is implied rather than explicit.

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

ecb_forex_fixing_vs_marketA
Read-onlyIdempotent
Inspect

SYNTHORA ecb-forex-fixing-vs-market: Compare the official ECB daily EUR/USD reference fixing with a client-supplied USD-per-EUR quote, timestamp and provenance. Reports deviation in basis points and coverage/freshness gaps. The client quote is not independently verified. No live market quote is supplied or inferred; this commercial path does not redistribute open.er-api rates. [x402: 0.01 USDC per call on Base]

NameRequiredDescriptionDefault
parNoOnly supported pair, EUR/USD; quote units are USD per EUR. Omission defaults to EUR/USD.EUR/USD
market_rateYesRequired positive finite USD per EUR quote supplied by the client, as a JSON number or decimal numeric string. Backend rejects booleans, nonnumeric, nonfinite, overflow and float-underflow-to-zero values. String positivity and numeric validity are checked by the backend.
market_provenanceYesRequired client-supplied quote provenance, at most 1000 characters and nonempty after whitespace trimming. Attribution is not independent verification or evidence of usage rights.
market_timestamp_unixYesRequired client quote timestamp in Unix seconds UTC. Backend rejects booleans, unrepresentable dates and times more than 300 seconds in the future. Historical timestamps are accepted but age/coverage gaps may prevent a quality claim.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/non-destructive, so the description's added value is the caveats: the client quote is not independently verified, no live quote is inferred, and there is a per-call charge (x402: 0.01 USDC on Base). These are meaningful behavioral disclosures beyond the structured annotations, though it says little about failure modes when coverage gaps prevent a quality claim.

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?

It is front-loaded with the core comparison before the caveats and pricing, and every clause carries information. Minor waste in restating the tool's own slug as a prefix, but otherwise tight.

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?

With no output schema, the description carries the return-value burden and does so by stating it reports deviation in basis points and coverage/freshness gaps. Combined with annotations covering safety, this is nearly complete; only the exact response shape and behavior under insufficient coverage remain unspecified.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents par, market_rate, market_provenance and market_timestamp_unix in detail (validation rules, units, limits). The description only restates that the quote, timestamp and provenance are client-supplied, adding no syntax or format meaning beyond the schema, 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 names a specific verb (Compare) and both resources (official ECB daily EUR/USD reference fixing vs. a client-supplied USD-per-EUR quote), plus the derived output (deviation in basis points, coverage/freshness gaps). This clearly separates it from siblings like exchange_rates_verified and ecb_macro, which do not perform a client-quote-vs-fixing comparison.

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?

It gives clear context for when the tool applies (you must supply your own quote, timestamp and provenance) and an exclusion ('No live market quote is supplied or inferred; this commercial path does not redistribute open.er-api rates'), steering agents that want a live rate elsewhere. It stops short of naming the specific alternative tool, so it is not a full 5.

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

ecb_macroA
Read-onlyIdempotent
Inspect

SYNTHORA ecb-macro: official eurozone macro from the ECB data warehouse — HICP inflation, MRR policy rate, 10Y govt yield, each with previous value, change and direction. For macro/rates agents and prediction markets. Official free source, no key. $0.03 USDC x402 Base. [x402: 0.03 USDC per call on Base]

NameRequiredDescriptionDefault
modeNoCompatibility field constrained to latest by the public schema. The currently routed backend ignores it and requests the last two observations of each fixed series. It provides no selectable date/history mode; latest is not a live-feed or freshness guarantee.
regionNoCompatibility field constrained to U2 by the public schema. The currently routed backend ignores this argument and requests its three fixed Euro-area (U2) ECB series; it cannot select another region.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/idempotent/non-destructive, so the description's added value is real: it discloses that the source is official, free, requires no key, and that calls cost $0.03 USDC via x402 on Base. That payment/auth context is not available in the annotations and is exactly the kind of detail an agent needs. It omits freshness/update cadence and rate limits, so it is not 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.

Conciseness3/5

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

It is front-loaded and compact, but the pricing is stated twice ("$0.03 USDC x402 Base" and then "[x402: 0.03 USDC per call on Base]") and the "SYNTHORA ecb-macro:" prefix is branding noise. Roughly a quarter of the text does not earn 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?

With no output schema, the description carries the burden of describing returns and does so adequately (three fixed series, each with prior value/change/direction), and it covers source, auth, and cost. The notable remaining gap is freshness — the schema warns latest is not a live-feed guarantee, but the description implies current data without qualification.

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 the two parameters are already richly documented in-schema (including the caveat that the backend ignores both mode and region). The description adds nothing about parameters, so the baseline 3 for high-coverage schemas 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?

The description names a specific resource (ECB data warehouse) and enumerates the exact series returned — HICP inflation, MRR policy rate, 10Y govt yield — plus the shape of each reading (previous value, change, direction). That level of specificity implicitly separates it from the forex sibling, but it never explicitly contrasts itself with any of the other 26 tools, so it stops short of a 5.

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?

"For macro/rates agents and prediction markets" gives an implied audience and therefore implied usage context, but there is no when-to-use statement, no exclusion, and no named alternative (e.g., fed_watch for US rates). An agent must infer the routing decision on its own.

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

exchange_rates_verifiedB
Read-onlyIdempotent
Inspect

SYNTHORA exchange-rates-verified: FX rates for 160+ currencies CROSS-VERIFIED between two independent sources (ECB official fixing via frankfurter.app vs market aggregate open.er-api.com) with per-currency deviation in bps and divergence alert >50 bps. The product is the discrepancy: a bad rate breaks a financial agent. Free sources, no key. $0.03 USDC x402 Base. [x402: 0.03 USDC per call on Base]

NameRequiredDescriptionDefault
inputNoSYNTHORA exchange-rates-verified: FX rates for 160+ currencies CROSS-VERIFIED between two independent sources (ECB official fixing via frankfurter.app vs market aggregate open.er-api.com) with per-cur

TDQS

B3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: the dual-source cross-verification method, the per-currency deviation in bps, the >50 bps divergence alert threshold, and the paid x402 cost model ($0.03 USDC per call on Base, no key). That pricing/auth detail is exactly what annotations cannot convey.

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

Conciseness3/5

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

The tool identity is front-loaded, but the body is dense marketing prose packed into one run-on sentence, with the payment line duplicated ('$0.03 USDC x402 Base' and '[x402: 0.03 USDC per call on Base]'). It is readable but not economical.

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?

With no output schema, the description carries the burden of explaining returns, and it partly does (deviation bps, divergence alert). But the single `input` parameter is left unexplained, and the tool's relationship to its obvious sibling `ecb_forex_fixing_vs_market` is unaddressed, leaving a real gap for correct invocation.

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 one optional parameter named `input`, and the schema's description of it is just a truncated copy of the tool blurb. Schema coverage is nominally 100% but the content is uninformative, and the description never explains what a caller should pass (currency pair? code list? empty string?). Per the high-coverage baseline, a 3 is appropriate, but the description adds nothing here.

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

Purpose3/5

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

The description states a specific resource and mechanism (FX rates for 160+ currencies cross-verified between ECB/frankfurter.app and open.er-api.com), which is far more than a tautology. However, it never distinguishes itself from the near-identical sibling `ecb_forex_fixing_vs_market`, so an agent cannot tell the two apart from the text alone.

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 when-to-use guidance, no statement of when this is preferable to `ecb_forex_fixing_vs_market` or `ecb_macro`, and no exclusions. The pitch about 'a bad rate breaks a financial agent' implies a use case but stops short of routing the agent to this tool over an alternative.

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

fed_watchA
Read-onlyIdempotent
Inspect

SYNTHORA fed-watch: US reference-rate funding pulse — SOFR/EFFR/TGCR/BGCR/OBFR with volumes, percentile dispersion and the SOFR-EFFR spread (the funding-stress signal before it hits the news). Cross-check of 5 independent official NY Fed series. The input for Fed/CPI prediction markets. Free official source, no key. $0.03 USDC x402 Base. [x402: 0.03 USDC per call on Base]

NameRequiredDescriptionDefault
inputNoSYNTHORA fed-watch: US reference-rate funding pulse — SOFR/EFFR/TGCR/BGCR/OBFR with volumes, percentile dispersion and the SOFR-EFFR spread (the funding-stress signal before it hits the news). Cross-c

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, openWorld), so the bar is lower, and the description still adds valuable operational context: free official source, no key required, 5 independent NY Fed series, and a stated cost. Cost/source/auth details are genuinely beyond what the annotations provide.

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?

One long run-on sentence with marketing phrasing. The cost is stated redundantly ('$0.03 USDC x402 Base' then '[x402: 0.03 USDC per call on Base]'), and the parenthetical about news is filler rather than load-bearing detail.

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?

With no output schema and a trivial single optional param, the description adequately describes the return content (series, volumes, dispersion, spread) and the commercial/access terms. It is close to complete for such a low-complexity fetch tool, missing only any note on time range or refresh cadence.

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%, but the single 'input' parameter's description is just a truncated copy of the tool description, adding no real semantics. Per the high-coverage baseline, 3 is the ceiling absent extra parameter meaning.

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 names a very specific resource set (SOFR/EFFR/TGCR/BGCR/OBFR, volumes, percentile dispersion, SOFR-EFFR spread) that no sibling tool covers, so an agent can distinguish it from exchange_rates_verified or ecb_macro. It lacks an explicit verb like 'fetches' but the data it returns 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?

It implies a use case ('The input for Fed/CPI prediction markets') and gestures at the timing value ('the funding-stress signal before it hits the news'), but never states when to prefer this over siblings like polymarket_markets or when it is not appropriate. Usage is inferable, not stated.

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

gas_oracle_multiA
Read-onlyIdempotent
Inspect

SYNTHORA gas-oracle-multi: gas price across 5 chains (ethereum, base, arbitrum, optimism, polygon), each VERIFIED by two independent public RPCs with divergence report — a single RPC can lie or lag; dual-verified is what you time transactions with. Free public RPCs, no key. $0.03 USDC x402 Base. [x402: 0.03 USDC per call on Base]

NameRequiredDescriptionDefault
inputNoSYNTHORA gas-oracle-multi: gas price across 5 chains (ethereum, base, arbitrum, optimism, polygon), each VERIFIED by two independent public RPCs with divergence report — a single RPC can lie or lag; d

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, open-world, non-destructive, so the bar is lower. The description adds real behavioral context the annotations cannot: pricing ($0.03 USDC per call via x402 on Base), that no API key is needed, and that each chain is cross-checked against two RPCs with a divergence report — a meaningful output-quality disclosure. It omits rate limits and error behavior, keeping it from 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.

Conciseness3/5

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

Front-loaded with the core capability, but it is a single run-on sentence with heavy ALL-CAPS emphasis and a redundant price restatement ('$0.03 USDC x402 Base' then '[x402: 0.03 USDC per call on Base]'). The marketing tone and duplication dilute an otherwise tight statement.

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?

With no output schema and one parameter, the description should clarify the return shape more than it does. It mentions a 'divergence report' but never says whether a call returns all five chains or just the requested one, which is exactly the ambiguity an agent needs resolved before invoking.

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 reported at 100%, so the baseline of 3 applies. The description mentions the chain set and the example shows a 'chain' value, but it never explains the single 'input' parameter's expected format or whether one chain is selected per call — and the schema's own description is merely a truncated copy of the tool description, so it adds no independent value.

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 resource (gas price) with its exact scope (5 named chains: ethereum, base, arbitrum, optimism, polygon). This cleanly distinguishes it from siblings like bitcoin_fees (single non-EVM chain) and top_crypto, so an agent can route 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 Guidelines3/5

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

The line 'dual-verified is what you time transactions with' gives an implicit usage rationale, but there is no explicit when-to-use/when-not, no named alternative, and no statement of when a single-RPC sibling would suffice. Usage is implied rather than directed.

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

gdelt_tensionA
Read-onlyIdempotent
Inspect

SYNTHORA gdelt-tension: geopolitical tension index for any topic/country — news-mention spike vs 7d baseline, average tone shift, escalation flag and the headlines causing it. The early signal for Polymarket geopolitical markets (high variance, high spread). Source: GDELT DOC 2.0 (100+ languages, free, no key), 6h-prefetched cache for reliability. [x402: 0.03 USDC per call on Base]

NameRequiredDescriptionDefault
inputNoSYNTHORA gdelt-tension: geopolitical tension index for any topic/country — news-mention spike vs 7d baseline, average tone shift, escalation flag and the headlines causing it. The early signal for Pol

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, open-world, non-destructive behavior, so the safety bar is met. The description adds genuinely useful operational context beyond that: the data source (GDELT DOC 2.0, 100+ languages, free, no key), a 6h-prefetched cache implying data freshness limits, and a per-call x402 cost of 0.03 USDC on Base. Rate limits and failure modes are not stated, keeping it below 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?

Front-loaded with the tool's function and dense with information; the cost and source details earn their place. The redundant 'SYNTHORA gdelt-tension:' self-reference and branding prefix add slight noise, and the schema description repeats this text, but the description itself wastes little space.

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 one-parameter, read-only tool with no output schema, the description adequately covers what is returned (index values, spike ratio, tone shift, escalation flag, headlines) and the data provenance. Freshness is conveyed via the 6h cache note. It stops short of documenting response shape details or edge cases, 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?

With one parameter at 100% schema coverage, baseline is 3. The description adds only an implicit signal that the input is a topic/country string ('for any topic/country'), while the schema's own parameter text is just a truncated repeat of the description and does not explain expected input format. No syntax, examples, or matching rules are contributed.

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 resource (geopolitical tension index for any topic/country) with concrete outputs: 'news-mention spike vs 7d baseline, average tone shift, escalation flag and the headlines causing it.' It also positions itself against siblings by framing the use case relative to Polymarket geopolitical markets, so an agent can distinguish it from polymarket_markets or polymarket_trades.

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 phrase 'The early signal for Polymarket geopolitical markets (high variance, high spread)' implies when this is useful, but no explicit when-to-use vs when-not, no named alternatives, and no prerequisite conditions are given. Usage is inferrable from context rather than stated.

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

github_repo_activityA
Read-onlyIdempotent
Inspect

SYNTHORA github-repo-activity: Activity metrics for any public GitHub repo (input owner/repo): stars, forks, open issues, last push, language, archived flag. 10-min in-process cache, stale-on-rate-limit or ok:false. Source: api.github.com, keyless. [x402: 0.03 USDC per call on Base; first 1 calls free]

NameRequiredDescriptionDefault
inputNoowner/repo

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/open-world safety, and the description adds real operational context beyond them: a 10-minute in-process cache, stale-on-rate-limit fallback behavior with an ok:false signal, the upstream source (api.github.com, keyless), and the x402 pricing (0.03 USDC per call, first call free). These are exactly the traits an agent cannot derive from 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?

A single dense, front-loaded block: purpose first, then caching/error semantics, then source and pricing. Nothing is wasted, though cramming billing and cache policy into one sentence makes it slightly harder to scan.

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?

No output schema exists, so the description's field list (stars, forks, issues, push date, language, archived) carries the return-value burden and does so adequately. Combined with cache/error semantics, pricing, and the keyless source, an agent has everything needed to call it 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?

Only one parameter exists and schema description coverage is 100%, so the schema already documents 'owner/repo'. The description restates the same format without adding syntax detail, validation rules, or examples beyond the schema — the baseline 3 for schema-covered params.

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 resource (public GitHub repo activity metrics) and enumerates exactly what is returned: stars, forks, open issues, last push, language, archived flag. No sibling tool covers GitHub, so it is unambiguously distinguishable.

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?

Gives the required input shape (owner/repo), states it works on any public repo and is keyless, which implies usage context. However it never states when to use this versus alternatives or when it is inappropriate (private repos, non-existent owners), leaving selection logic to inference.

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

historical_weatherA
Read-onlyIdempotent
Inspect

SYNTHORA historical-weather: verified historical weather for any place and date (1940 → ~5 days ago) from the ERA5 reanalysis — tmax/tmin, precipitation, max wind. For climate-market backtesting and claim verification. Source: open-meteo archive, free, no key. $0.03 USDC x402 Base. [x402: 0.03 USDC per call on Base]

NameRequiredDescriptionDefault
inputNoSYNTHORA historical-weather: verified historical weather for any place and date (1940 → ~5 days ago) from the ERA5 reanalysis — tmax/tmin, precipitation, max wind. For climate-market backtesting and c

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld/destructive=false, but the description adds materially new operational facts the annotations cannot carry: the upstream source is open-meteo's free archive, no API key is needed, and each call costs $0.03 USDC paid via x402 on Base. Permission/return-shape details are still absent.

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 content is front-loaded and dense, but the pricing is stated twice in the same sentence ('$0.03 USDC x402 Base. [x402: 0.03 USDC per call on Base]') and the name is redundantly prefixed with 'SYNTHORA historical-weather'. Trimming the duplicate payment clause would improve it.

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?

With no output schema, the description usefully enumerates the returned variables, spatial/temporal coverage, data provenance, and cost, which is most of what an agent needs. It omits return format/precision and how the 'input' argument should be structured, a minor but 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?

Schema description coverage is 100%, so the baseline is 3. The description adds nothing about how to format the single 'input' argument (the schema's own example shows a date/place object, which does not match the string property), so it neither compensates for nor clarifies parameter semantics.

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?

It names a specific verb+resource ('historical weather for any place and date'), states the temporal coverage (1940 → ~5 days ago), the underlying dataset (ERA5 reanalysis), and the exact returned variables (tmax/tmin, precipitation, max wind). This clearly separates it from siblings like air_quality and space_weather_risk.

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?

It gives explicit intended uses ('climate-market backtesting and claim verification') and a hard applicability boundary (only dates from 1940 up to ~5 days ago). It does not name an alternative tool or say when NOT to call it, so it stops short of full routing guidance.

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

npm_downloads_rangeA
Read-onlyIdempotent
Inspect

Returns a per-day download time series for an npm package over a period from keyless api.npmjs.org — the raw signal for trend and growth-rate detection. Lets autonomous agents compute momentum/decline and feed agent-to-agent dependency-selection scoring. Ranking surface for trajectory. First call FREE per wallet — send header X-WALLET: 0x. No charge on upstream failure. [x402: 0.001 USDC per call on Base]

NameRequiredDescriptionDefault
endNoEnd date text in YYYY-MM-DD form, paired with start for an explicit npm start:end range. The pair overrides period. A lone end is ignored in favor of period/default. Calendar validity, interval ordering and upstream range limits are not validated locally.
startNoStart date text in YYYY-MM-DD form for an explicit npm start:end range. Used only when end is also nonempty; the pair overrides period. A lone start is ignored in favor of period/default. The current backend forwards date text without local calendar or ordering validation.
periodNoNamed npm daily-download range: last-day, last-week or last-month. Defaults to last-week when a complete start/end pair is absent. Nonempty start and end together override period; unsupported period values are rejected only on the named-range branch.last-week
packageYesnpm package, including scoped packages

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish the safe read-only/idempotent profile, but the description adds real behavioral context beyond them: the x402 pricing (0.001 USDC per call on Base), the first-call-free-per-wallet rule, the required X-WALLET header, and no charge on upstream failure. It stops short of explaining rate limits or error/response behavior in any detail.

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 purpose is front-loaded and the payment facts are useful, but the middle sentences ('feed agent-to-agent dependency-selection scoring', 'Ranking surface for trajectory') are promotional filler that does not help an agent select or invoke the tool.

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?

With no output schema, the description carries the burden of describing the return and does so ('per-day download time series'), and it discloses the payment/auth requirements needed to call it successfully. It is nearly complete, lacking only error-mode and pagination/volume expectations.

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 all four parameters (package, period, start, end) are already documented in the schema, including the start/end-overrides-period rule. The description only echoes 'over a period' and adds no syntax or format meaning beyond the schema, 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 precise verb+resource+scope: 'Returns a per-day download time series for an npm package over a period.' The npm-package resource and per-day granularity cleanly distinguish it from sibling timeseries tools like github_repo_activity or who_gho_indicator_timeseries.

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 only implied through outcome-oriented phrasing ('raw signal for trend and growth-rate detection', 'compute momentum/decline'). There is no explicit when-to-use vs when-not guidance and no named alternative tool for adjacent tasks such as repo activity or package metadata.

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

payto_preflightA
Read-onlyIdempotent
Inspect

x402 PayTo Pre-Flight: verify a payTo address against the live registry before paying. Detects payTo hijacking, stale endpoints and unknown resources. Deterministic, <200ms, no external network. 0.01 USDC via x402 on Base. SYNTHORA. [x402: 0.01 USDC per call on Base]

NameRequiredDescriptionDefault
chainNoexpected chain, e.g. eip155:8453
endpoint_urlYesendpoint resource URL to verify
expected_payToNoexpected payTo address (0x...)

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld, and the description adds real behavioral context: deterministic, <200ms latency, and cost. It still doesn't say what a negative result looks like or what happens on registry miss. Minor tension between 'no external network' and openWorldHint=true, but 'no external network' reads as a determinism/latency claim rather than a flat denial of external interaction, so it is not flagged.

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 purpose is front-loaded, but the text is a run-on that repeats the pricing twice ('0.01 USDC via x402 on Base' and '[x402: 0.01 USDC per call on Base]') and appends a bare brand tag 'SYNTHORA' that carries no invocation 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?

For a 3-param read-only check with no output schema, the description covers purpose, latency, cost, and the categories of findings, which is enough to call it correctly. It could be tighter on what a failed verification returns, but nothing essential 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 chain, endpoint_url, and expected_payTo. The description adds no syntax or format guidance beyond what the schema provides, 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 and resource: 'verify a payTo address against the live registry before paying.' It further names the failure classes it catches (hijacking, stale endpoints, unknown resources), so an agent can distinguish it from siblings like registry_watch or synthora_search 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 Guidelines4/5

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

The phrase 'before paying' gives a clear usage context, telling the agent this is a pre-payment safety check. However, it names no explicit alternative and gives no when-not guidance, so it stops short of a 5.

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

polymarket_marketsA
Read-onlyIdempotent
Inspect

Search prediction markets ACROSS PLATFORMS (Polymarket + Kalshi) in one call: live prices, implied probability, volume, liquidity, end date and market conviction. Server-side search that actually finds the market (bitcoin, fed, election, geopolitics). For trading and forecasting agents tracking event odds. $0.05 USDC x402 Base. Input: {"input": "bitcoin"} (optional filter). Ed25519-signed. [x402: 0.05 USDC per call on Base]

NameRequiredDescriptionDefault
inputNoSearch prediction markets ACROSS PLATFORMS (Polymarket + Kalshi) in one call: live prices, implied probability, volume, liquidity, end date and market conviction. Server-side search that actually find

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, open-world, non-destructive behavior, and the description adds genuinely new context: a per-call price ($0.05 USDC on Base x402) and Ed25519 signing. It also discloses that search is server-side and what fields come back, though it omits rate limits and whether the optional filter defaults to all markets.

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 purpose is front-loaded and specific, but the pricing is stated twice ('$0.05 USDC x402 Base' and '[x402: 0.05 USDC per call on Base]'), and the inline input example duplicates the schema example. Redundancy costs it points on an otherwise tight description.

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 one-parameter, read-only search tool with annotations covering its safety profile, the description supplies pricing, signing, platform scope, and even the returned field list in lieu of an output schema. Missing only query-syntax guidance and pagination/cardinality expectations.

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 there is only one parameter, so the schema already carries the semantics. The description's added value is confirming the filter is optional and giving a concrete example, which is marginal 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 clear verb+resource ('Search prediction markets') and a distinguishing scope ('ACROSS PLATFORMS (Polymarket + Kalshi)'), plus an enumeration of the returned fields. It separates this from a single-platform tool, though it never explicitly names the sibling polymarket_trades it most overlaps with.

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?

Gives a target audience ('For trading and forecasting agents tracking event odds') and example query terms (bitcoin, fed, election, geopolitics), which implies when to reach for it. It offers no explicit when-not condition or named alternative, so routing versus polymarket_trades is left to inference.

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

polymarket_tradesC
Read-onlyIdempotent
Inspect

Historical Polymarket trade query with filters plus per-wallet aggregation. $0.03 USDC x402 Base. [x402: 0.03 USDC per call on Base]

NameRequiredDescriptionDefault
inputNoHistorical Polymarket trade query with filters plus per-wallet aggregation. $0.03 USDC x402 Base.

TDQS

C2.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, openWorldHint=true and destructiveHint=false, so safety is covered. The description adds genuinely useful non-annotation context — the $0.03 USDC per-call cost on Base — but says nothing about pagination, result limits, or rate/throughput behavior.

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 description is short and front-loads the purpose, but the pricing sentence is duplicated almost verbatim ('$0.03 USDC x402 Base.' then '[x402: 0.03 USDC per call on Base]'), wasting one of only two sentences on redundancy.

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

Completeness2/5

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

For a tool whose only input is an unspecified free-form string and which has no output schema, the description omits the input format, the output shape, and how the advertised filters and per-wallet aggregation are actually requested. An agent would have to guess how to construct a call.

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

Parameters2/5

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

There is one free-form string parameter named 'input', and its schema description is a verbatim copy of the tool description, so it conveys no expected format, syntax, or examples. Even at 100% nominal coverage the parameter text adds no meaning, and the description does not compensate for this ambiguity.

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 ('Historical Polymarket trade query') plus scope ('filters plus per-wallet aggregation'), which is enough to separate it from the sibling polymarket_markets. It stops short of an explicit contrast with that sibling, so it is clear but not fully differentiating.

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 statement of when to use this tool versus polymarket_markets or any other sibling, no prerequisites, and no mention of when not to use it. 'With filters' hints at capability but never names the filters or the conditions that call for them.

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

port_watchA
Read-onlyIdempotent
Inspect

SYNTHORA port-watch: daily port activity for any of 2,065 ports (Shanghai, Singapore, Rotterdam, LA, Long Beach presets + any name) — port calls, estimated import/export capacity (dwt), 7d moving average vs 30d baseline deviation and anomaly flag. Port volume leads official macro data by weeks: the input for trade/tariff/recession markets. Source: IMF PortWatch (satellite AIS, free, no key). $0.03 USDC x402 Base. [x402: 0.03 USDC per call on Base]

NameRequiredDescriptionDefault
inputNoSYNTHORA port-watch: daily port activity for any of 2,065 ports (Shanghai, Singapore, Rotterdam, LA, Long Beach presets + any name) — port calls, estimated import/export capacity (dwt), 7d moving aver

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish the safety profile (readOnly, idempotent, non-destructive, openWorld), so the bar is lower, and the description adds genuinely useful context beyond them: satellite-AIS sourcing, free/no-key upstream, and a paid x402/Base access model at $0.03. It does not describe latency or rate limits, but the payment and provenance details are substantive additions.

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?

Front-loaded with the core capability, but it carries marketing framing ('leads official macro data by weeks') and states the x402 cost twice (prose plus a trailing bracket), which is redundant. Dense but with a couple of sentences that don't fully earn their 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-output-schema, one-parameter tool, the description covers coverage set, metrics, cadence, source, and access cost — enough to call it correctly. Missing only finer return-format details, which is a minor gap given the absence of an output schema.

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% but the single parameter's schema description is merely a truncated paste of the tool blurb, so it contributes little. The description compensates by naming concrete preset values (Shanghai, Singapore, Rotterdam, LA, Long Beach) and indicating any port name is accepted, which adds real input semantics.

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 — daily port activity across 2,065 named ports — and enumerates the metrics returned (port calls, estimated dwt, 7d vs 30d deviation, anomaly flag). This is clearly distinguishable from macro siblings like ecb_macro or volume_anomaly without opening any schema.

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

Usage Guidelines4/5

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

Explains the use case well: port volume as a leading indicator for trade/tariff/recession markets, plus the data source (IMF PortWatch) and frequency. However, it never routes the agent away from or toward a specific alternative among the many macro/econ siblings, so it stops short of explicit when-not guidance.

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

registry_watchA
Read-onlyIdempotent
Inspect

Registry change history from stored registry_delta records, ordered by database timestamp and ID. Query with since (cursor or ISO8601), slug and limit (1..200). Source timestamps and coverage are included; records may be historical and do not prove current endpoint operation, payments or identity. 0.03 USDC on Base. [x402: 0.03 USDC per call on Base]

NameRequiredDescriptionDefault
slugNoOptional exact stored-event slug filter. Surrounding whitespace is trimmed; matching is by equality, not substring search. latest/last/recent/ultimos clear the filter; omitting it requests recent global stored events. This selects historical registry events, not live endpoint health.
limitNoMaximum stored events requested: advertised integer range 1-200, default 50. The current parser converts to an integer and clamps to 1-200; nonnumeric conversion fails. With no since it takes the recent tail, returned chronologically. This limit is not a freshness or coverage guarantee.
sinceNoExclusive cursor del_... or timezone-aware ISO8601 timestamp

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, non-destructive and open-world semantics, so this is the lower bar. The description still adds real context beyond them: source timestamps and coverage are returned, records may be historical, and there is a 0.03 USDC x402 cost per call on Base. That is meaningful behavioral disclosure not present in 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?

The description is front-loaded with purpose, then query params, then caveats, then cost, which is a sensible order. The only waste is the cost statement appearing twice ('0.03 USDC on Base' and '[x402: 0.03 USDC per call on Base]'), a mild redundancy that keeps it from a 5.

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?

There is no output schema, so the description must cover return semantics; it does state that source timestamps and coverage are included and that results are ordered by timestamp and ID. With annotations present and all three params documented, the only minor gap is a fuller picture of response shape for a history/feed tool.

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 slug, limit and since in detail. The description largely restates the range (1..200) and parameter names; its only marginal addition is the 'not a freshness or coverage guarantee' caveat, which is already echoed in the limit field description. 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?

The description states a specific verb and resource: 'Registry change history from stored registry_delta records,' plus the ordering key (database timestamp and ID). This is concrete and distinguishable from generic 'list' tools. It does not, however, explicitly contrast itself with close siblings like port_watch, so differentiation is left to inference.

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?

It tells the agent how to query ('since, slug and limit') and adds an important interpretation caveat that records are historical and do not prove current endpoint operation, payments or identity. But it never names an alternative tool or the condition that would select one, so when-to-use-vs-siblings is only implied.

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

space_weather_riskB
Read-onlyIdempotent
Inspect

SYNTHORA space-weather-risk: composite operational space-weather risk verdict fusing 4 NOAA SWPC feeds (Kp/G scale, GOES X-ray flare class, solar wind, proton flux) — for defense, aviation, satellites, power grid, precision GPS. $0.03 USDC x402 Base. [x402: 0.03 USDC per call on Base]

NameRequiredDescriptionDefault
inputNoSYNTHORA space-weather-risk: composite operational space-weather risk verdict fusing 4 NOAA SWPC feeds (Kp/G scale, GOES X-ray flare class, solar wind, proton flux) — for defense, aviation, satellites

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds the composite/fusing behavior of 4 feeds, which is useful, but omits latency, freshness, rate limits, or what the verdict actually contains.

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

Conciseness2/5

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

The description duplicates itself: the parenthetical '[x402: 0.03 USDC per call on Base]' restates '$0.03 USDC x402 Base' from the prior sentence. Mixed-language metadata and pricing buried mid-sentence make it less front-loaded than it should be.

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 composite-verdict tool with annotations already covering behavior, the description is adequate — it names sources and domains. But without an output schema, the description should clarify the shape of the 'verdict' and any temporal resolution, which it does not.

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 there is only 1 parameter (input, not required), so the schema carries the burden. Baseline 3 applies; the description does not clarify what 'input' should contain despite the schema leaving it empty/ambiguous.

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 ('composite operational space-weather risk verdict') and enumerates the exact data sources (4 NOAA SWPC feeds) and target domains (defense, aviation, satellites, power grid, precision GPS). This is far more specific than any sibling, though the marketing-style copy slightly obscures the clean action statement.

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?

Target domains are listed, which implies when the tool is useful, but there is no explicit when-to-use vs alternatives, no exclusions, and no prerequisites stated. Given 27 siblings, the lack of differentiation from e.g. historical_weather or air_quality is a gap.

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

stablecoin_supplyA
Read-onlyIdempotent
Inspect

SYNTHORA stablecoin-supply: circulating USD supply, price and peg deviation in basis points for the top stablecoins (USDT, USDC, DAI...), with a depeg alert flag above 50 bps. Optional symbol filter. Free source: stablecoins.llama.fi (DefiLlama), no API key, timestamped. [x402: 0.01 USDC per call on Base]

NameRequiredDescriptionDefault
inputNoSYNTHORA stablecoin-supply: circulating USD supply, price and peg deviation in basis points for the top stablecoins (USDT, USDC, DAI...), with a depeg alert flag above 50 bps. Optional symbol filter.

TDQS

A4.1/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, open-world), so the description's job is to add operational context — and it does: upstream data source (stablecoins.llama.fi / DefiLlama), no API key required, timestamped data, the depeg-alert threshold, and a concrete per-call cost of 0.01 USDC on Base. Pricing and source provenance are exactly the kind of detail 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?

One dense sentence, front-loaded with the provider and resource, then progressively adding filter, alert threshold, source, and cost. Nothing is truly wasted, though the bracketed x402 pricing note and the long parenthetical list of tickers make it busier than it needs to be.

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?

With no output schema, the description usefully enumerates the returned quantities (supply, price, peg deviation in bps, depeg flag) and the data source and freshness. It stops short of stating result cardinality or response shape, but for a single-optional-argument read tool this is close to complete.

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 optional parameter and schema coverage is 100%, so the schema already documents it; per the rubric that sets a baseline of 3. The description adds only mild value by clarifying the filter is optional and giving example symbols (USDT, USDC, DAI), rather than explaining matching behavior (exact symbol vs. case-insensitive vs. list).

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 names a specific resource (stablecoin circulating USD supply, price, peg deviation) with concrete units (basis points) and a concrete behavioral threshold (depeg alert above 50 bps). It is immediately distinguishable from siblings such as top_crypto or exchange_rates_verified, which cover different asset classes and data shapes.

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 reader infers this is the tool for stablecoin peg/supply questions, and 'Optional symbol filter' hints the call works with or without arguments. However there is no explicit when-to-use versus when-not, and no sibling (e.g. top_crypto, synthora_search) is named as an alternative for overlapping market-data queries.

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

top_cryptoA
Read-onlyIdempotent
Inspect

SYNTHORA top-crypto: Top N cryptocurrencies by market cap (default 10, max 50): rank, price, 24h change, volume and market cap in USD. Source: CoinGecko free API, keyless, timestamped. [x402: 0.01 USDC per call on Base]

NameRequiredDescriptionDefault
limitNotop N, default 10, max 50

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: the data source (CoinGecko free API), that it is keyless, that results are timestamped, and critically that each call costs 0.01 USDC via x402 on Base. It does not cover rate limits or failure modes.

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?

One dense, front-loaded sentence delivers the resource, the default/max bounds, the returned fields, the data source, and the payment requirement with no filler. Every clause earns its place.

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 read-only, one-parameter ranking tool with no output schema, the description compensates by enumerating the returned fields and adding source, freshness ('timestamped'), and cost information. An agent has everything needed to decide and call 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?

There is a single optional 'limit' parameter with 100% schema description coverage, and the description merely restates the schema's 'default 10, max 50'. Baseline 3 is appropriate since the schema already carries the parameter semantics.

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 precise verb+resource ('Top N cryptocurrencies by market cap') and enumerates the returned fields (rank, price, 24h change, volume, market cap in USD), which makes it easy to distinguish from stablecoin_supply or defi_llama_tvl_ranking. It stops short of explicitly naming or contrasting any sibling, so it lands just below the top mark.

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: an agent can infer this is the tool for a general crypto market-cap leaderboard, and the default/max limit is given. There is no explicit when-to-use, when-not-to-use, or alternative-tool guidance for the crypto-adjacent siblings.

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

usgs_earthquakesB
Read-onlyIdempotent
Inspect

SYNTHORA usgs-earthquakes: latest earthquakes (M>=4.5 default, tunable) with PAGER alert level, tsunami flag and ACTIVE SEISMIC CLUSTER detection (>=3 events same zone in 24h) — the actionable signal for insurance-risk and disaster prediction markets. Source: USGS FDSN (official US, real-time, no key). $0.03 USDC x402 Base. [x402: 0.03 USDC per call on Base]

NameRequiredDescriptionDefault
inputNoSYNTHORA usgs-earthquakes: latest earthquakes (M>=4.5 default, tunable) with PAGER alert level, tsunami flag and ACTIVE SEISMIC CLUSTER detection (>=3 events same zone in 24h) — the actionable signal

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare this as a read-only, idempotent, open-world query, so the safety profile is known. The description adds useful behavioral context: a default magnitude threshold that can be tuned and real-time official sourcing. However, it does not describe data freshness beyond 'real-time', rate limits, or output format, leaving some behavioral gaps.

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 content is dense but front-loaded with the key functionality. However, it includes repetitive meta-information like the vendor name, source citation, and pricing both in the description and in the x402 brackets, which adds noise without helping the agent invoke the tool correctly.

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, zero-required-parameter tool with annotations covering safety, the description provides enough to know what is returned and a default filter. It is adequate but has clear gaps: no indication of time range, spatial scope, or how to retrieve the cluster detection details beyond the summary, and no output schema is provided to fill that void.

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 only one optional parameter, and the schema description already contains the full tool description (100% coverage). The description mentions that the magnitude threshold is 'tunable', which maps to the parameter's effect, but it does not explain the parameter's name, format, or bounds. Baseline 3 is appropriate 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.

Purpose4/5

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

The description states a specific resource (USGS FDSN earthquake data) and the derived signals it returns: PAGER alert level, tsunami flag, and active seismic cluster detection. It is clear what the tool does, though it doesn't explicitly differentiate itself from the other Syntora data tools in the sibling list.

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?

It implies a context (insurance-risk and disaster prediction markets) and the default magnitude threshold, but provides no explicit when-to-use or when-not-to-use guidance, nor does it reference alternatives. Usage is only weakly implied.

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

volume_anomalyA
Read-onlyIdempotent
Inspect

SYNTHORA volume-anomaly: crypto volume-anomaly alerts for arbitrage bots — assets whose 24h turnover (volume/mcap) is anomalously high vs their cohort (z-score), early pump/unusual-activity signal. Composite of CoinGecko markets + DeFiLlama DEX volume. Keyless. $0.03 USDC x402 Base. [x402: 0.03 USDC per call on Base]

NameRequiredDescriptionDefault
inputNoSYNTHORA volume-anomaly: crypto volume-anomaly alerts for arbitrage bots — assets whose 24h turnover (volume/mcap) is anomalously high vs their cohort (z-score), early pump/unusual-activity signal. Co

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds genuinely useful context beyond that: it is keyless (no API-key setup), it costs $0.03 USDC via x402 on Base per call, and it is a composite of two upstream sources. The only omission is any note on rate limits or freshness/latency of the anomaly signal.

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 signal is front-loaded and readable in one dense sentence, which is good. But the pricing is stated twice — once as '$0.03 USDC x402 Base' and again as '[x402: 0.03 USDC per call on Base]' — and the em-dash chain of qualifiers ('arbitrage bots', 'z-score', 'early pump') packs marketing framing into what should be a specification.

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?

With no output schema, the description carries the burden of explaining what comes back, and it does not: there is no indication of the returned fields (asset, z-score, cohort, turnover ratio), whether a ranked list or a threshold-triggered alert set is returned, or how many results to expect. Cost, keylessness and data sources are covered, which keeps it at minimum-viable rather than deficient.

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 optional 'input' parameter with 100% schema description coverage, and the schema's own description is merely a truncated copy of the tool blurb, so the schema is doing the documenting. The description itself contributes nothing about what 'input' should contain (a ticker list? a cohort tag? a threshold?), which is the one thing this tool's text could have clarified. 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?

States a specific detection task: assets whose 24h turnover (volume/mcap) is anomalous versus their cohort on a z-score basis. That is materially more precise than the sibling 'top_crypto' or 'defi_yields', and the described data provenance (CoinGecko markets + DeFiLlama DEX volume) frames exactly what is being measured. It stops short of 5 because it never names which sibling to use instead when the agent wants rankings rather than anomaly flags.

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 phrase 'for arbitrage bots' and 'early pump/unusual-activity signal' implies the intended use case and audience, so an agent can infer when this tool is relevant. However, there is no explicit when-not guidance, no statement of prerequisites, and no pointer to alternative tools for related but distinct questions (e.g. top_crypto, synthora_search).

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

who_gho_indicator_timeseriesA
Read-onlyIdempotent
Inspect

Returns WHO Global Health Observatory OData time series (ghoapi.azureedge.net/api) for an indicator such as life expectancy (WHOSIS_000001): country, year, sex dimension and numeric value. Autonomous agents and agent-to-agent (A2A) global-health analytics, ESG and country-benchmarking pipelines query it for authoritative WHO statistics. Ranking surface: indicator + country to yearly values. First 3 calls FREE per wallet — send header X-WALLET: 0x. No charge on upstream failure. [x402: 0.001 USDC per call on Base]

NameRequiredDescriptionDefault
$topNomaximum records
$filterYesOData filter
indicatorCodeYesindicatorCode

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, openWorld and non-destructive. The description adds crucial commercial behavior: a free tier (first 3 calls per wallet), a payment scheme (x402, 0.001 USDC per call on Base), a required header (X-WALLET), and a no-charge-on-failure guarantee. That is substantial context beyond the annotations. It doesn't mention rate limits, pagination limits, or return format, so a 4 rather than 5.

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 description is reasonably front-loaded with the purpose and endpoint, but it crams audience/pipeline lists, ranking surface, free tier, header, payment scheme and failure policy into a single paragraph. It is not bloated to the point of harm, but several clauses could be trimmed or bulleted for faster scanning.

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 read-only OData query tool with no output schema and fully documented parameters, the description is nearly complete: it states the endpoint, the query shape, the billing/auth model, and the error guarantee. It could still mention pagination behavior or the structure of returned records, hence 4 not 5.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema itself documents $top as 'maximum records', $filter as 'OData filter', and indicatorCode nominally. The description adds the example indicator code and the dimension set (country, year, sex, numeric value), which is helpful, but does not add syntax or meaning beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description names a specific verb ('Returns'), a specific resource (WHO Global Health Observatory OData time series), and the exact endpoint (ghoapi.azureedge.net/api). It even includes a concrete example (life expectancy WHOSIS_000001), so an agent can immediately tell this apart from siblings like air_quality or ecb_macro.

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?

It gives clear usage context – autonomous agents, A2A global-health analytics, ESG and country-benchmarking pipelines – and describes the ranking surface as 'indicator + country to yearly values'. However, it never explicitly states when NOT to use it or names an alternative sibling tool, so it falls short of a 5.

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. 1 tool update
    • Changedpolymarket_trades1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"Historical Polymarket trade query with filters plus per-wallet aggregation. $0.01 USDC x402 Base."New value: +"Historical Polymarket trade query with filters plus per-wallet aggregation. $0.03 USDC x402 Base."
  2. 6 tool updates
    • Changedbitcoin_fees4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / input
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / network
        Added value: +{
        +  "const": "bitcoin",
        +  "description": "Optional Bitcoin-only selector; exact lowercase bitcoin. Omit for Bitcoin. Does not select fee tier.",
        +  "type": "string"
        +}
      • addedInput schema / properties / red
        Added value: +{
        +  "const": "bitcoin",
        +  "description": "Optional Bitcoin-only selector; exact lowercase bitcoin. Omit for Bitcoin. Does not select fee tier.",
        +  "type": "string"
        +}
    • Changeddefi_yields5 fields changed
      • addedInput schema / properties / activo / description
        Added value: +"Optional nonempty asset symbol token. It is trimmed, uppercased and matched against tokens of the pool symbol (for example USDC); not a substring, contract-address or mint lookup. Omit for all eligible symbols. A token with no matches may produce an empty selected list."
      • addedInput schema / properties / desde / description
        Added value: +"Optional timezone-aware ISO8601 cut, not in the future. Compares current eligible pools with the latest local batch at or before that cut. Changes use the full eligible universe, independently of red/activo/protocolo display filters. Missing older batches are reported; no history coverage is guaranteed."
      • addedInput schema / properties / pool_id / description
        Added value: +"Optional exact pool ID for local batch-history retrieval only; it does not filter the current top-pool list. History defaults to 30 days unless historial_dias supplies 1-90. This is not a live DefiLlama history request; missing local history is disclosed as a gap."
      • addedInput schema / properties / protocolo / description
        Added value: +"Optional nonempty protocol/project identifier, such as aave-v3. Trimmed and matched case-insensitively for exact equality with pool.proyecto; not a substring or protocol-contract lookup. Omit for all projects in the captured eligible universe."
      • addedInput schema / properties / red / description
        Added value: +"Optional nonempty chain name, trimmed and matched case-insensitively for exact equality against captured pool.chain. Omit for all captured eligible chains. A chain outside that captured universe returns an explicit error; this does not select another data source."
    • Changedecb_forex_fixing_vs_market8 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / examples
        Previous value: -[
        -  {}
        -]New value: +[
        +  {
        +    "market_provenance": "SYNTHETIC DOCUMENTATION EXAMPLE; not a market observation; replace all quote fields before use",
        +    "market_rate": "1.0",
        +    "market_timestamp_unix": 1
        +  }
        +]
      • removedInput schema / properties / input
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / market_provenance
        Added value: +{
        +  "description": "Required client-supplied quote provenance, at most 1000 characters and nonempty after whitespace trimming. Attribution is not independent verification or evidence of usage rights.",
        +  "examples": [
        +    "SYNTHETIC DOCUMENTATION EXAMPLE; not a market observation; replace all quote fields before use"
        +  ],
        +  "maxLength": 1000,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / market_rate
        Added value: +{
        +  "description": "Required positive finite USD per EUR quote supplied by the client, as a JSON number or decimal numeric string. Backend rejects booleans, nonnumeric, nonfinite, overflow and float-underflow-to-zero values. String positivity and numeric validity are checked by the backend.",
        +  "examples": [
        +    "1.0"
        +  ],
        +  "oneOf": [
        +    {
        +      "exclusiveMinimum": 0,
        +      "type": "number"
        +    },
        +    {
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  ]
        +}
      • addedInput schema / properties / market_timestamp_unix
        Added value: +{
        +  "description": "Required client quote timestamp in Unix seconds UTC. Backend rejects booleans, unrepresentable dates and times more than 300 seconds in the future. Historical timestamps are accepted but age/coverage gaps may prevent a quality claim.",
        +  "examples": [
        +    1
        +  ],
        +  "exclusiveMinimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / par
        Added value: +{
        +  "const": "EUR/USD",
        +  "default": "EUR/USD",
        +  "description": "Only supported pair, EUR/USD; quote units are USD per EUR. Omission defaults to EUR/USD.",
        +  "type": "string"
        +}
      • addedInput schema / required
        Added value: +[
        +  "market_rate",
        +  "market_timestamp_unix",
        +  "market_provenance"
        +]
    • Changedecb_macro2 fields changed
      • addedInput schema / properties / mode / description
        Added value: +"Compatibility field constrained to latest by the public schema. The currently routed backend ignores it and requests the last two observations of each fixed series. It provides no selectable date/history mode; latest is not a live-feed or freshness guarantee."
      • addedInput schema / properties / region / description
        Added value: +"Compatibility field constrained to U2 by the public schema. The currently routed backend ignores this argument and requests its three fixed Euro-area (U2) ECB series; it cannot select another region."
    • Changednpm_downloads_range3 fields changed
      • addedInput schema / properties / end / description
        Added value: +"End date text in YYYY-MM-DD form, paired with start for an explicit npm start:end range. The pair overrides period. A lone end is ignored in favor of period/default. Calendar validity, interval ordering and upstream range limits are not validated locally."
      • addedInput schema / properties / period / description
        Added value: +"Named npm daily-download range: last-day, last-week or last-month. Defaults to last-week when a complete start/end pair is absent. Nonempty start and end together override period; unsupported period values are rejected only on the named-range branch."
      • addedInput schema / properties / start / description
        Added value: +"Start date text in YYYY-MM-DD form for an explicit npm start:end range. Used only when end is also nonempty; the pair overrides period. A lone start is ignored in favor of period/default. The current backend forwards date text without local calendar or ordering validation."
    • Changedregistry_watch2 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum stored events requested: advertised integer range 1-200, default 50. The current parser converts to an integer and clamps to 1-200; nonnumeric conversion fails. With no since it takes the recent tail, returned chronologically. This limit is not a freshness or coverage guarantee."
      • addedInput schema / properties / slug / description
        Added value: +"Optional exact stored-event slug filter. Surrounding whitespace is trimmed; matching is by equality, not substring search. latest/last/recent/ultimos clear the filter; omitting it requests recent global stored events. This selects historical registry events, not live endpoint health."
  3. 2 tool updates
    • Changeddefi_yields8 fields changed
      • changedInput schema / examples
        Previous value: -[
        -  {
        -    "input": ""
        -  }
        -]New value: +[
        +  {}
        +]
      • addedInput schema / properties / activo
        Added value: +{
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / desde
        Added value: +{
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / historial_dias
        Added value: +{
        +  "description": "Requires pool_id; history availability is not guaranteed.",
        +  "maximum": 90,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • removedInput schema / properties / input
        Removed value: -{
        -  "description": "SYNTHORA defi-yields: stablecoin DeFi yields ranked with a risk outlier detector — APY vs class median (>=3x median = the excess yield IS the risk price). Only pools with TVL >= $10M. Source: DefiLlam",
        -  "examples": [
        -    ""
        -  ],
        -  "type": "string"
        -}
      • addedInput schema / properties / pool_id
        Added value: +{
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / protocolo
        Added value: +{
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / red
        Added value: +{
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedecb_macro5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / examples
        Previous value: -[
        -  {
        -    "input": ""
        -  }
        -]New value: +[
        +  {}
        +]
      • removedInput schema / properties / input
        Removed value: -{
        -  "description": "SYNTHORA ecb-macro: official eurozone macro from the ECB data warehouse — HICP inflation, MRR policy rate, 10Y govt yield, each with previous value, change and direction. For macro/rates agents and pr",
        -  "examples": [
        -    ""
        -  ],
        -  "type": "string"
        -}
      • addedInput schema / properties / mode
        Added value: +{
        +  "const": "latest",
        +  "type": "string"
        +}
      • addedInput schema / properties / region
        Added value: +{
        +  "const": "U2",
        +  "type": "string"
        +}
  4. 1 tool update
    • Changedregistry_watch6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / examples
        Previous value: -[
        -  {
        -    "input": "latest"
        -  }
        -]New value: +[
        +  {
        +    "limit": 50
        +  }
        +]
      • removedInput schema / properties / input
        Removed value: -{
        -  "description": "SYNTHORA registry-watch: pay-per-event feed of signed Ed25519 deltas from the x402/M2M endpoint registry — new and changed endpoints, payTos and listings. Pull with {\"since\": \"<cursor|ISO>\", \"slug\": \"",
        -  "examples": [
        -    "latest"
        -  ],
        -  "type": "string"
        -}
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 50,
        +  "examples": [
        +    50
        +  ],
        +  "maximum": 200,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / since
        Added value: +{
        +  "description": "Exclusive cursor del_... or timezone-aware ISO8601 timestamp",
        +  "type": "string"
        +}
      • addedInput schema / properties / slug
        Added value: +{
        +  "pattern": "^[A-Za-z0-9_-]{1,128}$",
        +  "type": "string"
        +}
  5. 27 tool updates
    • Changedair_quality3 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "input": "Delhi"
        +  }
        +]
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"Delhi\"}"New value: +"SYNTHORA air-quality: live air quality for any city or lat,lon — PM2.5/PM10/ozone/NO2, EU and US AQI, and a WHO-threshold operational verdict (good/moderate/harmful). Source: open-meteo Air Quality (C"
      • addedInput schema / properties / input / examples
        Added value: +[
        +  "Delhi"
        +]
    • Changedbitcoin_fees2 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {}
        +]
      • removedInput schema / properties / input / description
        Removed value: -"product parameters (JSON or text)"
    • Changeddefi_llama_tvl_ranking3 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "limit": 50
        +  }
        +]
      • removedInput schema / properties / input
        Removed value: -{
        -  "description": "product parameters (JSON or text). Example: {\"limit\": 50}",
        -  "type": "string"
        -}
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "top N, default 50, max 200",
        +  "examples": [
        +    50
        +  ],
        +  "type": "integer"
        +}
    • Changeddefi_yields3 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "input": ""
        +  }
        +]
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"\"}"New value: +"SYNTHORA defi-yields: stablecoin DeFi yields ranked with a risk outlier detector — APY vs class median (>=3x median = the excess yield IS the risk price). Only pools with TVL >= $10M. Source: DefiLlam"
      • addedInput schema / properties / input / examples
        Added value: +[
        +  ""
        +]
    • Changeddnsdomain4 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "domain": "stripe.com"
        +  }
        +]
      • addedInput schema / properties / domain
        Added value: +{
        +  "description": "Domain, URL or email address to report on",
        +  "examples": [
        +    "stripe.com"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / input
        Removed value: -{
        -  "description": "product parameters (JSON or text). Example: {\"domain\": \"stripe.com\"}",
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "domain"
        +]
    • Changeddoaj_article_search4 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "pageSize": 2,
        +    "query": "machine learning"
        +  }
        +]
      • removedInput schema / properties / input
        Removed value: -{
        -  "description": "product parameters (JSON or text). Example: {\"query\": \"machine learning\", \"pageSize\": 2}",
        -  "type": "string"
        -}
      • addedInput schema / properties / query
        Added value: +{
        +  "description": "query",
        +  "examples": [
        +    "machine learning"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / required
        Added value: +[
        +  "query"
        +]
    • Changedecb_forex_fixing_vs_market2 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {}
        +]
      • removedInput schema / properties / input / description
        Removed value: -"product parameters (JSON or text)"
    • Changedecb_macro3 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "input": ""
        +  }
        +]
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"\"}"New value: +"SYNTHORA ecb-macro: official eurozone macro from the ECB data warehouse — HICP inflation, MRR policy rate, 10Y govt yield, each with previous value, change and direction. For macro/rates agents and pr"
      • addedInput schema / properties / input / examples
        Added value: +[
        +  ""
        +]
    • Changedexchange_rates_verified3 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "input": ""
        +  }
        +]
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"\"}"New value: +"SYNTHORA exchange-rates-verified: FX rates for 160+ currencies CROSS-VERIFIED between two independent sources (ECB official fixing via frankfurter.app vs market aggregate open.er-api.com) with per-cur"
      • addedInput schema / properties / input / examples
        Added value: +[
        +  ""
        +]
    • Changedfed_watch3 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "input": ""
        +  }
        +]
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"\"}"New value: +"SYNTHORA fed-watch: US reference-rate funding pulse — SOFR/EFFR/TGCR/BGCR/OBFR with volumes, percentile dispersion and the SOFR-EFFR spread (the funding-stress signal before it hits the news). Cross-c"
      • addedInput schema / properties / input / examples
        Added value: +[
        +  ""
        +]
    • Changedgas_oracle_multi2 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "chain": "base"
        +  }
        +]
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"chain\": \"base\"}"New value: +"SYNTHORA gas-oracle-multi: gas price across 5 chains (ethereum, base, arbitrum, optimism, polygon), each VERIFIED by two independent public RPCs with divergence report — a single RPC can lie or lag; d"
    • Changedgdelt_tension2 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "query": "taiwan"
        +  }
        +]
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"query\": \"taiwan\"}"New value: +"SYNTHORA gdelt-tension: geopolitical tension index for any topic/country — news-mention spike vs 7d baseline, average tone shift, escalation flag and the headlines causing it. The early signal for Pol"
    • Changedgithub_repo_activity3 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "input": "torvalds/linux"
        +  }
        +]
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"torvalds/linux\"}"New value: +"owner/repo"
      • addedInput schema / properties / input / examples
        Added value: +[
        +  "torvalds/linux"
        +]
    • Changedhistorical_weather2 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "date": "2026-08-01",
        +    "place": "Casablanca"
        +  }
        +]
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"place\": \"Casablanca\", \"date\": \"2026-08-01\"}"New value: +"SYNTHORA historical-weather: verified historical weather for any place and date (1940 → ~5 days ago) from the ERA5 reanalysis — tmax/tmin, precipitation, max wind. For climate-market backtesting and c"
    • Changednpm_downloads_range7 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "package": "express",
        +    "period": "last-week"
        +  }
        +]
      • addedInput schema / properties / end
        Added value: +{
        +  "format": "date",
        +  "type": "string"
        +}
      • removedInput schema / properties / input
        Removed value: -{
        -  "description": "product parameters (JSON or text). Example: {\"package\": \"express\", \"period\": \"last-week\"}",
        -  "type": "string"
        -}
      • addedInput schema / properties / package
        Added value: +{
        +  "description": "npm package, including scoped packages",
        +  "examples": [
        +    "express"
        +  ],
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / period
        Added value: +{
        +  "default": "last-week",
        +  "enum": [
        +    "last-day",
        +    "last-week",
        +    "last-month"
        +  ],
        +  "examples": [
        +    "last-week"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / start
        Added value: +{
        +  "format": "date",
        +  "type": "string"
        +}
      • addedInput schema / required
        Added value: +[
        +  "package"
        +]
    • Changedpayto_preflight6 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "chain": "eip155:8453",
        +    "endpoint_url": "https://onchain.hergertsynthora.com/service",
        +    "expected_payTo": "0xEf879BFD6C4AccB8F795136de90246e1EC245e06"
        +  }
        +]
      • addedInput schema / properties / chain
        Added value: +{
        +  "description": "expected chain, e.g. eip155:8453",
        +  "examples": [
        +    "eip155:8453"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / endpoint_url
        Added value: +{
        +  "description": "endpoint resource URL to verify",
        +  "examples": [
        +    "https://onchain.hergertsynthora.com/service"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / expected_payTo
        Added value: +{
        +  "description": "expected payTo address (0x...)",
        +  "examples": [
        +    "0xEf879BFD6C4AccB8F795136de90246e1EC245e06"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / input
        Removed value: -{
        -  "description": "product parameters (JSON or text). Example: {\"endpoint_url\": \"https://onchain.hergertsynthora.com/service\", \"expected_payTo\": \"0xEf879BFD6C4AccB8F795136de90246e1EC245e06\", \"chain\": \"eip155:8453\"}",
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "endpoint_url"
        +]
    • Changedpolymarket_markets3 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "input": "bitcoin"
        +  }
        +]
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"bitcoin\"}"New value: +"Search prediction markets ACROSS PLATFORMS (Polymarket + Kalshi) in one call: live prices, implied probability, volume, liquidity, end date and market conviction. Server-side search that actually find"
      • addedInput schema / properties / input / examples
        Added value: +[
        +  "bitcoin"
        +]
    • Changedpolymarket_trades2 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "limit": 5
        +  }
        +]
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"limit\": 5}"New value: +"Historical Polymarket trade query with filters plus per-wallet aggregation. $0.01 USDC x402 Base."
    • Changedport_watch2 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "port": "rotterdam"
        +  }
        +]
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"port\": \"rotterdam\"}"New value: +"SYNTHORA port-watch: daily port activity for any of 2,065 ports (Shanghai, Singapore, Rotterdam, LA, Long Beach presets + any name) — port calls, estimated import/export capacity (dwt), 7d moving aver"
    • Changedregistry_watch3 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "input": "latest"
        +  }
        +]
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"latest\"}"New value: +"SYNTHORA registry-watch: pay-per-event feed of signed Ed25519 deltas from the x402/M2M endpoint registry — new and changed endpoints, payTos and listings. Pull with {\"since\": \"<cursor|ISO>\", \"slug\": \""
      • addedInput schema / properties / input / examples
        Added value: +[
        +  "latest"
        +]
    • Changedspace_weather_risk3 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "input": ""
        +  }
        +]
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"\"}"New value: +"SYNTHORA space-weather-risk: composite operational space-weather risk verdict fusing 4 NOAA SWPC feeds (Kp/G scale, GOES X-ray flare class, solar wind, proton flux) — for defense, aviation, satellites"
      • addedInput schema / properties / input / examples
        Added value: +[
        +  ""
        +]
    • Changedstablecoin_supply3 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "input": "USDC"
        +  }
        +]
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"USDC\"}"New value: +"SYNTHORA stablecoin-supply: circulating USD supply, price and peg deviation in basis points for the top stablecoins (USDT, USDC, DAI...), with a depeg alert flag above 50 bps. Optional symbol filter. "
      • addedInput schema / properties / input / examples
        Added value: +[
        +  "USDC"
        +]
    • Changedsynthora_search5 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "max_price_usdc": 0.03,
        +    "query": "bitcoin fees"
        +  }
        +]
      • changedInput schema / properties / max_price_usdc / description
        Previous value: -"optional price ceiling"New value: +"optional USDC price ceiling"
      • addedInput schema / properties / max_price_usdc / minimum
        Added value: +0
      • changedInput schema / properties / query / description
        Previous value: -"keywords, e.g. 'sanctions', 'nft', 'exchange rates'"New value: +"keywords in currently published tool names or descriptions"
      • addedInput schema / properties / query / examples
        Added value: +[
        +  "bitcoin fees",
        +  "exchange rates"
        +]
    • Changedtop_crypto3 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "limit": 10
        +  }
        +]
      • removedInput schema / properties / input
        Removed value: -{
        -  "description": "product parameters (JSON or text). Example: {\"limit\": 10}",
        -  "type": "string"
        -}
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "top N, default 10, max 50",
        +  "examples": [
        +    10
        +  ],
        +  "type": "integer"
        +}
    • Changedusgs_earthquakes3 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "input": ""
        +  }
        +]
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"\"}"New value: +"SYNTHORA usgs-earthquakes: latest earthquakes (M>=4.5 default, tunable) with PAGER alert level, tsunami flag and ACTIVE SEISMIC CLUSTER detection (>=3 events same zone in 24h) — the actionable signal "
      • addedInput schema / properties / input / examples
        Added value: +[
        +  ""
        +]
    • Changedvolume_anomaly3 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "input": ""
        +  }
        +]
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"\"}"New value: +"SYNTHORA volume-anomaly: crypto volume-anomaly alerts for arbitrage bots — assets whose 24h turnover (volume/mcap) is anomalously high vs their cohort (z-score), early pump/unusual-activity signal. Co"
      • addedInput schema / properties / input / examples
        Added value: +[
        +  ""
        +]
    • Changedwho_gho_indicator_timeseries6 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "$filter": "SpatialDim eq 'USA'",
        +    "$top": 2,
        +    "indicatorCode": "WHOSIS_000001"
        +  }
        +]
      • addedInput schema / properties / $filter
        Added value: +{
        +  "description": "OData filter",
        +  "examples": [
        +    "SpatialDim eq 'USA'"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / $top
        Added value: +{
        +  "description": "maximum records",
        +  "examples": [
        +    2
        +  ],
        +  "type": "integer"
        +}
      • addedInput schema / properties / indicatorCode
        Added value: +{
        +  "description": "indicatorCode",
        +  "examples": [
        +    "WHOSIS_000001"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / input
        Removed value: -{
        -  "description": "product parameters (JSON or text). Example: {\"indicatorCode\": \"WHOSIS_000001\", \"$filter\": \"SpatialDim eq 'USA'\", \"$top\": 2}",
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "indicatorCode",
        +  "$filter"
        +]
  6. 15 tool updates
    • Changedbitcoin_fees1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"{}\"}"New value: +"product parameters (JSON or text)"
    • Changeddefi_llama_tvl_ranking1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"limit\\\": 50}\"}"New value: +"product parameters (JSON or text). Example: {\"limit\": 50}"
    • Changeddnsdomain1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"domain\\\": \\\"stripe.com\\\"}\"}"New value: +"product parameters (JSON or text). Example: {\"domain\": \"stripe.com\"}"
    • Changeddoaj_article_search1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"query\\\": \\\"machine learning\\\", \\\"pageSize\\\": 2}\"}"New value: +"product parameters (JSON or text). Example: {\"query\": \"machine learning\", \"pageSize\": 2}"
    • Changedecb_forex_fixing_vs_market1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"par\\\": \\\"EUR/USD\\\", \\\"market_rate\\\": 1.1181, \\\"market_timestamp_unix\\\": 1791884924, \\\"market_provenance\\\": \\\"Synthetic client quote for private input validation; not observed market data"New value: +"product parameters (JSON or text)"
    • Changedexchange_rates_verified1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"mode\\\": \\\"client_comparison\\\", \\\"base\\\": \\\"EUR\\\", \\\"quotes\\\": {\\\"date\\\": \\\"2026-10-13\\\", \\\"rates\\\": {\\\"USD\\\": 1.1181}, \\\"source\\\": \\\"Synthetic client quote for private input validation; "New value: +"product parameters (JSON or text). Example: {\"input\": \"\"}"
    • Changedgas_oracle_multi1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"chain\\\": \\\"base\\\"}\"}"New value: +"product parameters (JSON or text). Example: {\"chain\": \"base\"}"
    • Changedgdelt_tension1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"query\\\": \\\"taiwan\\\"}\"}"New value: +"product parameters (JSON or text). Example: {\"query\": \"taiwan\"}"
    • Changedhistorical_weather1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"place\\\": \\\"Casablanca\\\", \\\"date\\\": \\\"2026-08-01\\\"}\"}"New value: +"product parameters (JSON or text). Example: {\"place\": \"Casablanca\", \"date\": \"2026-08-01\"}"
    • Changednpm_downloads_range1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"package\\\": \\\"express\\\", \\\"period\\\": \\\"last-week\\\"}\"}"New value: +"product parameters (JSON or text). Example: {\"package\": \"express\", \"period\": \"last-week\"}"
    • Changedpayto_preflight1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"endpoint_url\\\": \\\"https://onchain.hergertsynthora.com/service\\\", \\\"expected_payTo\\\": \\\"0xEf879BFD6C4AccB8F795136de90246e1EC245e06\\\", \\\"chain\\\": \\\"eip155:8453\\\"}\"}"New value: +"product parameters (JSON or text). Example: {\"endpoint_url\": \"https://onchain.hergertsynthora.com/service\", \"expected_payTo\": \"0xEf879BFD6C4AccB8F795136de90246e1EC245e06\", \"chain\": \"eip155:8453\"}"
    • Changedpolymarket_trades1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"limit\\\": 5}\"}"New value: +"product parameters (JSON or text). Example: {\"limit\": 5}"
    • Changedport_watch1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"port\\\": \\\"rotterdam\\\"}\"}"New value: +"product parameters (JSON or text). Example: {\"port\": \"rotterdam\"}"
    • Changedtop_crypto1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"limit\\\": 10}\"}"New value: +"product parameters (JSON or text). Example: {\"limit\": 10}"
    • Changedwho_gho_indicator_timeseries1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"indicatorCode\\\": \\\"WHOSIS_000001\\\", \\\"$filter\\\": \\\"SpatialDim eq 'USA'\\\", \\\"$top\\\": 2}\"}"New value: +"product parameters (JSON or text). Example: {\"indicatorCode\": \"WHOSIS_000001\", \"$filter\": \"SpatialDim eq 'USA'\", \"$top\": 2}"
  7. 15 tool updates
    • Changedbitcoin_fees1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text)"New value: +"product parameters (JSON or text). Example: {\"input\": \"{}\"}"
    • Changeddefi_llama_tvl_ranking1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"limit\": 50}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"limit\\\": 50}\"}"
    • Changeddnsdomain1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"domain\": \"stripe.com\"}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"domain\\\": \\\"stripe.com\\\"}\"}"
    • Changeddoaj_article_search1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"query\": \"machine learning\", \"pageSize\": 2}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"query\\\": \\\"machine learning\\\", \\\"pageSize\\\": 2}\"}"
    • Changedecb_forex_fixing_vs_market1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text)"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"par\\\": \\\"EUR/USD\\\", \\\"market_rate\\\": 1.1181, \\\"market_timestamp_unix\\\": 1791884924, \\\"market_provenance\\\": \\\"Synthetic client quote for private input validation; not observed market data"
    • Changedexchange_rates_verified1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"\"}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"mode\\\": \\\"client_comparison\\\", \\\"base\\\": \\\"EUR\\\", \\\"quotes\\\": {\\\"date\\\": \\\"2026-10-13\\\", \\\"rates\\\": {\\\"USD\\\": 1.1181}, \\\"source\\\": \\\"Synthetic client quote for private input validation; "
    • Changedgas_oracle_multi1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"chain\": \"base\"}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"chain\\\": \\\"base\\\"}\"}"
    • Changedgdelt_tension1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"query\": \"taiwan\"}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"query\\\": \\\"taiwan\\\"}\"}"
    • Changedhistorical_weather1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"place\": \"Casablanca\", \"date\": \"2026-08-01\"}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"place\\\": \\\"Casablanca\\\", \\\"date\\\": \\\"2026-08-01\\\"}\"}"
    • Changednpm_downloads_range1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"package\": \"express\", \"period\": \"last-week\"}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"package\\\": \\\"express\\\", \\\"period\\\": \\\"last-week\\\"}\"}"
    • Changedpayto_preflight1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"endpoint_url\": \"https://onchain.hergertsynthora.com/service\", \"expected_payTo\": \"0xEf879BFD6C4AccB8F795136de90246e1EC245e06\", \"chain\": \"eip155:8453\"}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"endpoint_url\\\": \\\"https://onchain.hergertsynthora.com/service\\\", \\\"expected_payTo\\\": \\\"0xEf879BFD6C4AccB8F795136de90246e1EC245e06\\\", \\\"chain\\\": \\\"eip155:8453\\\"}\"}"
    • Changedpolymarket_trades1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"limit\": 5}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"limit\\\": 5}\"}"
    • Changedport_watch1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"port\": \"rotterdam\"}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"port\\\": \\\"rotterdam\\\"}\"}"
    • Changedtop_crypto1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"limit\": 10}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"limit\\\": 10}\"}"
    • Changedwho_gho_indicator_timeseries1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"indicatorCode\": \"WHOSIS_000001\", \"$filter\": \"SpatialDim eq 'USA'\", \"$top\": 2}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"indicatorCode\\\": \\\"WHOSIS_000001\\\", \\\"$filter\\\": \\\"SpatialDim eq 'USA'\\\", \\\"$top\\\": 2}\"}"
  8. 25 tool updates
    • Addedair_quality
    • Addedbitcoin_fees
    • Addeddefi_llama_tvl_ranking
    • Addeddefi_yields
    • Addeddnsdomain
    • Addeddoaj_article_search
    • Addedecb_forex_fixing_vs_market
    • Addedecb_macro
    • Addedexchange_rates_verified
    • Addedfed_watch
    • Addedgas_oracle_multi
    • Addedgdelt_tension
    • Addedhistorical_weather
    • Addednpm_downloads_range
    • Addedpayto_preflight
    • Addedpolymarket_markets
    • Addedpolymarket_trades
    • Addedport_watch
    • Addedregistry_watch
    • Addedspace_weather_risk
    • Addedstablecoin_supply
    • Addedtop_crypto
    • Addedusgs_earthquakes
    • Addedvolume_anomaly
    • Addedwho_gho_indicator_timeseries
  9. 4 tool updates
    • Removedbitcoin_fees
    • Removedecb_forex_fixing_vs_market
    • Removedfed_watch
    • Removedhistorical_weather
  10. 23 tool updates
    • Removedair_quality
    • Changedbitcoin_fees1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"protocol\": \"aave\"}"New value: +"product parameters (JSON or text)"
    • Removeddefi_llama_tvl_ranking
    • Removeddefi_yields
    • Removeddnsdomain
    • Removeddoaj_article_search
    • Changedecb_forex_fixing_vs_market1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"protocol\": \"aave\"}"New value: +"product parameters (JSON or text)"
    • Removedecb_macro
    • Removedexchange_rates_verified
    • Removedgas_oracle_multi
    • Removedgdelt_tension
    • Removednpm_downloads_range
    • Removedpayto_preflight
    • Removedpolymarket_markets
    • Removedpolymarket_trades
    • Removedport_watch
    • Removedregistry_watch
    • Removedspace_weather_risk
    • Removedstablecoin_supply
    • Removedtop_crypto
    • Removedusgs_earthquakes
    • Removedvolume_anomaly
    • Removedwho-gho-indicator-timeseries
  11. 3 tool updates
    • Removedcommodity_macro
    • Removedtxintent
    • Removedwebsearch
  12. 18 tool updates
    • Removedcyber_exposure_decision
    • Removeddecision_batch
    • Removeddecision_deep
    • Removeddecision_engine
    • Removeddecision_pulse
    • Removeddecision_watch
    • Removeddefi_decision
    • Changednpm_downloads_range1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text)"New value: +"product parameters (JSON or text). Example: {\"package\": \"express\", \"period\": \"last-week\"}"
    • Changedpayto_preflight1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"endpoint_url\": \"https://onchain.hergertsynthora.com/service\", \"expected_payTo\": \"0x10800a5a5B9d72251566EC651E862A8b4B427dE0\", \"chain\": \"eip155:8453\"}"New value: +"product parameters (JSON or text). Example: {\"endpoint_url\": \"https://onchain.hergertsynthora.com/service\", \"expected_payTo\": \"0xEf879BFD6C4AccB8F795136de90246e1EC245e06\", \"chain\": \"eip155:8453\"}"
    • Removedprotocol_health
    • Changedregistry_watch1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text). Example: {\"input\": \"0x0000000000000000000000000000000000000000\"}"New value: +"product parameters (JSON or text). Example: {\"input\": \"latest\"}"
    • Removedresearch_pack
    • Removedsupply_chain_decision
    • Removedtoken_risk_decision
    • Removedvendor_decision
    • Removedwallet_flow_intelligence
    • Removedx402_route_optimizer
    • Removedx402_service_trust
  13. 2 tool updates
    • Addeddnsdomain
    • Addedwho-gho-indicator-timeseries
  14. 64 tool updates
    • Addedair_quality
    • Removedair-quality
    • Addedbitcoin_fees
    • Removedbitcoin-fees
    • Addedcommodity_macro
    • Addedcyber_exposure_decision
    • Addeddecision_batch
    • Addeddecision_deep
    • Addeddecision_engine
    • Addeddecision_pulse
    • Addeddecision_watch
    • Addeddefi_decision
    • Addeddefi_llama_tvl_ranking
    • Addeddefi_yields
    • Removeddefi-llama-tvl-ranking
    • Removeddefi-yields
    • Removeddnsdomain
    • Addeddoaj_article_search
    • Removeddoaj-article-search
    • Addedecb_forex_fixing_vs_market
    • Addedecb_macro
    • Removedecb-forex-fixing-vs-market
    • Removedecb-macro
    • Addedexchange_rates_verified
    • Removedexchange-rates-verified
    • Addedfed_watch
    • Removedfed-watch
    • Addedgas_oracle_multi
    • Removedgas-oracle-multi
    • Addedgdelt_tension
    • Removedgdelt-tension
    • Addedgithub_repo_activity
    • Removedgithub-repo-activity
    • Addedhistorical_weather
    • Removedhistorical-weather
    • Addednpm_downloads_range
    • Addedpayto_preflight
    • Addedpolymarket_markets
    • Addedpolymarket_trades
    • Removedpolymarket-trades
    • Addedport_watch
    • Removedport-watch
    • Addedprotocol_health
    • Addedregistry_watch
    • Removedregistry-watch
    • Addedresearch_pack
    • Addedspace_weather_risk
    • Removedspace-weather-risk
    • Addedstablecoin_supply
    • Removedstablecoin-supply
    • Addedsupply_chain_decision
    • Addedtoken_risk_decision
    • Addedtop_crypto
    • Removedtop-crypto
    • Addedusgs_earthquakes
    • Removedusgs-earthquakes
    • Addedvendor_decision
    • Addedvolume_anomaly
    • Removedvolume-anomaly
    • Addedwallet_flow_intelligence
    • Addedwebsearch
    • Removedwho-gho-timeseries
    • Addedx402_route_optimizer
    • Addedx402_service_trust
  15. 122 tool updates
    • Removedagentcard
    • Removedagentguard
    • Removedais-sanctions-signal
    • Removedamlscreen
    • Removedasset-risk
    • Removedbasis-btc
    • Removedbioquantum-dataset
    • Removedbridgerisk
    • Removedbusinessrisk
    • Removedchokepoint-risk
    • Removedchokepoint-transits
    • Removedcode-sandbox
    • Removedcodeaudit
    • Removedcoingecko-crypto-price-history
    • Removedcommodity-macro
    • Removedcompliance-brief
    • Removedcompliance-eu
    • Removedconsensus-fragility
    • Removedcontract-guard
    • Removedcontractwatch
    • Removedcounterparty-attestation
    • Removedcounterparty-clearance
    • Removedcryptonews
    • Removeddaily-intel-brief
    • Removeddeep-audit
    • Removeddefidata
    • Removeddeliver
    • Removeddeliverability
    • Removeddemand-radar
    • Removedderivbundle
    • Removeddex-pair-price
    • Removeddispute-risk
    • Removeddomain-risk
    • Removedemerging-protocols
    • Removedendpoint-trust
    • Removedfear-greed
    • Removedfunding-rates
    • Removedfunding-spread
    • Removedheaders-audit
    • Removedhurricane-odds
    • Removedibancheck
    • Removedidentity-risk
    • Removedinference
    • Removedinsider-radar
    • Removediw
    • Removedlifi-bridge-route-quote
    • Removedliqrisk
    • Removedllm-fast
    • Removedllm-smart
    • Removedmacro-surprise
    • Removedmacrobundle
    • Removedmarine-daily
    • Removedmarine-wave-forecast
    • Removedmarket-dominance
    • Removedmarket-resolution
    • Removedmarket-sentiment
    • Removedmcpscan
    • Removedmtasts
    • Removednft
    • Removednoaa-tides
    • Removednpm-downloads-range
    • Removednyfed-all-reference-rates-latest
    • Removedohlcv-candles
    • Removedonchain
    • Removedopeninterest
    • Removedosint
    • Removedosint-deep
    • Removedosint-flash
    • Removedpayto-preflight
    • Removedperps
    • Removedpharma-deep
    • Removedpolymarket-markets
    • Removedpolymarket-odds-movers
    • Removedpolymarket-resolution-watch
    • Removedpolymarket-whales
    • Removedpre-trade-safety
    • Removedprediction
    • Removedprediction-market-signal
    • Removedprediction-markets
    • Removedprotocol-revenue
    • Removedprotocol-revenue-lite
    • Removedprotocol-tvl
    • Removedransomware-gleif
    • Removedregwatch
    • Removedresolution-oracle
    • Removedresolution-risk
    • Removedresolution-source-feed
    • Removedresolution-verdict
    • Removedrocketpool-reth-apr-validators
    • Removedrwa-gap-watch
    • Removedsafe-to-trade
    • Removedsanctions-screen
    • Removedsecurity-posture
    • Removedsentiment
    • Removedshipping-alpha
    • Removedslippage
    • Removedsourcify-contract-verification
    • Removedspace-weather
    • Removedstablecoin-depeg
    • Removedstablecoin-peg
    • Removedstock-intel
    • Removedthreat-exposure
    • Removedtoken-verdict-base
    • Removedtokenguard
    • Removedtokenrisk
    • Removedtor-fetch
    • Removedtranslate
    • Removedtrending-cross
    • Removedtvl-concentration
    • Removedtx-simulator
    • Removedusgs-realtime-streamflow
    • Removedvendor-dossier
    • Removedvessel-sanctions
    • Removedwallet-enrich
    • Removedwalletrep
    • Removedweather-now
    • Removedweb-extract
    • Removedwebsearch
    • Removedwho-gho-indicator-timeseries
    • Removedwho-gho-premium
    • Removedwikidata-entity-search
    • Removedyahoo-equity-delayed-quote
  16. 8 tool updates
    • Addeddeliverability
    • Addediw
    • Addedmarine-daily
    • Addednyfed-all-reference-rates-latest
    • Addedrocketpool-reth-apr-validators
    • Addedstablecoin-peg
    • Addedwho-gho-indicator-timeseries
    • Addedwikidata-entity-search
  17. 6 tool updates
    • Addedbasis-btc
    • Addeddnsdomain
    • Addeddoaj-article-search
    • Addednpm-downloads-range
    • Addedsourcify-contract-verification
    • Addedtoken-verdict-base
  18. 1 tool update
    • Addedprediction
  19. 3 tool updates
    • Changeddispute-risk1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text)"New value: +"product parameters (JSON or text). Example: {\"market_slug\": \"pro-football-any-player-1750-receiving-yards-2026-27\"}"
    • Changedmarket-resolution1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"product parameters (JSON or text)"New value: +"product parameters (JSON or text). Example: {\"market_slug\": \"pro-football-any-player-1750-receiving-yards-2026-27\"}"
    • Removedprediction
  20. 1 tool update
    • Removediw

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources