MCP server for Mireye Earth β federal-source-cited geospatial data for any MCP-aware agent.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Developed in a private monorepo. This repository (Mireye-Labs/mireye-earth-mcp) is the published source of the
mireye-mcpPyPI package, snapshot-synced on every release. Issues and PRs are welcome here (changes are applied upstream and re-synced; the test suite runs in the monorepo); releases land via PyPI.
Expose Mireye Earth's /v1/ask and /v1/fetch endpoints to MCP clients
that need a local stdio adapter (Claude Desktop, Cursor, custom agents
built on the mcp Python SDK) as native tools β no HTTP wiring required.
This is a standalone PyPI package (mireye-mcp) with only two
runtime dependencies β httpx and mcp. It does not pull in the
geospatial backend, so there's no GDAL / rasterio / DuckDB build step.
The server is a local stdio adapter with no geospatial business logic: tool handlers POST to the deployed Mireye HTTP API, while read-only MCP resources fetch and cache the public field catalog.
Mireye also exposes a hosted remote MCP endpoint at
https://api.mireye.com/mcp for clients that support Streamable
HTTP and native OAuth. Use that hosted endpoint for Claude Code so /mcp
opens the browser sign-in flow. This package remains the local stdio path;
it uses mireye-mcp login or MIREYE_BEARER_TOKEN for credentials.
Six tools, all prefixed mireye_ so they sort together and don't
collide with generic ask / fetch tools from other MCP servers:
| Tool | When the agent should call it |
|---|---|
mireye_ask | The caller asked a question about a US place ("is this in a flood zone?", "wildfire risk?"). |
mireye_fetch | The caller wants specific named fields ("elevation and slope here") or is powering a workflow. |
mireye_geocode | The caller gave an address and just wants the coordinate + its quality, nothing else. |
mireye_lookup | The input might be ambiguous, isn't a clean address (a coordinate or an APN), or a parcel is wanted. |
mireye_request_field | The catalog doesn't have the field the caller needs β describe it in plain language plus example locations and either get a live match now or a request_id to build it. |
mireye_field_request_status | Poll a request_id from mireye_request_field for status, queue position, ETA, and (once live) the resume call. |
Catalog context is exposed as MCP resources instead of extra tools:
| Resource | What it returns |
|---|---|
mireye://catalog/fields | Full field catalog. |
mireye://catalog/presets | Preset names and field expansions. |
mireye://catalog/us-envelope | Supported coordinate bounds. |
mireye://field/{name} | One field definition. |
mireye://preset/{name} | One preset expansion. |
Workflow prompts are also registered β 22 in total. Claude Code surfaces
MCP prompts as slash commands under the form /mcp__<server>__<prompt>.
| Prompt | What it does |
|---|---|
mireye_ask | Call mireye_ask with a lat/lng and question. |
mireye_fetch | Call mireye_fetch with a lat/lng and optional fields/preset. |
mireye_lookup | Call mireye_lookup with an address/lat,lng/APN, noting the disposition handling. |
mireye_request_field | File a field request with mireye_request_field, noting the disposition handling. |
mireye_field_request_status | Poll a field request's status with mireye_field_request_status. |
mireye_fields | Browse or search the field catalog. |
mireye_pick_fields | Choose the smallest useful field set for a free-text question. |
mireye_site_report | Site report via the site_selection preset. |
mireye_flood_check | Flood-relevant signals via the flood_risk preset. |
mireye_wildfire_underwrite | Wildfire underwriting signals via the wildfire_underwrite preset. |
mireye_terrain_report | Terrain signals via the terrain preset. |
mireye_land_cover_report | Land cover signals via the land_cover preset. |
mireye_building_lookup_report | Primary building details via the building_lookup preset. |
mireye_points_of_interest_report | Nearby amenities via the points_of_interest preset. |
mireye_utilities_report | Utility infrastructure via the utilities preset. |
mireye_boundaries_report | Political/census boundaries via the boundaries preset. |
mireye_solar_siting_report | Solar siting signals via the solar_siting preset. |
mireye_wind_siting_report | Wind siting signals via the wind_siting preset. |
mireye_storage_siting_report | Battery storage siting signals via the storage_siting preset. |
mireye_data_center_siting_report | Data center siting signals via the data_center_siting preset. |
mireye_grid_interconnect_report | Interconnection signals via the grid_interconnect preset. |
mireye_natural_hazard_report | Natural hazard signals via the natural_hazard preset. |
There is no third list_fields tool. Agents that need the catalog should
read the MCP resources above; the stdio adapter backs them with
GET /v1/meta/fields and a 1-hour ETag-aware cache.
uvxThat's it. uvx (bundled with uv)
downloads the package into a managed cache, runs the entry point, and
the next invocation is instant. No venv to manage, no pip install,
no native builds.
If you don't have uv:
Plain pip also works:
This server is published to the
Official MCP Registry as
com.mireye/earth β the entry is live (the publish job ships from
release.yml), and mireye-mcp 0.2.0 is on PyPI. The registry entry
carries both distributions:
mireye-mcp (local stdio, run via uvx), andhttps://api.mireye.com/mcp (Streamable HTTP +
OAuth) for clients that prefer a remote server.Because the entry is live, registry-aware clients (VS Code, the GitHub MCP Registry, and anything else that reads the official registry) can discover and install it from there β no manual config required.
First authenticate the local adapter:
For non-interactive hosts, set MIREYE_BEARER_TOKEN instead.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Restart Claude Desktop. The six tools (mireye_ask, mireye_fetch,
mireye_geocode, mireye_lookup, mireye_request_field,
mireye_field_request_status)
appear under the π menu, with catalog resources and prompts available to
clients that surface those MCP primitives.
To point at a self-hosted deployment instead of the default Fly URL:
Use the hosted HTTP MCP endpoint instead of this local stdio package:
Restart Claude Code, run /mcp, and follow the browser OAuth flow.
Slash commands appear as:
/mcp__mireye-earth__mireye_ask <lat> <lng> <question>/mcp__mireye-earth__mireye_fetch <lat> <lng> [fields] [preset]Or just chat naturally β Claude Code will call the tool when relevant.
Cursor's MCP config lives at ~/.cursor/mcp.json (global) or
<repo>/.cursor/mcp.json (workspace). Same shape as Claude Desktop:
Open Cursor β Settings β MCP and confirm mireye-earth shows the two
green tools. Catalog resources and prompts appear when the client supports
those MCP primitives.
If you're building an MCP client with the mcp Python SDK, point its
StdioServerParameters at the installed entry point:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/earth)<a href="https://allmcps.com/mcp/earth"><img src="https://allmcps.com/api/badge/earth?style=directory" alt="Earth on AllMCPs" /></a>