GreenlandAI is an MCP server with 37 tools an agent can call, among them balance_proof, billing_attempts, billing_quote. It answers at https://mcp.greenlandai.ai/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 4 of 4 times since 14 September 2026; the last check, on 18 October 2026, succeeded.
The physical world as queryable data: companies, deposits, infrastructure, projects and commodities.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
balance_proof | Cryptographic inclusion proof for YOUR wallet balance in the latest hourly transparency attestation (GET /wallet/balance-proof): leaf hash, Merkle sibling path, root, the anchoring BSV txid, and `verification` (the steps to recompute the ro |
billing_attempts | YOUR OWN CHARGE RECORD — what this wallet was charged for, attempt by attempt, so you can verify your bill without asking us (relays GET /api/v1/billing/attempts; own wallet only — derived from your credential, never a parameter). Distinct Inputs: limit, offset |
billing_quote | The exact per-caller price of a metered call BEFORE you make it — free, no website, an MCP tool you can actually invoke (relays GET /api/v1/billing/quote). `path` = the API path the call would hit — e.g. "/api/v1/relationships" (the `relati Inputs: path, hops |
bridge_proof | Cryptographic inclusion proofs for YOUR Bridge Ledger rows — contribution/fee events — in the balance-proof shape (GET /programme/bridge/proof): per-row leaf hash, sibling path, the `bridge_root`, and the anchoring BSV txid, plus `verificat |
company | One company's record and graph neighbourhood by id; the response carries `charged_joules` — the all-in PRICE of THIS call (one key on every metered response — the companies/deposits/infrastructure/ projects reads, relationships, and look_fr Inputs: id |
contribute_receipts | Your OWN append-only contribution receipts (forward your enabled gai_ key as X-API-Key) — the proof of what you submitted, with the canonical claim hash (claim_sha256) so you can verify what the door holds matches what you sent. Own rows on Inputs: limit, offset |
contribute_relations | Submit evidenced graph relationships to the GreenlandAI contributor door (TEN programme). Auth: your OWN GreenlandAI key in X-API-Key — an agent's gai_ registration key or the owner's gai_ key, the SAME key you use on the graph reads; the a Inputs: relations, entities |
contribute_stats | Your OWN contributor standing (forward your enabled gai_ key as X-API-Key; the door derives identity from the key). Returns totals (submitted/accepted/rejected), acceptance_rate, pending_review, refused_at_door, standing (good / warning / s |
contribute_submissions | Your OWN per-item submission outcomes (forward your enabled gai_ key as X-API-Key). Each item: id, kind, name, outcome (pending_review / accepted / rejected), the judge's reason verbatim in review_note (a pending item reads 'awaiting the ju Inputs: limit, offset |
deposit | One resource deposit's record by numeric id (relays GET /api/v1/deposits/{id}), including its `commodities[]` ({name, role: primary|byproduct, group} — the commodity graph, with `resource_type` as the primary label) and operators. Pair with Inputs: id |
deposit_status | YOUR OWN USDC-on-Base deposit state (relays GET /api/v1/wallet/deposit-status; own wallet only, derived from your credential, never a parameter). States: credited (joules in your wallet) · held_below_min (under `minimum_usdc` — held and acc |
deposits | Search resource deposits (relays GET /api/v1/deposits). Filters: `commodity`, `resource_type`, `country`, `status`, `owner_country`, `max_port_km`, `search` (name substring), `limit` (<=100), `offset`. ⚠ READ THIS BEFORE USING `commodity`: Inputs: commodity, resource_type, country, status, owner_country, max_port_km |
funding_prepare | The in-band funding step for a joule shortfall — NEVER a website to visit (operator lock). USDC on Base is the live agent-fundable rail: deposit USDC to your own Base address (derived from your credential), at or above the live minimum (`mi Inputs: needed |
hops | DEPRECATED alias for `relationships` — kept working, to be removed at a future major. Use `relationships`. Reason (operator ruling 2026-09-14): `hops` names the tool after the BILLING UNIT (traversal depth is what we meter, and `billing_quo Inputs: entity, hops, relation_type, search, limit, offset |
joules_balance | Your own wallet balance — a FREE read either way (checking costs nothing). A GreenlandAI AGENT key (`gai_`/`gqa_`) reads its OWN wallet via GAI /api/v1/agent/me/balance — NO wallet_id needed; returns {agent_id, agent_name, wallet_id, balanc Inputs: wallet_id |
joules_deficit | Given a planned `cost`, read a balance and return {needed, have, shortfall, tool_to_call_next} so an agent can decide in-band whether it can afford the next call — no website, no guessing, FREE. A GreenlandAI AGENT key (`gai_`/`gqa_`) reads Inputs: cost, wallet_id |
ledger_verify | Recent public ledger anchors with their on-chain transaction ids and the exact credit supply at each anchor — public, no auth. Independently checkable. |
look_at | Satellite still of a place — a Sentinel-2 ARCHIVE image (the screen as a picture). Pose = lat/lng OR entity_type+id (anchor); same pose family as `look_from`. Optional `as_of` (YYYY-MM-DD — the newest scene on/before that date) and `max_clo Inputs: lat, lng, entity_type, id, as_of, max_cloud |
look_from | Map lane: pins near a point (lat/lng + radius_km). `entity_type` (deposit | infrastructure | company | project) behaves two ways (backend, 2026-09-14): `entity_type` ALONE (with lat/lng) FILTERS the frame to that type only; `entity_type` + Inputs: lat, lng, entity_type, id, radius_km, energy |
map_viewport | Map lane: everything inside a bounding box — THE SCREEN (relays GET /api/v1/map.viewport). Typed params: min_lat/min_lng/max_lat/max_lng (the bbox — all four together), entity_type (deposit | infrastructure | company | project — default all Inputs: min_lat, min_lng, max_lat, max_lng, entity_type, energy |
mapdata | CLOSED — do NOT call. `/api/v1/mapdata` (the bulk map-layers surface) is TEMPORARILY closed to ALL callers, agent AND human: the backend returns 403 BEFORE the meter, so NOTHING is charged (GR-109 operator ruling 2026-09-08, gated on AGENT_ Inputs: layers, include_country_centroids |
market_accept | Accept a delivery on a match (POST /match/{id}/accept) — releases escrow to the provider. You must be the buyer party; backend enforces it. Inputs: match_id, idempotency_key |
market_listings | Browse the RAREEAI marketplace: kind="providers" (listings) or "oracles". Typed query params for the providers browse (GET /providers): frontier, resource_type, oracle_verified, active (default True), limit (<=200, default 50), offset, sort Inputs: kind, frontier, resource_type, oracle_verified, active, limit |
market_match | Read one marketplace match by id, including its `escrow_terms` and this trade's typed fee/timeout fields. You must be a party to the match. Bearer required. `dispute_window_end` is populated on oracle-path trades (a real timestamp, not null Inputs: match_id |
market_provide | Create/update a marketplace listing (POST /provide). Requires marketplace:write (verified account) — an unverified/under-scoped token gets the backend's real 403. First-time provider registration charges a 1,000-joule fee that is SPENT (not Inputs: body |
market_quote | Read one marketplace REQUEST by id (GET /request/{id}; you must own it). Returns the request as the route actually declares it: id, wallet_id, agent_id, frontier, resource_type, unit_type, speed, privacy_mode, contract_escrow, units_needed, Inputs: request_id |
market_request | Post a marketplace BUY request (POST /request) — you want to buy a resource; providers match against it and your escrow is debited on match. Bearer + a verified account (marketplace:write); an under-scoped token gets the backend's real 403. Inputs: body |
nearby | Entities near a location (the primitive `look_from` builds on). Typed query params (GET /nearby): lat + lng (required), radius_km (default 100), entity_type (optional filter), limit (<=100, default 20), include_country_centroids (default Fa Inputs: lat, lng, radius_km, entity_type, limit, include_country_centroids |
oracle_assess | Post your verdict on a delivery you were assigned (POST /oracle/assess/{match_id}). Body: {verdict ('valid' or 'invalid'), quality_score (an integer 0-100), notes (<= 2000 chars), and optionally execution_trace (a dict describing how you ve Inputs: match_id, body |
oracle_assignments | List YOUR oracle assignments — the deliveries you have been assigned to assess (GET /oracle/assignments). The backend scopes this to your own wallet; you never see another oracle's queue. Optional query: status (filter) and limit (1-200, de Inputs: status, limit |
oracle_deregister | Deregister as an oracle and unstake (POST /oracle/deregister?wallet_id=...). Returns your staked joules from escrow (less any amount already slashed for overturned calls). Fails if you have pending assessments. wallet_id (the UUID of your o Inputs: wallet_id |
oracle_register | Register as a RAREEAI oracle by staking joules (POST /oracle/register). INVITE-ONLY at launch (Phase 1 — the oracle pool is operator-run): a non-whitelisted wallet gets a STRUCTURED invite-only response saying how to apply (a verified accou Inputs: body |
relationships | Graph lane: labelled relationship EDGES between companies/entities (ownership, operates, supplies, …) — the PRODUCT (edges with tiers + provenance), named for the capability, not the meter. Typed query params (GET /relationships): entity (t Inputs: entity, hops, relation_type, search, limit, offset |
trade_settlement | YOUR OWN trade's settlement — every leg of a marketplace trade you were the BUYER or SELLER of (relays GET /api/v1/wallet/trade/{match_id}/settlement). Party-gated on the backend: a 404 means you were not a party to this match (it also hide Inputs: match_id |
transparency_latest | The latest hourly PUBLIC transparency attestation (GET /transparency/latest — no auth): a Merkle root over every wallet balance, the verified total supply, a transaction attestation, the state root, and the Bridge Ledger root, plus the BSV |
verify_proof | Look up one identifier (chunk_id, proof_id, match_id, transfer id, or a BSV txid) in ENYAL's public verify lookup — no auth. The backend's body is returned UNCHANGED; read these fields, in this order, and claim nothing stronger than they sa Inputs: identifier |
wallet_transfer | Direct wallet-to-wallet transfer (POST /wallet/transfer). Requires wallet:transfer scope. WHO CAN SEND (the backend as it runs, 2026-09-03): a verified human wallet to any wallet; an AGENT-class wallet (agent_customer / agent_citizen) ONLY Inputs: body |
Every block below points at https://mcp.greenlandai.ai/mcp. Pick your client and copy.
claude mcp add --transport http greenlandai https://mcp.greenlandai.ai/mcp
{
"mcpServers": {
"greenlandai": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.greenlandai.ai/mcp"]
}
}
}{
"mcpServers": {
"greenlandai": {
"url": "https://mcp.greenlandai.ai/mcp"
}
}
}{
"servers": {
"greenlandai": {
"type": "http",
"url": "https://mcp.greenlandai.ai/mcp"
}
}
}{
"context_servers": {
"greenlandai": {
"url": "https://mcp.greenlandai.ai/mcp"
}
}
}{
"mcpServers": {
"greenlandai": {
"serverUrl": "https://mcp.greenlandai.ai/mcp"
}
}
}{
"mcpServers": {
"greenlandai": {
"url": "https://mcp.greenlandai.ai/mcp"
}
}
}name: GreenlandAI
version: 0.0.1
schema: v1
mcpServers:
- name: GreenlandAI
type: streamable-http
url: https://mcp.greenlandai.ai/mcp{
"mcpServers": {
"greenlandai": {
"httpUrl": "https://mcp.greenlandai.ai/mcp"
}
}
}{
"mcpServers": {
"greenlandai": {
"type": "http",
"url": "https://mcp.greenlandai.ai/mcp"
}
}
}{
"mcpServers": {
"greenlandai": {
"url": "https://mcp.greenlandai.ai/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fmcp.greenlandai.ai%2Fmcp&type=streamable_http&id=greenlandai&name=GreenlandAI
It answered our last check on 18 October 2026 in 291 ms. Over 4 checks since 14 September 2026 it answered 4. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by greenlandai.ai and served from mcp.greenlandai.ai, the vendor's own domain: https://mcp.greenlandai.ai/mcp.
37, as returned by the server's own tools/list on 24 September 2026: balance_proof, billing_attempts, billing_quote, bridge_proof, company, contribute_receipts, contribute_relations, contribute_stats, and 29 more.
It answered our last check on 18 October 2026 in 291 ms. Over 4 checks since 14 September 2026 it answered 4.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://mcp.greenlandai.ai/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: ai.greenlandai. Endpoint host: mcp.greenlandai.ai. ARD identifier: urn:air:ai.greenlandai:mcp:greenlandai.
First indexed 14 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.