{
  "serverInfo": {
    "name": "Dynamic Feed",
    "version": "0.8.0"
  },
  "authentication": {
    "required": false
  },
  "endpoints": {
    "streamable_http": "https://dynamicfeed.ai/mcp",
    "sse": "https://dynamicfeed.ai/sse",
    "note": "Same tools, no key. /mcp auto-detects BOTH transports (modern Streamable HTTP and legacy HTTP+SSE) so any client connects with one URL; /sse is the explicit legacy URL."
  },
  "restApi": {
    "openapi": "https://dynamicfeed.ai/openapi.json",
    "robot_awareness": "POST https://dynamicfeed.ai/v1/awareness — per-class go/caution/no-go verdict for a robot or embodied agent (ground|humanoid|aerial|marine|orbital), fusing live weather/air-quality/space-weather/quakes under a hard deadline. Ed25519-signed; never hangs.",
    "verify_signature": "GET https://dynamicfeed.ai/.well-known/keys — a key_id to Ed25519 public-key map, to verify any awareness signature.",
    "anchor": "POST https://dynamicfeed.ai/v1/anchor — timestamp a snapshot's hash on the Bitcoin blockchain (OpenTimestamps; hash only, no wallet, free).",
    "drift": "POST https://dynamicfeed.ai/v1/drift — audit a batch of an AI's claims against the live feeds.",
    "batch": "POST https://dynamicfeed.ai/v1/batch — run up to 20 read-only tool calls in one request.",
    "status": "https://dynamicfeed.ai/status.json — live platform health."
  },
  "tools": [
    {
      "name": "internet_outages",
      "description": "Live BGP routing health for a network resource (ASN like AS3215, an IP, or a prefix) from RIPEstat (RIPE NCC). Global visibility + an outage signal (healthy/degraded/outage) — a sharp visibility drop = the network is losing global reachability.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "resource": {
            "type": "string",
            "description": "an ASN (AS3215), an IP (8.8.8.8), or a prefix (193.0.0.0/22)"
          }
        }
      }
    },
    {
      "name": "gps_interference",
      "description": "Probable GPS/GNSS interference (jamming/spoofing) over an area, measured from live ADS-B navigation integrity (the GPSJam method). Region preset (london, blacksea, baltic, easternmed, persiangulf, korea, finland, caucasus, northsea) or lat+lon. High degraded_fraction = aircraft losing GPS = probable interference. Derived by Dynamic Feed from adsb.lol (CC0).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "region": {
            "type": "string",
            "description": "preset region, or omit and pass lat/lon"
          },
          "lat": {
            "type": "number"
          },
          "lon": {
            "type": "number"
          },
          "radius_km": {
            "type": "integer",
            "description": "radius around lat/lon in km (used with lat/lon)"
          }
        }
      }
    },
    {
      "name": "energy_grid",
      "description": "Live US electricity grid data by region/operator (EIA v2, public domain): demand, net generation, or current fuel mix (MW). region = US48 (national) or CAISO/PJM/MISO/ERCOT/ISONE/NYISO/SPP/BPA; metric = demand|generation|mix. Hourly.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "region": {
            "type": "string",
            "description": "US48 or a grid operator code"
          },
          "metric": {
            "type": "string",
            "description": "demand | generation | mix"
          }
        }
      }
    },
    {
      "name": "global_macro",
      "description": "Worldwide macro indicators for ANY country from World Bank Open Data (CC-BY): GDP, growth, GDP/capita, CPI inflation, unemployment, population, trade, current account, reserves, FDI, govt debt. country = ISO code (US, GB, DE) or name; indicator = gdp | gdp_growth | cpi_inflation | unemployment | ... | all.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "ISO code (US, GB, DE) or country name"
          },
          "indicator": {
            "type": "string",
            "description": "gdp | cpi_inflation | unemployment | ... | all"
          }
        }
      }
    },
    {
      "name": "airport_delays",
      "description": "Live FAA airport delays, ground stops, closures & ground-delay programs (US National Airspace System, keyless). By 3-letter airport code or all current disruptions.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "airport": {
            "type": "string",
            "description": "3-letter airport code, e.g. LGA, LAX"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "drug_shortages",
      "description": "US drug shortages from the FDA (openFDA, keyless) — is drug X in shortage right now, with status, reason and company. Newest updates first.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "drug / generic name, e.g. amoxicillin"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "sanctions_screen",
      "description": "Screen a name against the US OFAC SDN + UK Sanctions List (FCDO, Open Government Licence) — keyless. Each match is tagged with its list (US-OFAC | UK). A match means the party is sanctioned — legally binding the instant it's posted. Optional program/regime filter (e.g. IRAN, CUBA, or a UK regime).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "name to screen against the SDN list"
          },
          "program": {
            "type": "string",
            "description": "optional sanctions program filter"
          },
          "limit": {
            "type": "integer",
            "description": "max matches"
          }
        }
      }
    },
    {
      "name": "company_lookup",
      "description": "Resolve a company name (or exact 20-char LEI) to its authoritative global Legal Entity Identifier (LEI) + canonical legal name, address, status and local registration, from GLEIF (CC0 public domain, keyless). The deterministic join key to sanctions_screen and sec_filings.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "company name, e.g. 'Apple Inc'"
          },
          "lei": {
            "type": "string",
            "description": "exact 20-char LEI (alternative to query)"
          },
          "country": {
            "type": "string",
            "description": "optional ISO-2 country filter, e.g. AU"
          },
          "limit": {
            "type": "integer",
            "description": "max results (default 5, max 10)"
          }
        }
      }
    },
    {
      "name": "ephemeris",
      "description": "Solar & lunar timing for a place + day — sunrise/sunset, the full twilight set (civil/nautical/astronomical), moonrise/moonset, moon phase + illumination — from the U.S. Naval Observatory (public domain, keyless). For agent/robot daylight & moonlight gating, golden-hour windows and night-ops planning.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "city/place (geocoded), e.g. 'London' — or pass lat/lon"
          },
          "lat": {
            "type": "number",
            "description": "latitude (with lon)"
          },
          "lon": {
            "type": "number",
            "description": "longitude (with lat)"
          },
          "date": {
            "type": "string",
            "description": "YYYY-MM-DD, default today"
          },
          "tz": {
            "type": "number",
            "description": "timezone offset hours, default 0 (UTC)"
          }
        }
      }
    },
    {
      "name": "emissions",
      "description": "National greenhouse-gas emissions for a country (ISO-3 code) + year, from Climate TRACE (CC BY 4.0, keyless): CO2/CH4/N2O + CO2-equivalent (100yr & 20yr GWP), global rank and share of world emissions. Climate TRACE's own modelled inventory; annual, lags ~1-2yr.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "ISO-3 country code, e.g. USA, CHN, IND"
          },
          "year": {
            "type": "integer",
            "description": "year (default latest available, ~2023)"
          }
        }
      }
    },
    {
      "name": "federal_register",
      "description": "Recent US Federal Register documents — rules, proposed rules, notices, executive orders (keyless). What regulation took effect / what the President signed; total post-cutoff blindness for models.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "text search"
          },
          "doc_type": {
            "type": "string",
            "description": "RULE | PRORULE | NOTICE | PRESDOCU"
          },
          "agency": {
            "type": "string",
            "description": "agency slug"
          },
          "days": {
            "type": "integer",
            "description": "look-back window"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "drought",
      "description": "US drought severity — % of area in each D0-D4 class by week (U.S. Drought Monitor, keyless). National or by state FIPS.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "area": {
            "type": "string",
            "description": "'total' (national) or a state FIPS code"
          },
          "weeks": {
            "type": "integer",
            "description": "how many recent weeks"
          }
        }
      }
    },
    {
      "name": "water_levels",
      "description": "Real-time US river levels — gage height (ft) + streamflow/discharge (ft3/s) from USGS NWIS (keyless). Flood risk (rising gage) / drought (low flow). By state, USGS site number(s), or a curated set of major rivers.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "description": "2-letter US state code, e.g. TX, CA"
          },
          "site": {
            "type": "string",
            "description": "USGS site number(s), comma-separated"
          },
          "limit": {
            "type": "integer",
            "description": "max sites"
          }
        }
      }
    },
    {
      "name": "sports_pulse",
      "description": "Global ATTENTION + official schedule for a sporting event, team or competition — e.g. the 2026 FIFA World Cup. Daily Wikipedia views by language edition (momentum/peak) + hosts/dates/sport from Wikidata. Wikimedia + Wikidata (CC0); NOT live scores, fixtures or odds.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "topic": {
            "type": "string",
            "description": "event/team/competition, e.g. '2026 FIFA World Cup'"
          },
          "days": {
            "type": "integer",
            "description": "attention window in days (7-90)"
          },
          "lang": {
            "type": "string",
            "description": "primary Wikipedia language edition (en, es, pt, fr, ...)"
          }
        }
      }
    },
    {
      "name": "search_ai_models",
      "description": "Search current AI models by price, context window, and capability. Prices are USD per 1M tokens; results are cheapest-input-price first.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "match part of a model name/id"
          },
          "provider": {
            "type": "string",
            "description": "openai, anthropic, google, xai, mistral, deepseek, groq"
          },
          "max_input_price": {
            "type": "number",
            "description": "max USD per 1M input tokens"
          },
          "min_context": {
            "type": "integer",
            "description": "minimum context window in tokens"
          },
          "needs_vision": {
            "type": "boolean",
            "description": "only models that accept images"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "service_status",
      "description": "Live up/down/degraded status for major AI & dev services (OpenAI, Anthropic, GitHub, Cloudflare, etc.). Answers 'is X up right now?'.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "description": "ai | dev | infra | platform"
          },
          "only_issues": {
            "type": "boolean",
            "description": "only services currently degraded or down"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "ai_provider_latency",
      "description": "Measured latency & uptime for each major AI provider's API (OpenAI, Anthropic, Google, Mistral, Groq, DeepSeek, xAI) — Dynamic Feed's own measurements, fastest first. Use to pick or route to the fastest/most-reliable provider.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "window_hours": {
            "type": "integer",
            "description": "rolling window for averages (default 24)"
          }
        }
      }
    },
    {
      "name": "software_version",
      "description": "Latest stable versions & end-of-life (EOL) dates for software — languages, runtimes, frameworks, databases, OSes (Python, Node.js, PostgreSQL, React, Kubernetes, Ubuntu...). Answers 'what's the latest stable version of X?' and 'is version Y still supported or end-of-life?'. Each result has latest_version, eol_date, and a status (supported/nearing-eol/end-of-life). Source: endoflife.date.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "product": {
            "type": "string",
            "description": "exact slug (python, nodejs, postgresql, react, kubernetes...)"
          },
          "query": {
            "type": "string",
            "description": "match a product name if you don't know the slug"
          },
          "category": {
            "type": "string",
            "description": "language | runtime | framework | database | os | tool"
          },
          "only_supported": {
            "type": "boolean",
            "description": "exclude end-of-life release lines"
          },
          "only_lts": {
            "type": "boolean",
            "description": "only long-term-support lines"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "security_advisories",
      "description": "Recent software security advisories / CVEs — each with the affected package, vulnerable version range, the patched version that fixes it, severity, and CVSS score. Use to check if a package has a recent advisory or to get the latest critical CVEs. Pairs with software_version (is my stack current AND safe?). Covers recently-published reviewed advisories. Source: GitHub Advisory Database.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "match summary / package / CVE id / GHSA id"
          },
          "package": {
            "type": "string",
            "description": "affected package name (e.g. lodash, requests, log4j)"
          },
          "ecosystem": {
            "type": "string",
            "description": "npm | pip | maven | go | rubygems | nuget | composer | rust | ..."
          },
          "severity": {
            "type": "string",
            "description": "low | moderate | high | critical"
          },
          "min_cvss": {
            "type": "number",
            "description": "minimum CVSS score (0-10)"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "market_hours",
      "description": "Is the market open right now? Live open/closed status + next open/close for major exchanges (NYSE, NASDAQ, LSE, XETRA, TSE, HKEX, ASX) plus crypto (24/7) and forex (24/5). Tells whether a price is live or a closed-market last-print.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "market": {
            "type": "string",
            "description": "optional: NYSE, NASDAQ, LSE, XETRA, TSE, HKEX, ASX, Crypto, Forex (blank = all)"
          }
        }
      }
    },
    {
      "name": "interest_rates",
      "description": "Live US benchmark interest rates — Effective Fed Funds Rate, SOFR, OBFR, etc. from the New York Fed. Use instead of guessing the current Fed/benchmark rate; training data is stale.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "live_flights",
      "description": "Live aircraft positions right now — real-time flight tracking from the OpenSky Network. Answers 'what's flying over X?' and 'where is flight Y?'. Airborne flights first.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "region": {
            "type": "string",
            "description": "preset area: london, newyork, losangeles, paris, tokyo, dubai, singapore, sydney, frankfurt, hongkong, europe, usa, asia"
          },
          "callsign": {
            "type": "string",
            "description": "filter by flight callsign/number (e.g. BAW123)"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "current_weather",
      "description": "Current weather anywhere — by city name or lat/lon. Returns temperature, feels-like, wind, humidity, precipitation and conditions, live from Open-Meteo. Use instead of guessing the weather.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "description": "city name (e.g. London, Tokyo) — geocoded automatically"
          },
          "lat": {
            "type": "number",
            "description": "latitude (alternative to city)"
          },
          "lon": {
            "type": "number",
            "description": "longitude (alternative to city)"
          }
        }
      }
    },
    {
      "name": "weather_forecast",
      "description": "Multi-day weather forecast (up to 16 days) for a city or lat/lon — daily high/low, precipitation, wind, conditions. Use for 'what's the weather this week / will it rain'.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "description": "city name (geocoded)"
          },
          "lat": {
            "type": "number",
            "description": "latitude (alternative)"
          },
          "lon": {
            "type": "number",
            "description": "longitude (alternative)"
          },
          "days": {
            "type": "integer",
            "description": "1-16, default 7"
          }
        }
      }
    },
    {
      "name": "air_quality",
      "description": "Current air quality for a city or lat/lon — PM2.5, PM10, US & European AQI, ozone, NO2, with a category (Good/Moderate/Unhealthy...). Use for 'is the air quality safe in X'.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "description": "city name (geocoded)"
          },
          "lat": {
            "type": "number",
            "description": "latitude (alternative)"
          },
          "lon": {
            "type": "number",
            "description": "longitude (alternative)"
          }
        }
      }
    },
    {
      "name": "air_quality_fusion",
      "description": "Cross-validated air quality — two independent networks reading the same sky: the Open-Meteo CAMS model (the existing air_quality source) vs real ground monitors via OpenAQ v3 (government reference stations), with a per-pollutant (PM2.5, PM10, O3, NO2) agreement verdict (high/moderate/low/divergent), both values + the delta, and station distance/freshness caveats — the two numbers are never blended. location = an AU preset (brisbane default, sydney, melbourne, perth, adelaide), any city name (geocoded), or a 'lat,lon' string; explicit lat/lon override. Complements air_quality (single-network AQI). If one network is down the result degrades honestly to single-source (agreement: 'unverified'). Stations whose licence disallows commercial use are auto-excluded via OpenAQ's machine-readable licence flags; per-station provider attribution + licence carried in provenance.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "AU preset (brisbane default | sydney | melbourne | perth | adelaide), any city name, or 'lat,lon'"
          },
          "lat": {
            "type": "number",
            "description": "latitude (overrides location)"
          },
          "lon": {
            "type": "number",
            "description": "longitude (overrides location)"
          }
        }
      }
    },
    {
      "name": "au_water",
      "description": "Australian river heights + gauge rainfall near any AU location — live CC-BY-licensed gauge observations from the Bureau of Meteorology's Water Data Online (keyless KiWIS API); the Australian counterpart of water_levels (US USGS). Per station: latest river level (m) with a ~3 h rising/falling/steady trend, or rainfall totals (mm over 1/6/24 h ending at the latest reading), plus real observation timestamps + ages, distance, the data owner and the exact attribution string. location = an AU preset (brisbane default, sydney, melbourne, adelaide, hobart, darwin, canberra, perth) or a 'lat,lon' string; explicit lat/lon override. kind = river | rain | both. Only stations whose data owner is CC-BY-listed (Table 1) in the BoM rain/river licensing statement are served — per-station owner attribution carried in provenance, exclusion counts reported, WA coverage honestly partial. Observational data only — not a flood warning product; official flood warnings/watches are issued by the Bureau at bom.gov.au/australia/warnings.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "AU preset (brisbane default | sydney | melbourne | adelaide | hobart | darwin | canberra | perth) or 'lat,lon'"
          },
          "lat": {
            "type": "number",
            "description": "latitude (overrides location)"
          },
          "lon": {
            "type": "number",
            "description": "longitude (overrides location)"
          },
          "kind": {
            "type": "string",
            "description": "river | rain | both (default both)"
          }
        }
      }
    },
    {
      "name": "flood_forecast",
      "description": "5-day river-discharge FORECAST near an Australian location — Copernicus CEMS Global Flood Awareness System (GloFAS, operational LISFLOOD control run), retrieved daily from the CEMS Early Warning Data Store and served from cache (the answer is instant — never waits on the CDS queue). The forward-looking sibling of au_water: au_water = what AU rivers are DOING (live gauges), flood_forecast = what the global model expects them to do over the next 5 days. Returns the strongest modelled river cell within ~90 km: 24 h-mean discharge (m3/s) per day for ~5 days, the peak value + day, and a rising/falling/steady trend; values are the MAX within ~25 km (0.25-deg max-pooled) cells. location = an AU preset (brisbane default, sydney, melbourne, adelaide, hobart, darwin, canberra, perth) or a 'lat,lon' string; explicit lat/lon override. Raw model guidance only — no flood thresholds or severity classifications are added, and this is NOT a flood warning; official AU flood warnings/watches are issued by the Bureau of Meteorology at bom.gov.au/australia/warnings. Attribution: contains modified Copernicus Emergency Management Service information.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "AU preset (brisbane default | sydney | melbourne | adelaide | hobart | darwin | canberra | perth) or 'lat,lon'"
          },
          "lat": {
            "type": "number",
            "description": "latitude (overrides location)"
          },
          "lon": {
            "type": "number",
            "description": "longitude (overrides location)"
          }
        }
      }
    },
    {
      "name": "check_vulnerability",
      "description": "Is this exact package (and version) vulnerable? FULL historical lookup across the entire OSV.dev corpus (Google) — every matching advisory plus the versions that fix it. Use to check a dependency, e.g. 'does lodash 4.17.10 have known CVEs?'.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "package": {
            "type": "string",
            "description": "package name (lodash, requests, log4j-core...)"
          },
          "version": {
            "type": "string",
            "description": "exact version (recommended, e.g. 4.17.10)"
          },
          "ecosystem": {
            "type": "string",
            "description": "npm | pip | maven | go | rubygems | nuget | cargo | composer"
          }
        },
        "required": [
          "package"
        ]
      }
    },
    {
      "name": "satellites",
      "description": "Satellite/constellation catalog (Starlink, GPS, stations…) with each satellite's altitude, orbital period, and a derived speed-of-light round-trip latency to ground — the physics floor for orbital networks / data centers in space.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "group": {
            "type": "string",
            "description": "starlink, stations, gps-ops, oneweb, galileo, weather, active, geo, science"
          },
          "limit": {
            "type": "integer",
            "description": "max satellites in sample"
          }
        }
      }
    },
    {
      "name": "satellite_position",
      "description": "Real-time position of ANY satellite by NORAD id — true SGP4 propagation of the latest live CelesTrak TLE to the current instant: exact latitude/longitude, altitude, velocity, ground-footprint radius, the speed-of-light latency floor, and TLE age. Optionally a forward ground-track. Use for 'where is the ISS / Hubble / satellite X right now'. This is the true propagated position, not an approximation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "norad_id": {
            "type": "integer",
            "description": "NORAD catalog number (25544 = ISS, 20580 = Hubble, 44714 = a Starlink)"
          },
          "track_minutes": {
            "type": "integer",
            "description": "also return a predicted ground-track this many minutes ahead (0 = none, max 360)"
          },
          "step_seconds": {
            "type": "integer",
            "description": "ground-track sampling step in seconds (default 60)"
          }
        },
        "required": [
          "norad_id"
        ]
      }
    },
    {
      "name": "space_weather",
      "description": "Full space-weather now-cast (NOAA SWPC) — NOAA R/S/G storm scales (radio blackout / radiation storm / geomagnetic storm), geomagnetic Kp index, solar wind (speed, density, Bz — the storm driver), the latest solar X-ray flux/flare, and an aurora-visibility hint. Affects satellite comms & drag, GPS, HF radio, power grids, and orbital-compute radiation/power. Use for 'is there a geomagnetic/solar storm right now'.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "orbital_data_centers",
      "description": "DATA CENTERS IN SPACE — curated registry of compute/AI spacecraft in orbit (Starcloud's NVIDIA H100 GPU, ESA Phi-sat-2 AI edge, D-Orbit in-orbit cloud), each enriched with live orbital data and the speed-of-light round-trip latency floor for ground links. Use for 'what compute/data centers are in space and the latency to reach them'. Unique data.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "earthquakes",
      "description": "Recent earthquakes worldwide from USGS — magnitude, depth, location, PAGER impact alert (green→red, distinct from raw magnitude), tsunami flag, felt reports and significance. Use for 'recent/biggest earthquakes' or 'was there a quake near X'. Sorted by impact then magnitude.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "min_magnitude": {
            "type": "number",
            "description": "minimum magnitude (default 2.5)"
          },
          "period": {
            "type": "string",
            "description": "hour | day | week | month (default day)"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          },
          "tsunami_only": {
            "type": "boolean",
            "description": "only quakes flagged with tsunami potential"
          }
        }
      }
    },
    {
      "name": "natural_events",
      "description": "Active natural events worldwide from NASA EONET — wildfires, severe storms (hurricanes/typhoons), volcanoes, floods, sea/lake ice. Use for 'what natural disasters/events are happening right now'.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "description": "wildfires | severeStorms | volcanoes | floods | seaLakeIce (blank = all)"
          },
          "days": {
            "type": "integer",
            "description": "look-back window in days (default 30)"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "wildfires",
      "description": "Active US wildfires from NIFC WFIGS — incident name, size in acres, % contained, cause, state and location. The 'how big / how contained' detail satellite hotspot feeds can't give (pairs with natural_events, which has global fire points but not size/containment). Largest first.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "description": "optional US state filter, e.g. CA, TX (2-letter)"
          },
          "only_uncontained": {
            "type": "boolean",
            "description": "only fires below 100% containment"
          },
          "min_acres": {
            "type": "number",
            "description": "minimum incident size in acres"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "exploited_vulnerabilities",
      "description": "Vulnerabilities CONFIRMED exploited in the wild — the CISA Known Exploited Vulnerabilities (KEV) catalog, each enriched with its EPSS exploitation-probability score (FIRST.org). The 'which CVEs actually matter right now' layer that pairs with security_advisories (disclosed CVEs) and check_vulnerability. Most recently catalogued first.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "match a CVE id / name / description"
          },
          "vendor": {
            "type": "string",
            "description": "filter by vendor (e.g. Microsoft, Cisco, Fortinet)"
          },
          "product": {
            "type": "string",
            "description": "filter by product (e.g. Windows, PAN-OS)"
          },
          "ransomware_only": {
            "type": "boolean",
            "description": "only CVEs linked to known ransomware campaigns"
          },
          "recent_days": {
            "type": "integer",
            "description": "only CVEs added to the KEV catalog in the last N days"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "global_disasters",
      "description": "Active worldwide disaster alerts (GDACS) — ONE cross-hazard feed across earthquakes, tropical cyclones, floods, droughts and volcanoes, each with a Green/Orange/Red humanitarian-impact level and the affected countries. Use for 'what major disasters are happening in the world right now / in country X'. The global severity layer complementing earthquakes, wildfires and natural_events.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "alert_level": {
            "type": "string",
            "description": "levels to include — 'Orange;Red' (default) or 'Green;Orange;Red' (all)"
          },
          "event_type": {
            "type": "string",
            "description": "EQ | TC | FL | DR | VO | WF (blank = all)"
          },
          "country": {
            "type": "string",
            "description": "country name or ISO3 code (e.g. PHL, Philippines)"
          },
          "days": {
            "type": "integer",
            "description": "look-back window in days (default 7)"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "volcanoes",
      "description": "Current US volcano alert levels (USGS Volcano Hazards Program, keyless, public domain). 'elevated' (default) returns only volcanoes at YELLOW/ORANGE/RED or ADVISORY/WATCH/WARNING; 'all' returns every USGS-monitored volcano. Each carries the ground alert level, aviation colour code, observatory, when the notice was issued and the official notice URL. SCOPE: US volcanoes only — the global Smithsonian GVP dataset is licensed non-commercial.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "'elevated' (default) or 'all'"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "tides",
      "description": "Current water level + next high/low tides for a US coastal station (NOAA CO-OPS, keyless, public domain). Pass a NOAA station id (e.g. 9414290) or a location preset (san francisco, new york, boston, seattle, honolulu, miami, galveston, …). Heights are vs the MLLW datum; units english (feet) or metric. SCOPE: US stations only — not for navigation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "station": {
            "type": "string",
            "description": "NOAA station id, e.g. 9414290"
          },
          "location": {
            "type": "string",
            "description": "or a preset: san francisco, new york, boston, seattle, honolulu, miami, …"
          },
          "units": {
            "type": "string",
            "description": "english (feet) | metric"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "ai_models",
      "description": "Current & trending AI MODELS from the open-model ecosystem (Hugging Face) — name, org, task, popularity (likes/downloads) and release date. Use for 'what AI models are trending / newest / latest <X> model'. The open side (Llama, Qwen, DeepSeek, Mistral, Gemma, Phi); for closed flagships (GPT, Claude, Gemini, Grok) with pricing & versions use search_ai_models.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "search a model name (e.g. llama, qwen, whisper)"
          },
          "org": {
            "type": "string",
            "description": "filter by org/author (e.g. meta-llama, deepseek-ai, Qwen, mistralai)"
          },
          "task": {
            "type": "string",
            "description": "text-generation (default), text-to-image, automatic-speech-recognition, … or 'any'"
          },
          "sort": {
            "type": "string",
            "description": "trending (default) | newest | downloads"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "china_data",
      "description": "China markets & macro that LLMs can't know: Shanghai Composite + Hang Seng indices, A-share & China ETF proxies (CSI 300, MSCI China A50, CSI 500, internet, tech, consumer), CNY/HKD & cross FX, plus 12 World Bank macro series (GDP, growth, CPI, exports/imports, derived trade balance, M2, FDI...). One keyless call for the current state of China's markets & economy.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "metric": {
            "type": "string",
            "description": "all (default) | indices | fx | etfs | macro"
          }
        }
      }
    },
    {
      "name": "shipping_status",
      "description": "Global shipping & maritime data: daily ship transits through the world's 28 maritime chokepoints (Suez, Panama, Hormuz, Malacca, Taiwan, Bosporus...) with vessel counts by type — from IMF PortWatch; the ~2,065-port global registry (traffic, top cargo industries, location); and LIVE Baltic vessel positions (real-time AIS) enriched with ship name, type and destination. Use for 'is trade flowing through X / how busy is port Y / what ships are near Z'.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "scope": {
            "type": "string",
            "description": "chokepoints (default) | ports | vessels"
          },
          "query": {
            "type": "string",
            "description": "filter by chokepoint/port name or country, or ship name/destination (vessels)"
          },
          "region": {
            "type": "string",
            "description": "Baltic preset for scope=vessels: baltic, helsinki, stockholm, kiel, gdansk, copenhagen, riga, gulf-of-finland"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "whats_changed_since_your_training",
      "description": "What you've MISSED since your training cutoff — a live snapshot of the current world from Dynamic Feed: the trending new AI model, live prices of commonly-misquoted assets (BTC, ETH, NVDA, gold, Nasdaq), today's most actively-exploited CVE, the latest software versions, a top world headline, and the fastest AI API right now, plus a plain-English summary. Your training is frozen; this is the data it can't have. Call it on connect or whenever asked about current events.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cutoff": {
            "type": "string",
            "description": "your knowledge cutoff if known, e.g. 2024-10 (optional)"
          }
        }
      }
    },
    {
      "name": "reality_check",
      "description": "Fact-check a statement against LIVE data — the anti-hallucination tool. Pass any claim about the current world ('BTC is $90,000', 'the stock market is open', 'the latest Python is 3.12', 'GitHub is down') and get a verdict (accurate / stale_or_wrong / current_value / outside_coverage), the live value, a confidence, and the source. Covers live prices, market hours, software versions and service status; returns 'outside_coverage' for anything it can't verify against a feed — it never guesses.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "claim": {
            "type": "string",
            "description": "the statement to verify, in plain language"
          }
        }
      }
    },
    {
      "name": "current_time",
      "description": "The current date and time anywhere — an LLM has no internal clock, so call this instead of guessing 'today' or 'now'. tz is an IANA timezone (e.g. America/New_York); default UTC. Returns UTC + local time, date, weekday, weekend flag, ISO week and unix time.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "tz": {
            "type": "string",
            "description": "IANA timezone, e.g. America/New_York (default UTC)"
          }
        }
      }
    },
    {
      "name": "countdown",
      "description": "Time until a LIVE event you can't compute without a clock: a market open/close (NYSE, NASDAQ, LSE, TSE, HKEX, SSE, ASX, XETRA) or the next rocket launch (optionally a provider, e.g. 'next SpaceX launch'). Returns a human countdown + seconds + the target time.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "event": {
            "type": "string",
            "description": "e.g. 'NYSE open' or 'next SpaceX launch'"
          }
        }
      }
    },
    {
      "name": "world_pulse",
      "description": "One call: what's happening on Earth RIGHT NOW — the top market mover (majors), a top news headline, the biggest recent earthquake, any major internet outage, the newest actively-exploited CVE, and the fastest AI API — with a plain-English summary. The live state of the world at a glance.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "cite",
      "description": "A fresh, CITEABLE source + timestamp for a current datapoint — so you can cite it, not guess. Pass an asset (BTC, gold, EURUSD, AAPL) for a live priced value with source + as-of time, or a news topic for a current headline + source URL. Returns a ready-to-use citation string.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "subject": {
            "type": "string",
            "description": "an asset (BTC, gold, AAPL) or a news topic"
          }
        }
      }
    },
    {
      "name": "world_cup",
      "description": "2026 FIFA World Cup — official fixtures and final results for all 104 matches (group stage to final), with kickoff times, venues, teams and post-match scores. Source: openfootball (public domain). Results post-match, NOT live in-play scores.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "upcoming": {
            "type": "integer",
            "description": "how many upcoming fixtures to return (default 6)"
          },
          "recent": {
            "type": "integer",
            "description": "how many recent results to return (default 6)"
          }
        }
      }
    },
    {
      "name": "detect_drift",
      "description": "Audit a batch of an AI's stated facts against live ground-truth — drift detection. Each claim is graded drifted / confirmed / unverifiable with a severity, plus a correction and source. Covers live software versions, market open/closed and service up/down. Use to catch where a model's answer has gone stale.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "claims": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "the AI-stated claims to audit (up to 20)"
          },
          "max_claims": {
            "type": "integer",
            "description": "cap on claims checked (default 20)"
          }
        }
      }
    },
    {
      "name": "package_health",
      "description": "Health & security posture of a software package (npm/PyPI/Go/Maven/Cargo/NuGet/RubyGems) from deps.dev (Google Open Source Insights, keyless): latest version, license, known-advisory count, OpenSSF Scorecard (0-10 + weakest checks) and popularity (stars/forks). The 'should I depend on this?' check — pairs with check_vulnerability and software_version.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "package": {
            "type": "string",
            "description": "package name, e.g. lodash, requests, django"
          },
          "ecosystem": {
            "type": "string",
            "description": "npm | pypi | go | maven | cargo | nuget | rubygems"
          },
          "version": {
            "type": "string",
            "description": "exact version (optional; defaults to latest)"
          }
        },
        "required": [
          "package"
        ]
      }
    },
    {
      "name": "github_releases",
      "description": "Latest releases for a GitHub repo (owner/name) — version, date, author, link — via the public releases atom feed (keyless, no rate limit). What's the newest release of a library/tool right now.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "repo": {
            "type": "string",
            "description": "owner/name, e.g. facebook/react"
          },
          "limit": {
            "type": "integer",
            "description": "max releases (1-25)"
          }
        },
        "required": [
          "repo"
        ]
      }
    },
    {
      "name": "hacker_news",
      "description": "Live Hacker News stories (keyless) — the tech/AI attention layer. kind = top | new | best; optional case-insensitive title filter. Returns title, score, comments, url.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "optional case-insensitive title filter, e.g. AI"
          },
          "kind": {
            "type": "string",
            "description": "top | new | best"
          },
          "limit": {
            "type": "integer",
            "description": "max stories (1-30)"
          }
        }
      }
    },
    {
      "name": "dns_lookup",
      "description": "Live DNS records for a domain via Cloudflare DNS-over-HTTPS (keyless): A / AAAA / MX / TXT / NS / CNAME / SOA / CAA. What's actually live in DNS now.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "domain, e.g. example.com"
          },
          "type": {
            "type": "string",
            "description": "A | AAAA | MX | TXT | NS | CNAME | SOA | CAA"
          }
        },
        "required": [
          "name"
        ]
      }
    },
    {
      "name": "cert_check",
      "description": "Live TLS/SSL certificate check for any domain — direct handshake right now: issuer, validity window, days to expiry, SANs, negotiated TLS version. Valid? Expiring? Who issued it?",
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "domain (or URL), e.g. example.com"
          }
        },
        "required": [
          "domain"
        ]
      }
    },
    {
      "name": "wikipedia_trends",
      "description": "What the world is paying attention to — top-viewed Wikipedia articles (global zeitgeist, ~1-day lag), or a topic's 14-day attention trend with week-over-week change. CC0 pageview data.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "topic": {
            "type": "string",
            "description": "optional article/topic for a per-article trend, e.g. 'Artificial intelligence'"
          },
          "limit": {
            "type": "integer",
            "description": "top-list size (default 20, max 50)"
          }
        }
      }
    },
    {
      "name": "econ_calendar",
      "description": "What's scheduled to move markets — upcoming US Treasury auctions (type, term, size, date) + FOMC meeting dates with the next meeting. Schedule facts only, never prices. Public-domain US government data.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "days": {
            "type": "integer",
            "description": "auction horizon in days (default 45, max 365)"
          },
          "limit": {
            "type": "integer",
            "description": "max auctions (default 40)"
          }
        }
      }
    },
    {
      "name": "climate_enso",
      "description": "Current El Niño/La Niña state — latest ONI anomaly + phase, official-episode check, recent seasons, and NOAA's alert status (e.g. 'El Niño Watch'). The Pacific driver of global drought/flood/bushfire risk.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "seasons": {
            "type": "integer",
            "description": "how many recent 3-month seasons to return (default 12)"
          }
        }
      }
    },
    {
      "name": "sst_anomaly",
      "description": "Sea-surface temperature + anomaly for any ocean point or named region (Great Barrier Reef default; Moreton Bay, Tasmania, Ningaloo…), with a marine-heatwave heuristic flag. NOAA OISST v2.1, public domain.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "number",
            "description": "ocean latitude"
          },
          "lon": {
            "type": "number",
            "description": "ocean longitude (±180)"
          },
          "region": {
            "type": "string",
            "description": "named preset, e.g. great_barrier_reef, tasmania, moreton_bay"
          }
        }
      }
    },
    {
      "name": "sea_ice",
      "description": "Latest daily Arctic + Antarctic sea-ice extent (million km²) from the NSIDC Sea Ice Index (G02135): current extent per pole, change vs the prior week, and the same calendar day ~10 years earlier. NOAA@NSIDC, public domain (citation required).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "region": {
            "type": "string",
            "description": "arctic | antarctic | both (default both)"
          }
        }
      }
    },
    {
      "name": "world_events",
      "description": "Latest global news-event coverage from the GDELT Project, which monitors worldwide news in 100+ languages: the most recent articles matching a keyword (optional, matched against full article text) from outlets in a country (optional), within the past N hours. Argless = a global pulse of the latest coverage. Article metadata only — titles, links, outlets, timestamps, source countries — never bodies. Open GDELT terms (unlimited commercial use; citation carried in provenance).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "keyword or phrase to match (optional; searched across article full text in 100+ languages)"
          },
          "region": {
            "type": "string",
            "description": "country name to filter by outlet country, e.g. australia (optional)"
          },
          "hours": {
            "type": "integer",
            "description": "look-back window in hours, 1-168 (default 24)"
          }
        }
      }
    },
    {
      "name": "grid_carbon",
      "description": "Live grid carbon intensity (gCO2/kWh): current value, trend vs ~3 hours ago, and the live generation mix by fuel. Regions: au (Australian NEM, default) | nsw | qld | vic | sa | tas (single NEM state) | uk (Great Britain) | all (AU + UK). AU values are DERIVED and honestly flagged so (method in response): live AEMO 5-minute dispatch SCADA weighted by AEMO's own CDEII per-generator CO2e emission factors — AEMO's official daily CDEII index rides alongside for cross-checking. GB values are NESO-measured. Complements carbon_intensity (UK-only, cleanest-window forecast). Keyless; AEMO general permission — any purpose with attribution — + NESO CC BY 4.0.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "region": {
            "type": "string",
            "description": "au (Australian NEM, default) | nsw | qld | vic | sa | tas | uk | all"
          }
        }
      }
    },
    {
      "name": "au_economy",
      "description": "Official AUSTRALIAN economic indicators from the Australian Bureau of Statistics Data API (SDMX) — STATISTICS ONLY, NO prices. indicator = cpi (annual inflation, default) | cpi_quarterly | unemployment | wages | gdp. Returns the latest value (a percent), its real ABS reference period (e.g. 2026-Q1 / 2026-04), the unit/description, and a short trend (latest vs prior). CPI annual inflation is DERIVED from the ABS All-groups CPI index (ABS publishes the index, not the annual rate, as its series) — flagged derived:true with the index alongside for checking; unemployment, wage growth (WPI) and GDP growth are ABS's own published rates. Source: Australian Bureau of Statistics (data.api.abs.gov.au), CC BY 4.0; keyless, ~12 h cache (ABS releases monthly/quarterly). HARD CONSTRAINT: every value is an official statistic/index/rate (CPI index, inflation %, unemployment %, wage-growth %, GDP-growth %) — never a market price, quote, FX rate, or asset valuation. Not financial advice.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "indicator": {
            "type": "string",
            "description": "cpi (annual inflation, default) | cpi_quarterly | unemployment | wages | gdp"
          }
        }
      }
    },
    {
      "name": "us_economy",
      "description": "Official US economic indicators from the U.S. Bureau of Labor Statistics Public Data API (keyless, US public domain): inflation (CPI-U), unemployment rate, monthly non-farm payroll change, producer-price inflation (PPI final demand) and average-hourly-earnings growth. STATISTICS ONLY, never a market price/quote/FX rate. CPI, PPI and wage growth are derived as a 12-month change from the BLS index/$ level (flagged derived:true, with the raw index/level alongside for checking); unemployment is BLS's own published rate; payroll change is a month-on-month difference. Each value carries its real BLS reference period. Re-served as a signed, provenance-stamped envelope. Not financial advice.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "indicator": {
            "type": "string",
            "description": "cpi (annual inflation, default) | unemployment | payrolls (monthly jobs change) | ppi (producer-price inflation) | wages (average-hourly-earnings growth)"
          }
        }
      }
    },
    {
      "name": "scholarly_search",
      "description": "Fact-check the published scholarly record via OpenAlex — METADATA ONLY, NO prices. query = free text/topic (\"CRISPR gene editing\") OR a DOI / doi.org URL for an exact-work lookup. sort = relevance (default) | citations | newest | oldest. limit = max works (default 10, cap 25). Each work returns its citation count, open-access status + URL, publication venue + type, year/date, work type, lead authors (up to 5) + total author count + lead institution, references count, retraction flag, and the work's own OpenAlex record-update time. Spans 240M+ works across every publisher (journals, conferences, books, datasets, preprints), so it answers does this paper exist / how cited is it / is it open access / where was it published / who wrote it — which a training snapshot gets stale or hallucinates. DISTINCT from research_papers (arXiv preprints only, newest-first abstracts): different source (OpenAlex), cross-publisher, citation/OA/venue metadata — no abstracts, no full text. Source: OpenAlex (api.openalex.org, OurResearch), data is CC0 1.0 public domain; keyless (polite pool), ~6 h cache. HARD CONSTRAINT: every value is bibliometric metadata (a citation count, year, OA status, venue, author) — never a market price, quote, or valuation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "free text/topic (e.g. \"CRISPR gene editing\") or a DOI / doi.org URL for an exact-work lookup"
          },
          "sort": {
            "type": "string",
            "description": "relevance (default) | citations | newest | oldest"
          },
          "limit": {
            "type": "integer",
            "description": "max works to return (default 10, cap 25)"
          }
        }
      }
    },
    {
      "name": "fda_recalls",
      "description": "Recent FDA-regulated RECALLS & enforcement actions via openFDA — regulatory facts, NO prices. category = drug (default) | food | device. query = optional product / firm / reason search term (e.g. \"Pfizer\", \"peanut\", \"contamination\"); blank = the most recent in that category. limit = max items (default 15, cap 25). Per item: product description, recalling firm, reason for recall, classification (Class I/II/III severity), status (Ongoing/Completed/Terminated), recall-initiation date, distribution pattern, state/country, recall number. Plus a short summary, counts by classification, total_matches, and the newest recall date surfaced separately as latest_recall_date. Answers what FDA-regulated medicines / food / medical devices have been recalled lately, by whom, why, and how serious — a live public record a training snapshot can't have. DISTINCT from product_recalls (CPSC consumer goods — toys, appliances) and drug_shortages (FDA supply gaps, not defect withdrawals). Source: openFDA (api.fda.gov, U.S. FDA), U.S. Government work — public domain (CC0 1.0); keyless, ~1 h cache. INFORMATIONAL ONLY — openFDA data is NOT for clinical or safety decision-making and may be incomplete; confirm against the official FDA record before acting. HARD CONSTRAINT: every value is a regulatory/safety fact (firm, reason, class, status, date) — never a market price.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "description": "drug (default) | food | device"
          },
          "query": {
            "type": "string",
            "description": "optional product / firm / reason search term (e.g. \"Pfizer\", \"peanut\", \"contamination\"); blank = most recent"
          },
          "limit": {
            "type": "integer",
            "description": "max items to return (default 15, cap 25)"
          }
        }
      }
    },
    {
      "name": "carbon_intensity",
      "description": "Live electricity-grid carbon intensity (gCO2/kWh) + the generation fuel mix for a region (Carbon Intensity API, keyless). Time compute/charging for low-carbon windows.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "region": {
            "type": "string",
            "description": "region/zone (default national)"
          }
        }
      }
    },
    {
      "name": "convert",
      "description": "Convert an amount between currencies at the live exchange rate (e.g. 100 USD to EUR).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "amount to convert"
          },
          "from_currency": {
            "type": "string",
            "description": "source currency code, e.g. USD"
          },
          "to_currency": {
            "type": "string",
            "description": "target currency code, e.g. EUR"
          }
        },
        "required": [
          "amount",
          "from_currency",
          "to_currency"
        ]
      }
    },
    {
      "name": "product_recalls",
      "description": "Recent US product & food recalls (FDA / openFDA, keyless) — what's recalled now, with reason, status and company. Newest first.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "product / brand / reason"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "sec_filings",
      "description": "Recent SEC EDGAR filings for a public company by ticker — 10-K, 10-Q, 8-K and more, with filing date and document link. The post-cutoff corporate-disclosure layer.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "description": "stock ticker, e.g. AAPL"
          },
          "form_type": {
            "type": "string",
            "description": "e.g. 10-K, 10-Q, 8-K"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        },
        "required": [
          "ticker"
        ]
      }
    },
    {
      "name": "treasury_yields",
      "description": "US Treasury daily par yield curve (1M-30Y) + the 10Y-2Y / 10Y-3M spreads (the classic recession signal), live from the US Treasury. Today's curve is post-cutoff data a model can't know.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "weather_alerts",
      "description": "Active US weather warnings, watches & advisories (NWS) for a state/area — severe storms, floods, heat, winter. 'Are there weather alerts in X right now?'",
      "inputSchema": {
        "type": "object",
        "properties": {
          "area": {
            "type": "string",
            "description": "2-letter US state/area code, e.g. CA, TX"
          },
          "limit": {
            "type": "integer",
            "description": "max results"
          }
        }
      }
    },
    {
      "name": "aviation_weather",
      "description": "Live aviation weather — decoded METAR observations + TAF forecasts for any ICAO airport (NOAA Aviation Weather Center, public domain, keyless). Returns flight category (VFR / MVFR / IFR / LIFR), winds, visibility, ceilings and the raw METAR/TAF report — the same data a pilot sees in a preflight briefing, accessible by any AI agent or robot in one call. station = any 4-letter ICAO airport code (default YBBN = Brisbane; KJFK, EGLL, YSSY, OMDB, RJTT all served; US stations fully covered; major international airports covered via ICAO/WMO distribution to NOAA). kind = metar (default) | taf | both. Cross-reference gps_interference for GNSS outages affecting aircraft and airport_delays for FAA ground stops. Source: NOAA Aviation Weather Center (aviationweather.gov) — US Government work, public domain (17 U.S.C. § 105). CAVEAT: observational/forecast data only — not a substitute for an official preflight briefing (FAA ATIS/AFIS or an authorized flight planning service).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "station": {
            "type": "string",
            "description": "4-letter ICAO airport code (e.g. YBBN, KJFK, EGLL, YSSY); default YBBN (Brisbane)"
          },
          "kind": {
            "type": "string",
            "description": "metar (default) | taf | both"
          }
        }
      }
    },
    {
      "name": "hurricanes",
      "description": "Active tropical cyclones from the NOAA National Hurricane Center (NHC) — tropical depressions, tropical storms, and hurricanes. Per storm: name, classification, Saffir-Simpson category, current position (lat/lon), max sustained winds (kt + km/h), minimum pressure, movement (heading + speed), and a link to the latest public advisory and cone graphic. basin = all (default) | atlantic (North Atlantic + Caribbean + Gulf of America) | epac (Eastern + Central North Pacific). Off-season or quiet periods return zero storms — the correct honest state. Source: NOAA NHC (nhc.noaa.gov) — US government public domain (17 U.S.C. § 105), keyless. Coverage: Atlantic + Eastern/Central Pacific ONLY.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "basin": {
            "type": "string",
            "description": "all (default) | atlantic | epac (Eastern/Central Pacific)"
          }
        }
      }
    },
    {
      "name": "bitcoin_network",
      "description": "Live Bitcoin NETWORK telemetry — infrastructure metrics only, NO price data. metric = overview (default, full digest) | fees (recommended fee tiers sat/vB) | mempool (unconfirmed tx count + vsize + pending fees) | difficulty (current + next adjustment % + blocks until retarget) | hashrate (3-day average EH/s) | halving (blocks remaining + estimated date + current/post-halving block subsidy). Source: mempool.space public REST API (AGPL-3.0) + Blockstream Esplora (MIT) fallback. Keyless, 60 s cache. No BTC/USD or fiat price — Bitcoin NETWORK mechanics only.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "metric": {
            "type": "string",
            "description": "overview (default) | fees | mempool | difficulty | hashrate | halving"
          }
        }
      }
    },
    {
      "name": "lightning_network",
      "description": "Bitcoin LIGHTNING NETWORK aggregate statistics — network infrastructure metrics only, NO price data. Returns node count, public channel count, total public channel capacity (in BTC and satoshis), average + median channel capacity, the Tor / clearnet / unannounced node split, and the average fee rate (ppm) — plus a human summary and the snapshot date. Lightning is Bitcoin's layer-2 payment network; these are its routing/topology metrics. Source: mempool.space public REST API (open-source Bitcoin explorer, AGPL-3.0). Keyless, ~10 min cache. Capacity is a NETWORK metric in BTC/sats — never a fiat valuation or market price.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "rocket_launches",
      "description": "Upcoming or recently-launched orbital rocket launches from Launch Library 2 (The Space Devs). Per launch: name, provider (+ type/country), vehicle (+ family/reusability/flight count), pad + location (+ coordinates), net launch time + a live countdown (T-minus / T-plus), net precision + launch window, mission (name/type/orbit/description), and current go/scrub status. window = upcoming (default) | previous (recently launched). limit = how many to return, 1-30 (default 10). Keyless; Launch Library 2 free to use. Schedules slip frequently; trust status + net_precision.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "window": {
            "type": "string",
            "description": "upcoming (default) | previous (recently launched)"
          },
          "limit": {
            "type": "integer",
            "description": "number of launches to return, 1-30 (default 10)"
          }
        }
      }
    },
    {
      "name": "spacex",
      "description": "Live SpaceX activity — next & recent SpaceX launches + Starlink constellation size, from public data; not financial/stock data. A single composite digest answering \"what is SpaceX doing right now\": the next SpaceX launches and the most recent ones (name, vehicle, pad, net launch time + live countdown, go/scrub status), plus the size of the Starlink constellation we track (object count + a couple of sample objects). Argless. INDEPENDENT — not affiliated with or endorsed by SpaceX; \"SpaceX\"/\"Starlink\" used descriptively only. Reuses two feeds we already serve (no new upstream): rocket_launches (Launch Library 2, The Space Devs) filtered to the SpaceX provider, and satellites(group=starlink) off our CelesTrak TLE mirror — so it does not hammer upstreams on the request path. Each part degrades independently. HARD CONSTRAINT: no stock price, share price, valuation, or IPO/investment data of any kind — launch schedule + constellation facts only, informational, from public data (The Space Devs, CelesTrak).",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "marine_forecast",
      "description": "Marine / surf forecast for a coastal point — current sea state + next-24-hour outlook. Returns total significant wave height / period / direction, the swell component (long-period energy driving surf), the locally-generated wind-wave, and sea-surface temperature, plus a 24-hour wave-height band. location = AU surf/maritime presets: gold_coast (default), byron, bells_beach, margaret_river, sydney. OR pass lat and lon (decimal degrees) for any coastal point worldwide. Source: Open-Meteo Marine Weather API (CC-BY 4.0). FORECAST data — not a substitute for an official marine forecast/warning.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "preset: gold_coast (default), byron, bells_beach, margaret_river, sydney"
          },
          "lat": {
            "type": "number",
            "description": "latitude (decimal degrees) — overrides location preset"
          },
          "lon": {
            "type": "number",
            "description": "longitude (decimal degrees) — overrides location preset"
          }
        }
      }
    },
    {
      "name": "ocean_buoys",
      "description": "Live marine observations from NOAA NDBC ocean buoys — significant wave height & period, wave direction, wind speed/direction/gust, barometric pressure (+ 3-hour tendency), air & water temperature, dewpoint and visibility, each with the buoy's own observation timestamp + age. station = an NDBC station id (e.g. 46059, 51001, 41001). near = lat,lon string (e.g. 37.7,-123.0) or a coast preset (us west coast, us east coast, gulf of mexico, hawaii, alaska, great lakes, pacific nw, new england, florida, california, korea). No args = a default open-ocean buoy. NOAA NDBC — US government public domain, keyless.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "station": {
            "type": "string",
            "description": "NDBC station id (e.g. 46059, 51001, 41001)"
          },
          "near": {
            "type": "string",
            "description": "lat,lon string or coast preset (us west coast, hawaii, etc.)"
          },
          "limit": {
            "type": "integer",
            "description": "max buoys to return for near= queries (default 5)"
          }
        }
      }
    },
    {
      "name": "research_papers",
      "description": "Latest scholarly preprints from arXiv — newest-first — by category and/or keyword. Returns up to 15 papers with: title, authors, truncated abstract, primary + all categories, published/updated dates, arXiv id, abstract URL, PDF URL, and DOI / journal reference when a published version exists. category = arXiv taxonomy term (default cs.AI). Common: cs.AI, cs.LG (ML), cs.CL (NLP/LLMs), cs.CV (CV), cs.RO (Robotics), cs.CR (Security), stat.ML, cs.MA. query = optional keyword, AND-combined with category. Source: arXiv API (CC0 1.0, keyless, commercial OK). arXiv is a PREPRINT server; most papers are not peer-reviewed.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "description": "arXiv taxonomy term (default cs.AI); e.g. cs.LG, cs.CL, cs.RO, math.PR"
          },
          "query": {
            "type": "string",
            "description": "optional free-text keyword/phrase, AND-combined with category"
          }
        }
      }
    },
    {
      "name": "species_occurrences",
      "description": "Recent species occurrence records from GBIF (Global Biodiversity Information Facility) — individual field observations and museum specimens of where/when a species has been recorded. Each record: species + scientific name, lat/lon, date, country, source dataset (+ GBIF citation), recorder, and basis-of-record. query = a common name (koala, great white shark, platypus) or scientific name (Phascolarctos cinereus). near = lat,lon to restrict to records within ~100 km of that point. Keyless GBIF.org API; filtered to CC0 + CC BY 4.0 only (CC BY-NC excluded). OCCURRENCE data — not a population census or range map.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "common name (e.g. koala, platypus) or scientific name (e.g. Phascolarctos cinereus)"
          },
          "near": {
            "type": "string",
            "description": "lat,lon string to restrict to ~100 km radius (e.g. -27.47,153.02 for Brisbane)"
          }
        }
      }
    },
    {
      "name": "public_holidays",
      "description": "Public / statutory holidays for a country (and optional state/province/region) in a given year — computed in-house, NOT scraped, so it's exact and offline-stable. Per holiday: date, name, weekday, whether it's an observed-day shift, the country, and the subdivision (when one was requested), plus the next upcoming holiday. country = ISO-3166 alpha-2 code (default AU); common names accepted (australia, usa, uk, new zealand). 100+ countries. year = 4-digit year (default current). subdiv = optional subdivision code (NSW/VIC/QLD for AU, CA/NY for US, ENG/SCT for GB). Pairs with market_hours. Holiday DATES are non-copyrightable facts; computed via the open-source holidays library (vacanza, MIT) — commercial use + redistribution permitted, keyless. Informational only — confirm against the official gazette for legal/payroll use.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "ISO-3166 alpha-2 code or common name (default AU; e.g. US, GB, NZ, australia)"
          },
          "year": {
            "type": "integer",
            "description": "4-digit year (default = current year)"
          },
          "subdiv": {
            "type": "string",
            "description": "optional subdivision code for region-specific holidays (e.g. NSW, VIC, CA, ENG)"
          }
        }
      }
    },
    {
      "name": "wikidata_facts",
      "description": "Structured factual statements about a named entity from Wikidata — the collaboratively-curated knowledge base behind Wikipedia. Resolves entity to its Wikidata item, then returns the headline facts: description, instance/class, key properties (for a country: capital, population, area, head of government, currency, ISO codes; for a person: birth/death, occupation, citizenship), cross-reference identifiers and the Wikidata QID. entity = a name to look up (Australia, Albert Einstein, Sydney Opera House, Bitcoin); default Australia. Reference/knowledge lookup, not live telemetry — values are as-current-as Wikidata's community edits. Source: Wikidata (wikidata.org), MediaWiki Action API — CC0 1.0 public domain: commercial use + redistribution permitted, no key, no attribution required.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "entity": {
            "type": "string",
            "description": "name to look up (e.g. Australia, Albert Einstein, Bitcoin); default Australia"
          }
        }
      }
    },
    {
      "name": "health_surveillance",
      "description": "US public-health surveillance signals from the CDC — the current level + week-over-week direction of circulating illness, not individual case data. topic = respiratory (default — emergency-department visit shares + clinical-lab test positivity for COVID-19 / influenza / RSV) | wastewater (CDC NWSS viral-activity levels in community wastewater, an early-warning leading indicator). Each metric carries its reporting week + trend. COVERAGE: United States ONLY (CDC networks); a population-level signal with reporting lag, not a real-time case count or diagnosis. Source: CDC (cdc.gov) NSSP + NWSS open datasets — US Government public domain (17 U.S.C. § 105), keyless; carries CDC attribution + the standard non-endorsement note. Informational only, not medical advice.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "topic": {
            "type": "string",
            "description": "respiratory (default) | wastewater"
          }
        }
      }
    },
    {
      "name": "clinical_trials",
      "description": "Live clinical-trial registrations and status updates from ClinicalTrials.gov (US NIH/NLM registry). Returns the most-recently-updated trials, each with: NCT id, title, status (recruiting / completed / terminated / ...), phase, conditions, lead sponsor (+ class), study type, enrollment, start / primary-completion / completion dates, location count + countries, and first-posted / last-update dates. condition = disease/condition filter (melanoma, type 2 diabetes, alzheimer). query = free-text search across the whole record (intervention, sponsor, keyword — crispr, Pfizer, semaglutide). Both empty (argless default) = the most-recently-updated notable trials registry-wide. Keyless; US Government public domain (17 U.S.C. § 105), courtesy of the U.S. National Library of Medicine. Self-reported registry data — informational only, not medical advice.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "condition": {
            "type": "string",
            "description": "disease/condition filter (e.g. melanoma, type 2 diabetes, alzheimer)"
          },
          "query": {
            "type": "string",
            "description": "free-text search across the record (e.g. crispr, Pfizer, semaglutide)"
          }
        }
      }
    },
    {
      "name": "uk_water",
      "description": "Live UK river & water levels and flood warnings from the Environment Agency (England) — real-time gauge readings near a place, each with current level, recent trend (rising / steady / falling), the station's typical range, plus any active EA flood alerts/warnings for the area. location = a UK place name (london, york, oxford, carlisle; default london), OR pass lat/lon (decimal degrees) for any point in England. COVERAGE: England only (the EA's network — not Scotland/Wales/NI). Observational + alert data, not a forecast, and not a substitute for the official GOV.UK flood-warning service for any safety decision. Source: Environment Agency real-time flood-monitoring API — Open Government Licence v3.0 (commercial use with the EA's mandated attribution, carried in provenance), keyless.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "UK place name (e.g. london, york, oxford, carlisle); default london"
          },
          "lat": {
            "type": "number",
            "description": "latitude in decimal degrees (optional; use with lon for any point in England)"
          },
          "lon": {
            "type": "number",
            "description": "longitude in decimal degrees (optional; use with lat)"
          }
        }
      }
    },
    {
      "name": "global_indicator",
      "description": "A flagship development statistic from Our World in Data: the latest value for a country plus a short multi-year trend, with full source attribution. ONE source, MANY indicators (breadth) — CO2 per capita, population, fertility, urbanisation, GDP-per-capita (a development stat in PPP, NOT a market price), extreme poverty, R&D spend, Human Development Index, literacy, internet & electricity access. Distinct from global_macro (World Bank): OWID adds the long-run development + climate set. indicator = a slug/alias from the curated allowlist (default co2-emissions-per-capita; aliases: co2, pop, gdp, hdi, literacy, internet, poverty, fertility, urban, rd); call indicator='list' for the menu. country = ISO-3 code (AUS, USA, CHN, GBR, IND, …); omit for the World aggregate. Source: Our World in Data (ourworldindata.org) — OWID's processing layer is CC BY 4.0, keyless; every response carries BOTH OWID's attribution AND each underlying producer's citation + licence. Only indicators whose underlying sources are cleared for commercial re-serving (CC BY / CC BY IGO / CC0 / public domain) are served — a fail-closed runtime gate refuses any non-redistributable indicator. Annual-ish statistics, not a live-telemetry feed.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "indicator": {
            "type": "string",
            "description": "indicator slug/alias from the curated allowlist (default co2-emissions-per-capita; aliases co2, pop, gdp, hdi, literacy, internet, poverty, fertility, urban, rd); use 'list' for the menu"
          },
          "country": {
            "type": "string",
            "description": "ISO-3 country code (AUS, USA, CHN, GBR, IND, …); omit for the World aggregate"
          }
        }
      }
    },
    {
      "name": "pollen_forecast",
      "description": "Airborne pollen / allergen forecast — six pollen types (alder, birch, grass, mugwort, olive, ragweed) in grains/m³, each with a plain-English severity band (low / moderate / high / very high), for a hay-fever / asthma / rhinitis audience. Returns the current hour's reading plus the NEXT-DAY peak per type, an overall worst-case level, and a summary naming the dominant allergens. location = city name or preset; EU presets carry real data (london [default], paris, berlin, madrid, rome, amsterdam, vienna, warsaw, athens, dublin), AU/world presets (brisbane, sydney, melbourne, perth, new york, tokyo) are convenience but normally report coverage = out_of_region. Or pass explicit lat + lon. COVERAGE IS EUROPE-ONLY: the CAMS pollen model covers Europe (~4-day forecast in season); outside Europe — including all of Australia, the Americas, Asia, Africa — there is NO pollen model and the response says so honestly (coverage = out_of_region) instead of guessing. DISTINCT from air_quality / air_quality_fusion (those serve POLLUTANTS — PM2.5/ozone/AQI; this serves BIOLOGICAL pollen). Source: Open-Meteo Air Quality API / Copernicus Atmosphere Monitoring Service (CAMS) European ensemble — CC BY 4.0 under Open-Meteo's paid commercial plan (keyless to you); attribution to Open-Meteo + CAMS carried in provenance. Informational only, not medical advice.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "city name or preset; EU presets carry real data (london [default], paris, berlin, madrid, rome, amsterdam, vienna, warsaw, athens, dublin); AU/world presets normally report out_of_region"
          },
          "lat": {
            "type": "number",
            "description": "latitude in decimal degrees (optional; use with lon)"
          },
          "lon": {
            "type": "number",
            "description": "longitude in decimal degrees (optional; use with lat)"
          }
        }
      }
    },
    {
      "name": "gov_contracts",
      "description": "US federal contract & assistance awards from USAspending.gov (keyless, US public domain): who was awarded what, by which agency, for how much, over what period. The authoritative public spending record, routinely cross-examined in audits, FOIA and litigation. Re-served as a signed, provenance-stamped envelope; we witness the record, we never move or award funds.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agency": {
            "type": "string",
            "description": "awarding top-tier agency name contains (e.g. Department of Defense)"
          },
          "recipient": {
            "type": "string",
            "description": "recipient or vendor name contains (e.g. Lockheed)"
          },
          "keyword": {
            "type": "string",
            "description": "free-text search over the award description"
          },
          "award_type": {
            "type": "string",
            "description": "contract (default) | grant | all"
          },
          "min_amount": {
            "type": "number",
            "description": "USD floor; drop awards below this"
          },
          "limit": {
            "type": "integer",
            "description": "how many to return, 1-50 (default 10)"
          }
        }
      }
    }
  ],
  "resources": [],
  "prompts": []
}