SYNTHORA x402 Intelligence Mesh
Server Details
Calibrated intelligence via x402 (USDC Base). ERC-8004 #84581: 272 payments, 49 wallets.
- Status
- Healthy
- Uptime
- 99.3% over 62 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 27 tools
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).
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.
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.
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 toolsair_qualityARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | 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 |
TDQS
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.
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.
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.
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.
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.
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_feesARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| red | No | Optional Bitcoin-only selector; exact lowercase bitcoin. Omit for Bitcoin. Does not select fee tier. | |
| network | No | Optional Bitcoin-only selector; exact lowercase bitcoin. Omit for Bitcoin. Does not select fee tier. |
TDQS
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.
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.
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.
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.
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.
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_rankingARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | top N, default 50, max 200 |
TDQS
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.
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.
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.
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.
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.
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_yieldsARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| red | No | 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. | |
| desde | No | 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. | |
| activo | No | 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. | |
| pool_id | No | 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. | |
| protocolo | No | 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. | |
| historial_dias | No | Requires pool_id; history availability is not guaranteed. |
TDQS
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.
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.
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.
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.
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.
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.
dnsdomainARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain, URL or email address to report on |
TDQS
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.
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.
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.
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.
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.
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_searchARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | query |
TDQS
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.
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.
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.
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.
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.
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_marketARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| par | No | Only supported pair, EUR/USD; quote units are USD per EUR. Omission defaults to EUR/USD. | EUR/USD |
| market_rate | Yes | 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. | |
| market_provenance | Yes | Required 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_unix | Yes | 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. |
TDQS
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.
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.
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.
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.
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.
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_macroARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 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. | |
| region | No | 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. |
TDQS
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.
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.
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.
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.
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.
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_verifiedBRead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | 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 |
TDQS
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.
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.
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.
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.
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.
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_watchARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | 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 |
TDQS
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.
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.
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.
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.
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.
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_multiARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | 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 |
TDQS
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.
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.
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.
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.
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.
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_tensionARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | 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 |
TDQS
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.
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.
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.
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.
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.
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_activityARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | owner/repo |
TDQS
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.
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.
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.
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.
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.
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_weatherARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | 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 |
TDQS
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.
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.
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.
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.
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.
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_rangeARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | 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. | |
| start | No | 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. | |
| period | No | 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. | last-week |
| package | Yes | npm package, including scoped packages |
TDQS
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.
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.
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.
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.
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.
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_preflightARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | expected chain, e.g. eip155:8453 | |
| endpoint_url | Yes | endpoint resource URL to verify | |
| expected_payTo | No | expected payTo address (0x...) |
TDQS
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.
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.
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.
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.
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.
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_marketsARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | 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 |
TDQS
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.
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.
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.
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.
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.
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_tradesCRead-onlyIdempotentInspect
Historical Polymarket trade query with filters plus per-wallet aggregation. $0.03 USDC x402 Base. [x402: 0.03 USDC per call on Base]
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | Historical Polymarket trade query with filters plus per-wallet aggregation. $0.03 USDC x402 Base. |
TDQS
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.
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.
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.
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.
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.
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_watchARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | 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 |
TDQS
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.
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.
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.
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.
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.
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_watchARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | 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. | |
| limit | No | 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. | |
| since | No | Exclusive cursor del_... or timezone-aware ISO8601 timestamp |
TDQS
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.
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.
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.
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.
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.
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_riskBRead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | 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 |
TDQS
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.
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.
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.
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.
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.
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_supplyARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | 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. |
TDQS
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.
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.
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.
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.
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.
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.
synthora_searchARead-onlyIdempotentInspect
FREE. Search the currently published SYNTHORA tools by keyword and optional USDC price ceiling. Returns tool name, advertised price and example arguments. Only the live catalog is searched; a match is not proof of paid delivery or data freshness. Start here to choose a tool.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | keywords in currently published tool names or descriptions | |
| max_price_usdc | No | optional USDC price ceiling |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent and closed-world behavior, and the description adds genuinely new context: the call is free, only the live catalog is searched, and a match is 'not proof of paid delivery or data freshness'. That honesty about result trustworthiness is valuable. It stops short of describing rate limits or result ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, each earning its place, with the most decision-relevant fact ('FREE') front-loaded and the routing hint ('Start here') at the end. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 burden and does so by naming the returned fields (tool name, advertised price, example arguments) and the catalog-scope caveat. An agent has everything needed to decide to call it and to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description restates them (keyword, optional price ceiling) without adding matching semantics or format detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search the currently published SYNTHORA tools') plus the search dimensions (keyword, USDC price ceiling) and the return shape. This is clearly distinguishable from all sibling tools, which are concrete data endpoints rather than a catalog lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Start here to choose a tool' gives an explicit entry-point role relative to the sibling data tools, which is the key routing decision. It does not spell out when-not-to-use or name a specific alternative, but the surrounding context makes the intent unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
top_cryptoARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | top N, default 10, max 50 |
TDQS
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.
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.
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.
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.
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.
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_earthquakesBRead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | 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 |
TDQS
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.
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.
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.
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.
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.
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_anomalyARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | 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 |
TDQS
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.
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.
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.
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.
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.
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_timeseriesARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| $top | No | maximum records | |
| $filter | Yes | OData filter | |
| indicatorCode | Yes | indicatorCode |
TDQS
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.
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.
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.
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.
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.
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 tool update
- Changed
polymarket_trades1 field changed- changed
Input schema / properties / input / descriptionPrevious 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."
6 tool updates
- Changed
bitcoin_fees4 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / inputRemoved value: -{ - "type": "string" -} - added
Input schema / properties / networkAdded value: +{ + "const": "bitcoin", + "description": "Optional Bitcoin-only selector; exact lowercase bitcoin. Omit for Bitcoin. Does not select fee tier.", + "type": "string" +} - added
Input schema / properties / redAdded value: +{ + "const": "bitcoin", + "description": "Optional Bitcoin-only selector; exact lowercase bitcoin. Omit for Bitcoin. Does not select fee tier.", + "type": "string" +}
- Changed
defi_yields5 fields changed- added
Input schema / properties / activo / descriptionAdded 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." - added
Input schema / properties / desde / descriptionAdded 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." - added
Input schema / properties / pool_id / descriptionAdded 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." - added
Input schema / properties / protocolo / descriptionAdded 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." - added
Input schema / properties / red / descriptionAdded 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."
- Changed
ecb_forex_fixing_vs_market8 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / examplesPrevious 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 + } +] - removed
Input schema / properties / inputRemoved value: -{ - "type": "string" -} - added
Input schema / properties / market_provenanceAdded 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" +} - added
Input schema / properties / market_rateAdded 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" + } + ] +} - added
Input schema / properties / market_timestamp_unixAdded 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" +} - added
Input schema / properties / parAdded 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" +} - added
Input schema / requiredAdded value: +[ + "market_rate", + "market_timestamp_unix", + "market_provenance" +]
- Changed
ecb_macro2 fields changed- added
Input schema / properties / mode / descriptionAdded 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." - added
Input schema / properties / region / descriptionAdded 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."
- Changed
npm_downloads_range3 fields changed- added
Input schema / properties / end / descriptionAdded 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." - added
Input schema / properties / period / descriptionAdded 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." - added
Input schema / properties / start / descriptionAdded 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."
- Changed
registry_watch2 fields changed- added
Input schema / properties / limit / descriptionAdded 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." - added
Input schema / properties / slug / descriptionAdded 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."
2 tool updates
- Changed
defi_yields8 fields changed- changed
Input schema / examplesPrevious value: -[ - { - "input": "" - } -]New value: +[ + {} +] - added
Input schema / properties / activoAdded value: +{ + "minLength": 1, + "type": "string" +} - added
Input schema / properties / desdeAdded value: +{ + "minLength": 1, + "type": "string" +} - added
Input schema / properties / historial_diasAdded value: +{ + "description": "Requires pool_id; history availability is not guaranteed.", + "maximum": 90, + "minimum": 1, + "type": "integer" +} - removed
Input schema / properties / inputRemoved 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" -} - added
Input schema / properties / pool_idAdded value: +{ + "minLength": 1, + "type": "string" +} - added
Input schema / properties / protocoloAdded value: +{ + "minLength": 1, + "type": "string" +} - added
Input schema / properties / redAdded value: +{ + "minLength": 1, + "type": "string" +}
- Changed
ecb_macro5 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / examplesPrevious value: -[ - { - "input": "" - } -]New value: +[ + {} +] - removed
Input schema / properties / inputRemoved 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" -} - added
Input schema / properties / modeAdded value: +{ + "const": "latest", + "type": "string" +} - added
Input schema / properties / regionAdded value: +{ + "const": "U2", + "type": "string" +}
1 tool update
- Changed
registry_watch6 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / examplesPrevious value: -[ - { - "input": "latest" - } -]New value: +[ + { + "limit": 50 + } +] - removed
Input schema / properties / inputRemoved 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" -} - added
Input schema / properties / limitAdded value: +{ + "default": 50, + "examples": [ + 50 + ], + "maximum": 200, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / sinceAdded value: +{ + "description": "Exclusive cursor del_... or timezone-aware ISO8601 timestamp", + "type": "string" +} - added
Input schema / properties / slugAdded value: +{ + "pattern": "^[A-Za-z0-9_-]{1,128}$", + "type": "string" +}
27 tool updates
- Changed
air_quality3 fields changed- added
Input schema / examplesAdded value: +[ + { + "input": "Delhi" + } +] - changed
Input schema / properties / input / descriptionPrevious 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" - added
Input schema / properties / input / examplesAdded value: +[ + "Delhi" +]
- Changed
bitcoin_fees2 fields changed- added
Input schema / examplesAdded value: +[ + {} +] - removed
Input schema / properties / input / descriptionRemoved value: -"product parameters (JSON or text)"
- Changed
defi_llama_tvl_ranking3 fields changed- added
Input schema / examplesAdded value: +[ + { + "limit": 50 + } +] - removed
Input schema / properties / inputRemoved value: -{ - "description": "product parameters (JSON or text). Example: {\"limit\": 50}", - "type": "string" -} - added
Input schema / properties / limitAdded value: +{ + "description": "top N, default 50, max 200", + "examples": [ + 50 + ], + "type": "integer" +}
- Changed
defi_yields3 fields changed- added
Input schema / examplesAdded value: +[ + { + "input": "" + } +] - changed
Input schema / properties / input / descriptionPrevious 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" - added
Input schema / properties / input / examplesAdded value: +[ + "" +]
- Changed
dnsdomain4 fields changed- added
Input schema / examplesAdded value: +[ + { + "domain": "stripe.com" + } +] - added
Input schema / properties / domainAdded value: +{ + "description": "Domain, URL or email address to report on", + "examples": [ + "stripe.com" + ], + "type": "string" +} - removed
Input schema / properties / inputRemoved value: -{ - "description": "product parameters (JSON or text). Example: {\"domain\": \"stripe.com\"}", - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "domain" +]
- Changed
doaj_article_search4 fields changed- added
Input schema / examplesAdded value: +[ + { + "pageSize": 2, + "query": "machine learning" + } +] - removed
Input schema / properties / inputRemoved value: -{ - "description": "product parameters (JSON or text). Example: {\"query\": \"machine learning\", \"pageSize\": 2}", - "type": "string" -} - added
Input schema / properties / queryAdded value: +{ + "description": "query", + "examples": [ + "machine learning" + ], + "type": "string" +} - added
Input schema / requiredAdded value: +[ + "query" +]
- Changed
ecb_forex_fixing_vs_market2 fields changed- added
Input schema / examplesAdded value: +[ + {} +] - removed
Input schema / properties / input / descriptionRemoved value: -"product parameters (JSON or text)"
- Changed
ecb_macro3 fields changed- added
Input schema / examplesAdded value: +[ + { + "input": "" + } +] - changed
Input schema / properties / input / descriptionPrevious 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" - added
Input schema / properties / input / examplesAdded value: +[ + "" +]
- Changed
exchange_rates_verified3 fields changed- added
Input schema / examplesAdded value: +[ + { + "input": "" + } +] - changed
Input schema / properties / input / descriptionPrevious 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" - added
Input schema / properties / input / examplesAdded value: +[ + "" +]
- Changed
fed_watch3 fields changed- added
Input schema / examplesAdded value: +[ + { + "input": "" + } +] - changed
Input schema / properties / input / descriptionPrevious 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" - added
Input schema / properties / input / examplesAdded value: +[ + "" +]
- Changed
gas_oracle_multi2 fields changed- added
Input schema / examplesAdded value: +[ + { + "chain": "base" + } +] - changed
Input schema / properties / input / descriptionPrevious 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"
- Changed
gdelt_tension2 fields changed- added
Input schema / examplesAdded value: +[ + { + "query": "taiwan" + } +] - changed
Input schema / properties / input / descriptionPrevious 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"
- Changed
github_repo_activity3 fields changed- added
Input schema / examplesAdded value: +[ + { + "input": "torvalds/linux" + } +] - changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"input\": \"torvalds/linux\"}"New value: +"owner/repo" - added
Input schema / properties / input / examplesAdded value: +[ + "torvalds/linux" +]
- Changed
historical_weather2 fields changed- added
Input schema / examplesAdded value: +[ + { + "date": "2026-08-01", + "place": "Casablanca" + } +] - changed
Input schema / properties / input / descriptionPrevious 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"
- Changed
npm_downloads_range7 fields changed- added
Input schema / examplesAdded value: +[ + { + "package": "express", + "period": "last-week" + } +] - added
Input schema / properties / endAdded value: +{ + "format": "date", + "type": "string" +} - removed
Input schema / properties / inputRemoved value: -{ - "description": "product parameters (JSON or text). Example: {\"package\": \"express\", \"period\": \"last-week\"}", - "type": "string" -} - added
Input schema / properties / packageAdded value: +{ + "description": "npm package, including scoped packages", + "examples": [ + "express" + ], + "minLength": 1, + "type": "string" +} - added
Input schema / properties / periodAdded value: +{ + "default": "last-week", + "enum": [ + "last-day", + "last-week", + "last-month" + ], + "examples": [ + "last-week" + ], + "type": "string" +} - added
Input schema / properties / startAdded value: +{ + "format": "date", + "type": "string" +} - added
Input schema / requiredAdded value: +[ + "package" +]
- Changed
payto_preflight6 fields changed- added
Input schema / examplesAdded value: +[ + { + "chain": "eip155:8453", + "endpoint_url": "https://onchain.hergertsynthora.com/service", + "expected_payTo": "0xEf879BFD6C4AccB8F795136de90246e1EC245e06" + } +] - added
Input schema / properties / chainAdded value: +{ + "description": "expected chain, e.g. eip155:8453", + "examples": [ + "eip155:8453" + ], + "type": "string" +} - added
Input schema / properties / endpoint_urlAdded value: +{ + "description": "endpoint resource URL to verify", + "examples": [ + "https://onchain.hergertsynthora.com/service" + ], + "type": "string" +} - added
Input schema / properties / expected_payToAdded value: +{ + "description": "expected payTo address (0x...)", + "examples": [ + "0xEf879BFD6C4AccB8F795136de90246e1EC245e06" + ], + "type": "string" +} - removed
Input schema / properties / inputRemoved value: -{ - "description": "product parameters (JSON or text). Example: {\"endpoint_url\": \"https://onchain.hergertsynthora.com/service\", \"expected_payTo\": \"0xEf879BFD6C4AccB8F795136de90246e1EC245e06\", \"chain\": \"eip155:8453\"}", - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "endpoint_url" +]
- Changed
polymarket_markets3 fields changed- added
Input schema / examplesAdded value: +[ + { + "input": "bitcoin" + } +] - changed
Input schema / properties / input / descriptionPrevious 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" - added
Input schema / properties / input / examplesAdded value: +[ + "bitcoin" +]
- Changed
polymarket_trades2 fields changed- added
Input schema / examplesAdded value: +[ + { + "limit": 5 + } +] - changed
Input schema / properties / input / descriptionPrevious 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."
- Changed
port_watch2 fields changed- added
Input schema / examplesAdded value: +[ + { + "port": "rotterdam" + } +] - changed
Input schema / properties / input / descriptionPrevious 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"
- Changed
registry_watch3 fields changed- added
Input schema / examplesAdded value: +[ + { + "input": "latest" + } +] - changed
Input schema / properties / input / descriptionPrevious 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\": \"" - added
Input schema / properties / input / examplesAdded value: +[ + "latest" +]
- Changed
space_weather_risk3 fields changed- added
Input schema / examplesAdded value: +[ + { + "input": "" + } +] - changed
Input schema / properties / input / descriptionPrevious 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" - added
Input schema / properties / input / examplesAdded value: +[ + "" +]
- Changed
stablecoin_supply3 fields changed- added
Input schema / examplesAdded value: +[ + { + "input": "USDC" + } +] - changed
Input schema / properties / input / descriptionPrevious 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. " - added
Input schema / properties / input / examplesAdded value: +[ + "USDC" +]
- Changed
synthora_search5 fields changed- added
Input schema / examplesAdded value: +[ + { + "max_price_usdc": 0.03, + "query": "bitcoin fees" + } +] - changed
Input schema / properties / max_price_usdc / descriptionPrevious value: -"optional price ceiling"New value: +"optional USDC price ceiling" - added
Input schema / properties / max_price_usdc / minimumAdded value: +0 - changed
Input schema / properties / query / descriptionPrevious value: -"keywords, e.g. 'sanctions', 'nft', 'exchange rates'"New value: +"keywords in currently published tool names or descriptions" - added
Input schema / properties / query / examplesAdded value: +[ + "bitcoin fees", + "exchange rates" +]
- Changed
top_crypto3 fields changed- added
Input schema / examplesAdded value: +[ + { + "limit": 10 + } +] - removed
Input schema / properties / inputRemoved value: -{ - "description": "product parameters (JSON or text). Example: {\"limit\": 10}", - "type": "string" -} - added
Input schema / properties / limitAdded value: +{ + "description": "top N, default 10, max 50", + "examples": [ + 10 + ], + "type": "integer" +}
- Changed
usgs_earthquakes3 fields changed- added
Input schema / examplesAdded value: +[ + { + "input": "" + } +] - changed
Input schema / properties / input / descriptionPrevious 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 " - added
Input schema / properties / input / examplesAdded value: +[ + "" +]
- Changed
volume_anomaly3 fields changed- added
Input schema / examplesAdded value: +[ + { + "input": "" + } +] - changed
Input schema / properties / input / descriptionPrevious 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" - added
Input schema / properties / input / examplesAdded value: +[ + "" +]
- Changed
who_gho_indicator_timeseries6 fields changed- added
Input schema / examplesAdded value: +[ + { + "$filter": "SpatialDim eq 'USA'", + "$top": 2, + "indicatorCode": "WHOSIS_000001" + } +] - added
Input schema / properties / $filterAdded value: +{ + "description": "OData filter", + "examples": [ + "SpatialDim eq 'USA'" + ], + "type": "string" +} - added
Input schema / properties / $topAdded value: +{ + "description": "maximum records", + "examples": [ + 2 + ], + "type": "integer" +} - added
Input schema / properties / indicatorCodeAdded value: +{ + "description": "indicatorCode", + "examples": [ + "WHOSIS_000001" + ], + "type": "string" +} - removed
Input schema / properties / inputRemoved value: -{ - "description": "product parameters (JSON or text). Example: {\"indicatorCode\": \"WHOSIS_000001\", \"$filter\": \"SpatialDim eq 'USA'\", \"$top\": 2}", - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "indicatorCode", + "$filter" +]
15 tool updates
- Changed
bitcoin_fees1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"input\": \"{}\"}"New value: +"product parameters (JSON or text)"
- Changed
defi_llama_tvl_ranking1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"limit\\\": 50}\"}"New value: +"product parameters (JSON or text). Example: {\"limit\": 50}"
- Changed
dnsdomain1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"domain\\\": \\\"stripe.com\\\"}\"}"New value: +"product parameters (JSON or text). Example: {\"domain\": \"stripe.com\"}"
- Changed
doaj_article_search1 field changed- changed
Input schema / properties / input / descriptionPrevious 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}"
- Changed
ecb_forex_fixing_vs_market1 field changed- changed
Input schema / properties / input / descriptionPrevious 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)"
- Changed
exchange_rates_verified1 field changed- changed
Input schema / properties / input / descriptionPrevious 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\": \"\"}"
- Changed
gas_oracle_multi1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"chain\\\": \\\"base\\\"}\"}"New value: +"product parameters (JSON or text). Example: {\"chain\": \"base\"}"
- Changed
gdelt_tension1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"query\\\": \\\"taiwan\\\"}\"}"New value: +"product parameters (JSON or text). Example: {\"query\": \"taiwan\"}"
- Changed
historical_weather1 field changed- changed
Input schema / properties / input / descriptionPrevious 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\"}"
- Changed
npm_downloads_range1 field changed- changed
Input schema / properties / input / descriptionPrevious 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\"}"
- Changed
payto_preflight1 field changed- changed
Input schema / properties / input / descriptionPrevious 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\"}"
- Changed
polymarket_trades1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"limit\\\": 5}\"}"New value: +"product parameters (JSON or text). Example: {\"limit\": 5}"
- Changed
port_watch1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"port\\\": \\\"rotterdam\\\"}\"}"New value: +"product parameters (JSON or text). Example: {\"port\": \"rotterdam\"}"
- Changed
top_crypto1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"limit\\\": 10}\"}"New value: +"product parameters (JSON or text). Example: {\"limit\": 10}"
- Changed
who_gho_indicator_timeseries1 field changed- changed
Input schema / properties / input / descriptionPrevious 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}"
15 tool updates
- Changed
bitcoin_fees1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text)"New value: +"product parameters (JSON or text). Example: {\"input\": \"{}\"}"
- Changed
defi_llama_tvl_ranking1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"limit\": 50}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"limit\\\": 50}\"}"
- Changed
dnsdomain1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"domain\": \"stripe.com\"}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"domain\\\": \\\"stripe.com\\\"}\"}"
- Changed
doaj_article_search1 field changed- changed
Input schema / properties / input / descriptionPrevious 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}\"}"
- Changed
ecb_forex_fixing_vs_market1 field changed- changed
Input schema / properties / input / descriptionPrevious 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"
- Changed
exchange_rates_verified1 field changed- changed
Input schema / properties / input / descriptionPrevious 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; "
- Changed
gas_oracle_multi1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"chain\": \"base\"}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"chain\\\": \\\"base\\\"}\"}"
- Changed
gdelt_tension1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"query\": \"taiwan\"}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"query\\\": \\\"taiwan\\\"}\"}"
- Changed
historical_weather1 field changed- changed
Input schema / properties / input / descriptionPrevious 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\\\"}\"}"
- Changed
npm_downloads_range1 field changed- changed
Input schema / properties / input / descriptionPrevious 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\\\"}\"}"
- Changed
payto_preflight1 field changed- changed
Input schema / properties / input / descriptionPrevious 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\\\"}\"}"
- Changed
polymarket_trades1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"limit\": 5}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"limit\\\": 5}\"}"
- Changed
port_watch1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"port\": \"rotterdam\"}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"port\\\": \\\"rotterdam\\\"}\"}"
- Changed
top_crypto1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"limit\": 10}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"limit\\\": 10}\"}"
- Changed
who_gho_indicator_timeseries1 field changed- changed
Input schema / properties / input / descriptionPrevious 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}\"}"
25 tool updates
- Added
air_quality - Added
bitcoin_fees - Added
defi_llama_tvl_ranking - Added
defi_yields - Added
dnsdomain - Added
doaj_article_search - Added
ecb_forex_fixing_vs_market - Added
ecb_macro - Added
exchange_rates_verified - Added
fed_watch - Added
gas_oracle_multi - Added
gdelt_tension - Added
historical_weather - Added
npm_downloads_range - Added
payto_preflight - Added
polymarket_markets - Added
polymarket_trades - Added
port_watch - Added
registry_watch - Added
space_weather_risk - Added
stablecoin_supply - Added
top_crypto - Added
usgs_earthquakes - Added
volume_anomaly - Added
who_gho_indicator_timeseries
4 tool updates
- Removed
bitcoin_fees - Removed
ecb_forex_fixing_vs_market - Removed
fed_watch - Removed
historical_weather
23 tool updates
- Removed
air_quality - Changed
bitcoin_fees1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"protocol\": \"aave\"}"New value: +"product parameters (JSON or text)"
- Removed
defi_llama_tvl_ranking - Removed
defi_yields - Removed
dnsdomain - Removed
doaj_article_search - Changed
ecb_forex_fixing_vs_market1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"protocol\": \"aave\"}"New value: +"product parameters (JSON or text)"
- Removed
ecb_macro - Removed
exchange_rates_verified - Removed
gas_oracle_multi - Removed
gdelt_tension - Removed
npm_downloads_range - Removed
payto_preflight - Removed
polymarket_markets - Removed
polymarket_trades - Removed
port_watch - Removed
registry_watch - Removed
space_weather_risk - Removed
stablecoin_supply - Removed
top_crypto - Removed
usgs_earthquakes - Removed
volume_anomaly - Removed
who-gho-indicator-timeseries
3 tool updates
- Removed
commodity_macro - Removed
txintent - Removed
websearch
18 tool updates
- Removed
cyber_exposure_decision - Removed
decision_batch - Removed
decision_deep - Removed
decision_engine - Removed
decision_pulse - Removed
decision_watch - Removed
defi_decision - Changed
npm_downloads_range1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text)"New value: +"product parameters (JSON or text). Example: {\"package\": \"express\", \"period\": \"last-week\"}"
- Changed
payto_preflight1 field changed- changed
Input schema / properties / input / descriptionPrevious 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\"}"
- Removed
protocol_health - Changed
registry_watch1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"product parameters (JSON or text). Example: {\"input\": \"0x0000000000000000000000000000000000000000\"}"New value: +"product parameters (JSON or text). Example: {\"input\": \"latest\"}"
- Removed
research_pack - Removed
supply_chain_decision - Removed
token_risk_decision - Removed
vendor_decision - Removed
wallet_flow_intelligence - Removed
x402_route_optimizer - Removed
x402_service_trust
2 tool updates
- Added
dnsdomain - Added
who-gho-indicator-timeseries
64 tool updates
- Added
air_quality - Removed
air-quality - Added
bitcoin_fees - Removed
bitcoin-fees - Added
commodity_macro - Added
cyber_exposure_decision - Added
decision_batch - Added
decision_deep - Added
decision_engine - Added
decision_pulse - Added
decision_watch - Added
defi_decision - Added
defi_llama_tvl_ranking - Added
defi_yields - Removed
defi-llama-tvl-ranking - Removed
defi-yields - Removed
dnsdomain - Added
doaj_article_search - Removed
doaj-article-search - Added
ecb_forex_fixing_vs_market - Added
ecb_macro - Removed
ecb-forex-fixing-vs-market - Removed
ecb-macro - Added
exchange_rates_verified - Removed
exchange-rates-verified - Added
fed_watch - Removed
fed-watch - Added
gas_oracle_multi - Removed
gas-oracle-multi - Added
gdelt_tension - Removed
gdelt-tension - Added
github_repo_activity - Removed
github-repo-activity - Added
historical_weather - Removed
historical-weather - Added
npm_downloads_range - Added
payto_preflight - Added
polymarket_markets - Added
polymarket_trades - Removed
polymarket-trades - Added
port_watch - Removed
port-watch - Added
protocol_health - Added
registry_watch - Removed
registry-watch - Added
research_pack - Added
space_weather_risk - Removed
space-weather-risk - Added
stablecoin_supply - Removed
stablecoin-supply - Added
supply_chain_decision - Added
token_risk_decision - Added
top_crypto - Removed
top-crypto - Added
usgs_earthquakes - Removed
usgs-earthquakes - Added
vendor_decision - Added
volume_anomaly - Removed
volume-anomaly - Added
wallet_flow_intelligence - Added
websearch - Removed
who-gho-timeseries - Added
x402_route_optimizer - Added
x402_service_trust
122 tool updates
- Removed
agentcard - Removed
agentguard - Removed
ais-sanctions-signal - Removed
amlscreen - Removed
asset-risk - Removed
basis-btc - Removed
bioquantum-dataset - Removed
bridgerisk - Removed
businessrisk - Removed
chokepoint-risk - Removed
chokepoint-transits - Removed
code-sandbox - Removed
codeaudit - Removed
coingecko-crypto-price-history - Removed
commodity-macro - Removed
compliance-brief - Removed
compliance-eu - Removed
consensus-fragility - Removed
contract-guard - Removed
contractwatch - Removed
counterparty-attestation - Removed
counterparty-clearance - Removed
cryptonews - Removed
daily-intel-brief - Removed
deep-audit - Removed
defidata - Removed
deliver - Removed
deliverability - Removed
demand-radar - Removed
derivbundle - Removed
dex-pair-price - Removed
dispute-risk - Removed
domain-risk - Removed
emerging-protocols - Removed
endpoint-trust - Removed
fear-greed - Removed
funding-rates - Removed
funding-spread - Removed
headers-audit - Removed
hurricane-odds - Removed
ibancheck - Removed
identity-risk - Removed
inference - Removed
insider-radar - Removed
iw - Removed
lifi-bridge-route-quote - Removed
liqrisk - Removed
llm-fast - Removed
llm-smart - Removed
macro-surprise - Removed
macrobundle - Removed
marine-daily - Removed
marine-wave-forecast - Removed
market-dominance - Removed
market-resolution - Removed
market-sentiment - Removed
mcpscan - Removed
mtasts - Removed
nft - Removed
noaa-tides - Removed
npm-downloads-range - Removed
nyfed-all-reference-rates-latest - Removed
ohlcv-candles - Removed
onchain - Removed
openinterest - Removed
osint - Removed
osint-deep - Removed
osint-flash - Removed
payto-preflight - Removed
perps - Removed
pharma-deep - Removed
polymarket-markets - Removed
polymarket-odds-movers - Removed
polymarket-resolution-watch - Removed
polymarket-whales - Removed
pre-trade-safety - Removed
prediction - Removed
prediction-market-signal - Removed
prediction-markets - Removed
protocol-revenue - Removed
protocol-revenue-lite - Removed
protocol-tvl - Removed
ransomware-gleif - Removed
regwatch - Removed
resolution-oracle - Removed
resolution-risk - Removed
resolution-source-feed - Removed
resolution-verdict - Removed
rocketpool-reth-apr-validators - Removed
rwa-gap-watch - Removed
safe-to-trade - Removed
sanctions-screen - Removed
security-posture - Removed
sentiment - Removed
shipping-alpha - Removed
slippage - Removed
sourcify-contract-verification - Removed
space-weather - Removed
stablecoin-depeg - Removed
stablecoin-peg - Removed
stock-intel - Removed
threat-exposure - Removed
token-verdict-base - Removed
tokenguard - Removed
tokenrisk - Removed
tor-fetch - Removed
translate - Removed
trending-cross - Removed
tvl-concentration - Removed
tx-simulator - Removed
usgs-realtime-streamflow - Removed
vendor-dossier - Removed
vessel-sanctions - Removed
wallet-enrich - Removed
walletrep - Removed
weather-now - Removed
web-extract - Removed
websearch - Removed
who-gho-indicator-timeseries - Removed
who-gho-premium - Removed
wikidata-entity-search - Removed
yahoo-equity-delayed-quote
8 tool updates
- Added
deliverability - Added
iw - Added
marine-daily - Added
nyfed-all-reference-rates-latest - Added
rocketpool-reth-apr-validators - Added
stablecoin-peg - Added
who-gho-indicator-timeseries - Added
wikidata-entity-search
6 tool updates
- Added
basis-btc - Added
dnsdomain - Added
doaj-article-search - Added
npm-downloads-range - Added
sourcify-contract-verification - Added
token-verdict-base
1 tool update
- Added
prediction
3 tool updates
- Changed
dispute-risk1 field changed- changed
Input schema / properties / input / descriptionPrevious 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\"}"
- Changed
market-resolution1 field changed- changed
Input schema / properties / input / descriptionPrevious 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\"}"
- Removed
prediction
1 tool update
- Removed
iw
Related MCP Connectors
Paid machine-to-machine information tools with x402 USDC payment on Base Mainnet.
Pay-per-query x402 business intelligence on Base, settled in USDC via the native 402 payment flow.
Pay-per-call crypto market intelligence for AI agents. USDC on Base via x402.
Payment-backed trust scores for AI agents on Base (ERC-8004). $0.01 per check via x402.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenancex402 utilities for AI agents on Base: USDC payment verification, wallet risk scores and signed receipts. $0.01 USDC per call via x402.MIT

hyperd-mcpofficial
AlicenseAqualityDmaintenancePre-trade DeFi intelligence for AI agents. 20 paid x402 endpoints, USDC on Base.23113 npm1MIT- AlicenseNot gradedqualityBmaintenanceUSDC payments for AI agents on Base. Direct transfers, pre-funded tabs, x402 paywall handling, and service discovery.155 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to make pay-per-call USDC payments on Base via x402 for headless page rendering, temporary file hosting, scheduled callbacks, and pump.fun launch and trend feeds.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.