{
 "serverInfo": {
  "name": "synthora-mcp",
  "version": "2.0.0",
  "title": "SYNTHORA x402 MCP Server"
 },
 "description": "Current SYNTHORA x402 intelligence tools: one free search tool plus the canonical public manifest resources.",
 "transport": {
  "type": "streamable-http",
  "endpoint": "https://mcp.hergertsynthora.com/mcp"
 },
 "capabilities": {
  "tools": {
   "listChanged": false
  }
 },
 "authentication": {
  "required": false,
  "schemes": [
   {
    "type": "x402",
    "network": "eip155:8453",
    "asset": "USDC",
    "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167"
   }
  ]
 },
 "provider": {
  "organization": "SYNTHORA",
  "url": "https://hergertsynthora.com"
 },
 "registry": "https://registry.modelcontextprotocol.io",
 "tools": [
  {
   "name": "synthora_search",
   "description": "FREE. Search the current SYNTHORA x402 catalog by need, category or keyword.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "query": {
      "type": "string"
     },
     "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25
     }
    },
    "required": [
     "query"
    ]
   }
  },
  {
   "name": "air_quality",
   "description": "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: 10000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "input": {
      "type": "string",
      "description": "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"
     }
    }
   }
  },
  {
   "name": "bitcoin_fees",
   "description": "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: 10000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "red": {
      "type": "string",
      "const": "bitcoin",
      "description": "Optional Bitcoin-only selector; exact lowercase bitcoin. Omit for Bitcoin. Does not select fee tier."
     },
     "network": {
      "type": "string",
      "const": "bitcoin",
      "description": "Optional Bitcoin-only selector; exact lowercase bitcoin. Omit for Bitcoin. Does not select fee tier."
     }
    },
    "additionalProperties": false
   }
  },
  {
   "name": "defi_llama_tvl_ranking",
   "description": "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: 10000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "limit": {
      "type": "integer",
      "description": "top N, default 50, max 200"
     }
    }
   }
  },
  {
   "name": "defi_yields",
   "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: DefiLlama, free, no key. $0.01 USDC x402 Base. [x402: 10000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "red": {
      "type": "string",
      "minLength": 1,
      "description": "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."
     },
     "activo": {
      "type": "string",
      "minLength": 1,
      "description": "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."
     },
     "protocolo": {
      "type": "string",
      "minLength": 1,
      "description": "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."
     },
     "pool_id": {
      "type": "string",
      "minLength": 1,
      "description": "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."
     },
     "desde": {
      "type": "string",
      "minLength": 1,
      "description": "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."
     },
     "historial_dias": {
      "type": "integer",
      "minimum": 1,
      "maximum": 90,
      "description": "Requires pool_id; history availability is not guaranteed."
     }
    }
   }
  },
  {
   "name": "dnsdomain",
   "description": "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<your Base address>' (no payment); then 0.001 USDC per call. [x402: 1000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "domain": {
      "type": "string",
      "description": "Domain, URL or email address to report on"
     }
    },
    "required": [
     "domain"
    ]
   }
  },
  {
   "name": "doaj_article_search",
   "description": "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<addr>. No charge on upstream failure. [x402: 5000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "query": {
      "type": "string",
      "description": "query"
     }
    },
    "required": [
     "query"
    ]
   }
  },
  {
   "name": "ecb_forex_fixing_vs_market",
   "description": "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: 10000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "market_rate": {
      "oneOf": [
       {
        "type": "number",
        "exclusiveMinimum": 0
       },
       {
        "type": "string",
        "minLength": 1
       }
      ],
      "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."
     },
     "market_timestamp_unix": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "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."
     },
     "market_provenance": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000,
      "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."
     },
     "par": {
      "type": "string",
      "const": "EUR/USD",
      "default": "EUR/USD",
      "description": "Only supported pair, EUR/USD; quote units are USD per EUR. Omission defaults to EUR/USD."
     }
    },
    "required": [
     "market_rate",
     "market_timestamp_unix",
     "market_provenance"
    ],
    "additionalProperties": false
   }
  },
  {
   "name": "ecb_macro",
   "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 prediction markets. Official free source, no key. $0.03 USDC x402 Base. [x402: 30000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "region": {
      "type": "string",
      "const": "U2",
      "description": "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."
     },
     "mode": {
      "type": "string",
      "const": "latest",
      "description": "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."
     }
    },
    "additionalProperties": false
   }
  },
  {
   "name": "exchange_rates_verified",
   "description": "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: 30000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "input": {
      "type": "string",
      "description": "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"
     }
    }
   }
  },
  {
   "name": "fed_watch",
   "description": "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: 30000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "input": {
      "type": "string",
      "description": "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"
     }
    }
   }
  },
  {
   "name": "gas_oracle_multi",
   "description": "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: 30000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "input": {
      "type": "string",
      "description": "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"
     }
    }
   }
  },
  {
   "name": "gdelt_tension",
   "description": "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: 30000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "input": {
      "type": "string",
      "description": "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"
     }
    }
   }
  },
  {
   "name": "github_repo_activity",
   "description": "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: 30000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "input": {
      "type": "string",
      "description": "owner/repo"
     }
    }
   }
  },
  {
   "name": "historical_weather",
   "description": "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: 30000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "input": {
      "type": "string",
      "description": "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"
     }
    }
   }
  },
  {
   "name": "npm_downloads_range",
   "description": "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<addr>. No charge on upstream failure. [x402: 1000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "package": {
      "type": "string",
      "minLength": 1,
      "description": "npm package, including scoped packages"
     },
     "period": {
      "type": "string",
      "enum": [
       "last-day",
       "last-week",
       "last-month"
      ],
      "default": "last-week",
      "description": "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."
     },
     "start": {
      "type": "string",
      "format": "date",
      "description": "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."
     },
     "end": {
      "type": "string",
      "format": "date",
      "description": "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."
     }
    },
    "required": [
     "package"
    ]
   }
  },
  {
   "name": "payto_preflight",
   "description": "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.001 USDC via x402 on Base. SYNTHORA. [x402: 10000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "endpoint_url": {
      "type": "string",
      "description": "endpoint resource URL to verify"
     },
     "expected_payTo": {
      "type": "string",
      "description": "expected payTo address (0x...)"
     },
     "chain": {
      "type": "string",
      "description": "expected chain, e.g. eip155:8453"
     }
    },
    "required": [
     "endpoint_url"
    ]
   }
  },
  {
   "name": "polymarket_markets",
   "description": "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: 50000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "input": {
      "type": "string",
      "description": "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"
     }
    }
   }
  },
  {
   "name": "polymarket_trades",
   "description": "Historical Polymarket trade query with filters plus per-wallet aggregation. $0.03 USDC x402 Base. [x402: 30000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "input": {
      "type": "string",
      "description": "Historical Polymarket trade query with filters plus per-wallet aggregation. $0.01 USDC x402 Base."
     }
    }
   }
  },
  {
   "name": "port_watch",
   "description": "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: 30000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "input": {
      "type": "string",
      "description": "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"
     }
    }
   }
  },
  {
   "name": "registry_watch",
   "description": "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: 30000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "since": {
      "type": "string",
      "description": "Exclusive cursor del_... or timezone-aware ISO8601 timestamp"
     },
     "slug": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,128}$",
      "description": "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": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "default": 50,
      "description": "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."
     }
    },
    "additionalProperties": false
   }
  },
  {
   "name": "space_weather_risk",
   "description": "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: 30000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "input": {
      "type": "string",
      "description": "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"
     }
    }
   }
  },
  {
   "name": "stablecoin_supply",
   "description": "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: 10000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "input": {
      "type": "string",
      "description": "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. "
     }
    }
   }
  },
  {
   "name": "top_crypto",
   "description": "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: 10000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "limit": {
      "type": "integer",
      "description": "top N, default 10, max 50"
     }
    }
   }
  },
  {
   "name": "usgs_earthquakes",
   "description": "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: 30000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "input": {
      "type": "string",
      "description": "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 "
     }
    }
   }
  },
  {
   "name": "volume_anomaly",
   "description": "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: 30000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "input": {
      "type": "string",
      "description": "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"
     }
    }
   }
  },
  {
   "name": "who_gho_indicator_timeseries",
   "description": "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<addr>. No charge on upstream failure. [x402: 1000 atomic USDC on Base]",
   "inputSchema": {
    "type": "object",
    "properties": {
     "indicatorCode": {
      "type": "string",
      "description": "indicatorCode"
     },
     "$filter": {
      "type": "string",
      "description": "OData filter"
     },
     "$top": {
      "type": "integer",
      "description": "maximum records"
     }
    },
    "required": [
     "indicatorCode",
     "$filter"
    ]
   }
  }
 ],
 "date_updated": "2026-10-17T03:47:02Z"
}
