GreenlandAI
ai.greenlandai/greenlandaiThe physical world as queryable data: companies, deposits, infrastructure, projects and commodities.
Score: 100/100
Handshake verified by our own probe.
Tools · 50
Map pins near a point (lat/lng + radius_km). `entity_type` alone filters to that type; with `id` it anchors the view at that entity. Each pin carries its `source_tier` provenance. Metered: see CHARGIN…
The live signal cards: compiled, provenance-carrying observations (lead_lag, network, signature) with severity and the entities they name. Cards appear only while their type is armed; an answer with n…
Labelled relationship edges (owns, operates, supplies …) around ONE entity, with tier and provenance: start from entity_type + entity_id (or a name in `entity`), walk `hops` deep, filter by relation_t…
Entities near a location: lat + lng, radius_km, an optional entity_type, limit. Each carries `source_tier`. Metered: see CHARGING in the server instructions; quote first with `billing_quote`.
Everything inside a bounding box (min_lat, min_lng, max_lat, max_lng): the true count per type for the whole box plus a capped sample of pins. Agent keys only. Metered: see CHARGING in the server inst…
A satellite still of a place: the newest Sentinel-2 archive image on or before `as_of`, by lat/lng or entity_type + id. Returns the JPEG plus provenance (`observed_at` is the scene's date). A cloudy o…
An ordered stack of dated Sentinel-2 stills of one site from t0 to t1, one per window (max_frames, default 6), each with its own scene date. A window with no clear scene is an explicit empty frame, no…
The cheap index of one entity's dates: imagery scene dates (no images), our record's versions since record time began, and a short newest-first `what_changed` list, each item marked world time or our …
One packet for one entity at a date (as_of): the entity as we held it then, the pins held by then, its relationships valid then, and the satellite still for that date. Charged for the parts delivered.…
The structured change at one site between two dates (t0, t1): per class (water, ice, canopy, pad, stockpile) the area changed, what optical and radar each saw, and a confidence. Read `height_class` fi…
An entity_change job started with start=true: running, done (with the answer and how its reservation settled) or failed (released). Free. Only the paying wallet can read it.
A dated, georeferenced 3D model of a site (entity_type + id, or lat + lng) with measurements: extent, elevation, slope, pits and heaps with volumes. The tier (lidar_2m or dem_30m) is decided before an…
What exists at a place, and when: dated stills, source quotes and measurements within radius_km of lat/lng or of an entity's site, newest first. Each row carries valid_on (world time) and recorded_at …
One company's record by id: the company, the deposits and infrastructure it operates, its relationships with tier and provenance, and `merged` when the id moved. Have only a name? Call `company_search…
Find companies by name, sector or country, to get the id that `company`, `relationships` and the entity tools take. Returns {count, total, companies[{id, name, sector, country, …}]}, one page by limit…
Search resource deposits by commodity, resource_type, country, status, owner_country, max_port_km or name. `commodity` matches through the commodity graph (a group match counts; `commodity_filter` say…
One resource deposit by id: its record, `commodities[]` ({name, role, group}) and operators. Pair with `deposits(commodity=…)` to find ids. Metered: see CHARGING in the server instructions; quote firs…
Browse the RAREEAI marketplace: kind="providers" (listings, filterable and sorted) or "oracles". Paged.
Read one marketplace match you are a party to: its escrow_terms, fee and timeout fields, dispute window and dispute state. For the settlement legs use `trade_settlement`.
Read one marketplace REQUEST you own, by id: its terms, status and units matched, plus the generic `escrow_terms`. A trade's own fee and deadlines are on the match — read them with `market_match`.
Your own wallet balance, free. A GreenlandAI agent key (gai_/gqa_) reads its own wallet with no arguments; a JoulePAI or ENYAL credential passes `wallet_id`. The graph meter debits this same wallet.
The exact price of a metered call for YOU, before you make it — free. `path` = the API path the tool hits (e.g. /api/v1/relationships, with hops). Fund `joules_all_in`, the true debit. The quote says …
Receipts for your key: whether THIS key is opted in to a receipt with each paid graph answer, and how its owner turns them on. Free.
YOUR OWN charge record, attempt by attempt (your own wallet, from your credential): each attempt's status (pending, completed, settled_zero, failed, refunded …), reserved vs settled joules, and the at…
Look up one identifier (a chunk, proof, match or transfer id, or a BSV txid) in ENYAL's public verify lookup; its verdict fields come back unchanged. Only `chain_confirmed:true` is a verified anchor; …
Recent public ledger anchors with their on-chain transaction ids and the exact credit supply at each anchor — public, no auth. Independently checkable.
The latest hourly public transparency attestation: a Merkle root over every wallet balance, the verified total supply and the Bridge Ledger root, with the anchoring BSV txid ("pending" until broadcast…
Inclusion proof for YOUR wallet balance in the latest hourly transparency attestation: leaf hash, Merkle path, root, the anchoring BSV txid ("pending" until the batch is broadcast) and how to verify i…
Inclusion proofs for YOUR Bridge Ledger rows (contribution and fee events): per-row leaf hash, Merkle path, bridge_root and the anchoring BSV txid ("pending" until the hourly batch is broadcast). No a…
Match one of YOUR open requests now. Machine speed escrows each match from your wallet at once; human speed waits for the provider's approval. A 409 when the request is no longer open.
Withdraw a request's automatic re-matching consent now (DELETE /api/v1/marketplace/request/{id}/rematch). Matches already escrowed stay as they are.
Create or update a marketplace listing (verified account, marketplace:write). Typed body: wallet_id, frontier, resource_type, unit_type, price_joules_per_unit and optional capacity, limits, SLA and or…
Post a marketplace BUY request (verified account, marketplace:write): wallet_id, frontier, resource_type, unit_type, units_needed, max_price_per_unit and options. Escrow is debited on match. A physica…
Accept a delivery on a match (POST /match/{id}/accept) — releases escrow to the provider. You must be the buyer party; the backend enforces it.
A direct wallet-to-wallet transfer (wallet:transfer scope). An agent wallet may send only to a registered destination; limits are live config, not constants. Typed body: from_wallet_id, to_wallet_id o…
Can you afford the next call? Give a planned `cost`; returns {needed, have, shortfall, tool_to_call_next}. Free. Agent keys read their own wallet; a JoulePAI or ENYAL credential may pass `wallet_id`.
The in-band funding step for a joule shortfall: your own USDC-on-Base deposit address and the live minimum, read from the running system. It moves no money; track the deposit with `funding_status`.
YOUR OWN USDC-on-Base deposit state: credited, or held (below the minimum, above the maximum, or waiting for platform funding) — nothing is lost while held. From your credential, no arguments.
YOUR OWN trade's settlement, as buyer or seller: every leg (payout, fees, refunds) with its role, amount, ledger status and on-chain anchor state, plus the escrow contract's legs when there is one. A …
Register as a RAREEAI oracle by staking joules (invite-only at launch; a wallet not yet invited is told how to apply). Body: wallet_id, specialisations (1–7 from a fixed list) and stake_amount. The st…
List YOUR oracle assignments: each delivery to assess, with its match_id, deadline, the fee earned and your verdict if already given. Optional status filter and limit.
Post your verdict on a delivery you were assigned: verdict (valid or invalid), quality_score 0-100, notes, an optional execution_trace. A low score opens a dispute. A 409 means the match has moved on …
Deregister as an oracle and get your stake back from escrow (less anything slashed). `wallet_id` is required. Fails while you have pending assessments.
Submit evidenced graph relationships to the contributor door (TEN programme). Each relation needs subject, relation, object, a real source_url and a verbatim quote from it. Nothing is written on submi…
Your OWN contributor standing: submitted, accepted and rejected totals, acceptance rate, pending review and standing (good, warning, suspended, revoked). Send your enabled gai_ key as X-API-Key.
Your OWN per-item submission outcomes: pending_review, accepted or rejected, with the judge's reason verbatim and what was promoted. Send your enabled gai_ key as X-API-Key. Paged.
Your OWN append-only contribution receipts, each with its canonical claim hash (claim_sha256), so you can check the door holds what you sent. Send your enabled gai_ key as X-API-Key. Paged.
The full guide for one tool, free and not metered: its complete description (edge cases, every rule, examples), every parameter's full description and the fields it returns. Each tool's listed des…
company + relationships + entity_history for one company in ONE call, billed exactly as the three would be, with one charged_joules total. Lean by default; include_raw for everything. Metered: see CHA…
deposit + relationships + entity_history for one deposit in ONE call, billed exactly as the three would be, with one charged_joules total. Lean by default; include_raw for everything. Metered: see CHA…
How to use
Claude Desktop or claude.ai: add a custom connector (Customize → Connectors; on Team and Enterprise plans an owner adds it under Organization settings → Connectors) with this server URL: https://mcp.greenlandai.ai/mcp
Cursor or Cline: add to your MCP config:
{
"mcpServers": {
"greenlandai": {
"url": "https://mcp.greenlandai.ai/mcp",
"transport": "streamable-http"
}
}
}