mcpField
L
Live weather and air quality (GAIA)

Live weather and air quality (GAIA)

Remote
modelmarket.devMaps & Travel1Updated today

About Live weather and air quality (GAIA)

GAIA is a physical-world oracle gateway that provides sensor readings and other data capabilities, with Ed25519-attested readings and verification support. It is intended for applications that need verifiable weather, air-quality, energy, and related real-world data.

Key features

  1. 01Provide weather and air-quality readings
  2. 02Relay readings from public live sensors
  3. 03Attest readings with Ed25519 signatures
  4. 04Offer place, power, imagery, and device capabilities
  5. 05Verify readings through a compatible endpoint

Use cases

  1. 01Retrieve local weather or air-quality readings
  2. 02Check electricity prices and low-cost time windows
  3. 03Access satellite imagery indices for a land point
  4. 04Read sensor-backed device consumption data

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://modelmarket.dev/tools/mcp/weather
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

Details

From the project README

🔄 Synced from a monorepo — but with a live history. gaia mirrors the canonical AI-Factory monorepo. History here is append-only (no force-push). Pull requests are welcome — merged PRs are imported back into the monorepo and re-synced here, so your contribution becomes canonical. 💬 Issues · Pull requests both welcome.

GAIA — physical-world oracle gateway

Own a weather station or air-quality sensor? Sell your readings through your own Hub + GAIA.

For an existing MQTT station, see the single-station MQTT adapter.

CI Pages deploy Live demo status Landing GHCR package Python >=3.11 tests AIMarket v2 Ed25519 signing Test coverage License: MIT

GAIA — a reading leaves a physical site, is signed at the source with Ed25519, sold as an AIMarket v2 capability, and settled by /v1/verify: plausible pays the provider, implausible refunds the buyer

🌐 English · Русский · Español · Français · 中文 · Glossary

GAIA is a physical-world oracle gateway that sells Ed25519-attested sensor readings from virtual IoT devices as paid AIMarket v2 capabilities, and serves a Metis-envelope-compatible /v1/verify so the hub's Pay-on-Verified escrow can settle them — an honest reading gets the provider paid, a lying sensor refunds the buyer automatically.

It is the ecosystem's third oracle class: math oracles prove computations, Metis judges LLM output, GAIA grounds settlement in physics. The demo fleet is simulated (two co-located weather stations sharing one site truth, an air-quality node, an energy meter — models imitate BME280/SDS011/SCD30/Shelly-EM-class hardware), but every wire surface — manifest, invoke, receipts, provider signature, verify envelope, W3C WoT Thing Descriptions — is the real one.

Live demo · Landing · GHCR

📖 Deep-dive (monorepo): docs/iot-physical-oracles.md 🌍 Live devices: gaia/devices/live.py 🎬 3D visualization: frontend/ (cd frontend && npm i && npm run dev)

Quickstart

# Container
docker pull ghcr.io/alexar76/gaia:latest
docker run --rm -p 9320:9320 ghcr.io/alexar76/gaia:latest

# From source (satellite checkout vendors oracle-core)
pip install -e vendor/oracle-core -e ".[dev]"   # or: pip install -e ../oracles/core -e ".[dev]"
python -m gaia.main                             # :9320

Poke it:

curl -s localhost:9320/.well-known/ai-market.json
curl -s localhost:9320/ai-market/v2/manifest

curl -s -X POST localhost:9320/ai-market/v2/invoke \
  -H 'Content-Type: application/json' \
  -d '{"capability_id": "gaia.weather.read@v1", "product_id": "gaia.gateway",
       "input": {"device_id": "ws-01"}}'

Live devices — relay real public sensors

Set GAIA_ENABLE_LIVE=1 to register real public-API relays alongside the simulators. Every relay uses the same Ed25519 attestation + plausibility path. Unreachable upstream → DeviceOffline → 503 / {ok:false} → no debit. Upstream hosts are allowlisted (SSRF defence); invoke clients never supply a URL.

Device idCapabilityUpstreamKey?
nws-01gaia.weather.read@v1NOAA/NWS api.weather.govno
om-wx-01gaia.weather.read@v1Open-Meteo weatherno
osm-01gaia.air.read@v1openSenseMapno
om-aq-01gaia.air.read@v1Open-Meteo air qualityno
sta-01gaia.air.read@v1OGC SensorThings (Fraunhofer)no
openaq-01gaia.air.read@v1OpenAQ v3yes — free key from explore.openaq.org → GAIA_OPENAQ_API_KEY
uk-grid-01gaia.grid.read@v1UK Carbon Intensityno
usgs-quake-01gaia.quake.read@v1USGS GeoJSON feedno
noaa-tide-01gaia.tide.read@v1NOAA CO-OPS tidesno
firms-fire-01gaia.fire.read@v1NASA FIRMS VIIRS (cite NASA)no
safecast-01gaia.radiation.read@v1Safecast (CC0)no
cybernews-jam-01gaia.jamming.read@v1CyberNews GNSS (CC BY 4.0)no
feeder-adsb-01gaia.adsb.read@v1Own dump1090 ingestGAIA_FEEDER_*
feeder-ais-01gaia.ais.read@v1Own AIS ingestGAIA_FEEDER_*

Full operator notes (5 languages): docs/LIVE-RELAYS.md. Add a sensor / pin (GAIA → ATLAS): docs/add-gaia-atlas-sensor.md (EN · RU · ES · FR · ZH).

curl -s -X POST https://iot.modelmarket.dev/ai-market/v2/invoke \
  -H 'Content-Type: application/json' \
  -d '{"capability_id":"gaia.grid.read@v1","product_id":"gaia.gateway",
       "input":{"device_id":"uk-grid-01"}}'

Beyond reading — places, power prices, imagery, device control

CapabilityPriceWhat it doesGuide
gaia.place.resolve@v1freeAny populated place by name ("Kraków", "Paris, Texas", "東京") → one place, or the candidates when the name is ambiguous; says which GAIA reads cover it (GeoNames, CC BY 4.0)Places
gaia.power.price.read@v1$0.001Day-ahead electricity price of a European bidding zone, now and over the next 24 h (SMARD, CC BY 4.0; 15 zones)Power prices
gaia.power.window@v1$0.002When is power cheapest for N hours — with the prices used and their SHA-256 (an 11 kW EV charge was 38 % cheaper at 12:30 than at 08:40 on 2026-10-16)Power prices
gaia.imagery.read@v1$0.005Latest cloud-free Sentinel-2 view of any land point: NDVI, NDWI, NBR, NDMIImagery
gaia.actuator.list@v1freeThe operator's switchable devices and their limitsDevice control
gaia.actuate@v1$0.05Switch the public demo plug on for N seconds or off — paid only for the effect its meter measures (Pay-on-Verified). A real plug answers only its ownerDevice control
gaia.owner.command@v1freeThe owner (or a delegate) switches their own plug, signed with their wallet (EIP-712) — no hub, no paymentDevice control
gaia.owner.consumption@v1freeThe owner reads their plug's hourly or daily consumption, signed by the plug's keyDevice control
gaia.consumption.read@v1$0.01A plug's consumption statistics, only where its owner put them on sale, in whole finished hours or daysDevice control

License

MIT — see LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.