mcp-perception

Geospatial AI MCP server — satellite imagery, embeddings, weather, GNS governance

Should I use this

Quality & Safety

A
Description quality
94%
Schema completeness
87%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'gns_get_compliance_report' description lacks action verbin gns_get_compliance_report

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,174Tokens (tool definitions)
~959 BTypical response size
Moderate attention impact (0.92% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp-perception": {
      "url": "https://packagesmcp-perception-production.up.railway.app/sse"
    }
  }
}

Remote endpoints

https://packagesmcp-perception-production.up.railway.app/ssesse
https://packagesmcp-perception-production.up.railway.app/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢perception_fetch_tile(h3_cell, timestamp, max_cloud_cover, days_back)

Fetch the least-cloudy Sentinel-2 L2A tile covering a given H3 cell from Microsoft Planetary Computer. Returns signed COG band URLs for all 6 Prithvi/Clay spectral bands (B02 Blue, B03 Green, B04 Red, B8A NIR, B11 SWIR1, B12 SWIR2), plus tile metadata. The tile is cached in memory for subsequent perception_classify or perception_embed calls.

Input Schema

{
  "type": "object",
  "properties": {
    "h3_cell": {
      "type": "string",
      "description": "H3 cell ID at any resolution."
    },
    "timestamp": {
      "type": "string",
      "description": "ISO 8601 datetime. Search back from this point. Defaults to now."
    },
    "max_cloud_cover": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "Max cloud cover %. Default: 20."
    },
    "days_back": {
      "type": "number",
      "minimum": 1,
      "maximum": 365,
      "description": "Days to search back. Default: 30."
    }
  },
  "required": [
    "h3_cell"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢perception_classify(tile_id, task, h3_cell, write_to_spatial_memory)

Run Prithvi-EO-2.0-300M-TL-Sen1Floods11 flood classification on a Sentinel-2 tile previously fetched by perception_fetch_tile. Sends the 6-band chip to a RunPod endpoint and returns: dominant_class, flood_pixel_pct, confidence, class_counts, and the full perception_chain. The perception chain is written to Spatial Memory and a signed audit breadcrumb is dropped to the agent trail.

Input Schema

{
  "type": "object",
  "properties": {
    "tile_id": {
      "type": "string",
      "description": "tile_id from perception_fetch_tile result (must be in session cache)."
    },
    "task": {
      "type": "string",
      "enum": [
        "flood",
        "landcover",
        "burnscar",
        "anomaly"
      ],
      "description": "Classification task. Currently only \"flood\" is supported."
    },
    "h3_cell": {
      "type": "string",
      "description": "Override H3 cell. Defaults to the cell from the original fetch."
    },
    "write_to_spatial_memory": {
      "type": "boolean",
      "description": "Write perception chain to geiant_geometry_state. Default: true."
    }
  },
  "required": [
    "tile_id",
    "task"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪perception_embed(tile_id)

[Sub-phase 4.2 — NOT YET IMPLEMENTED] Will generate Clay v1.5 embeddings.

Input Schema

{
  "type": "object",
  "properties": {
    "tile_id": {
      "type": "string",
      "description": "tile_id from perception_fetch_tile result"
    }
  },
  "required": [
    "tile_id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢perception_weather(h3_cell, timestamp, write_to_spatial_memory)

Query atmospheric conditions for an H3 cell at a given timestamp from Open-Meteo ERA5. Returns wind, precipitation, temperature. Writes to Spatial Memory and drops a signed audit breadcrumb.

Input Schema

{
  "type": "object",
  "properties": {
    "h3_cell": {
      "type": "string",
      "description": "H3 cell ID at any resolution."
    },
    "timestamp": {
      "type": "string",
      "description": "ISO 8601 datetime for weather lookup. Defaults to now."
    },
    "write_to_spatial_memory": {
      "type": "boolean",
      "description": "Write weather context to geiant_geometry_state. Default: true."
    }
  },
  "required": [
    "h3_cell"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢gns_get_trust_score(agent_pk)

Get the current TierGate trust tier and score for an agent. Tiers: provisioned (0%) → observed (25%) → trusted (60%) → certified (85%) → sovereign (99%). Omit agent_pk to query the server's own agent.

Input Schema

{
  "type": "object",
  "properties": {
    "agent_pk": {
      "type": "string",
      "description": "Ed25519 public key (64 hex chars). Omit for own agent."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪gns_verify_chain(agent_pk)

Verify the cryptographic integrity of an agent's breadcrumb chain. Returns { is_valid, block_count, issues[] } plus epoch Merkle roots. A valid chain proves no audit records have been tampered with.

Input Schema

{
  "type": "object",
  "properties": {
    "agent_pk": {
      "type": "string",
      "description": "Ed25519 public key (64 hex chars). Omit for own agent."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪gns_roll_epoch

Roll all pending breadcrumbs into a new sealed epoch with a Merkle root. Returns { epoch_index, merkle_root, block_count, epoch_hash }. Call this at the end of a session to produce a tamper-evident compliance snapshot.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢gns_get_compliance_report(agentHandle)

Returns a full EU AI Act compliance report for a GNS agent, including trust score, chain verification, Merkle epoch proofs, delegation certificate, and regulatory status.

Input Schema

{
  "type": "object",
  "properties": {
    "agentHandle": {
      "type": "string",
      "description": "GNS handle of the agent (e.g. energy@italy-geiant)"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools