EE

eve-esa/mcp-tool-registry

Developer tools
8 stars 11 forks Quality 81 Trend 36Apache-2.0

This repository contains tools developed by the EVE team and the community

Overview

The Model Context Protocol (MCP) is an open standard that lets an AI agent discover and call external tools. This repository is the tool registry of EVE, the Earth Virtual Expert: a collection of MCP servers for Earth Observation (EO) and Earth Science, written by the EVE team and the community. - Each server in servers/ is self-contained: a FastMCP entrypoint, pinned requirements and optional tests. - CI validates the structure, lints the code, scans for secrets and builds the container. - Merged servers are deployed to AWS Bedrock AgentCore and become tools for the EVE agent. Anyone building EO agents can run these servers locally or contribute a new one. Requires Python 3.13. Each server has its own requirements, so install only the one you need: Servers that need credentials ship a .env.template: copy it to .env in the same folder and fill it in. Some also accept them per request as HTTP headers, see Per-request credential headers.

README

About

The Model Context Protocol (MCP) is an open standard that lets an AI agent discover and call external tools. This repository is the tool registry of EVE, the Earth Virtual Expert: a collection of MCP servers for Earth Observation (EO) and Earth Science, written by the EVE team and the community.

  • One folder per server. Each server in servers/ is self-contained: a FastMCP entrypoint, pinned requirements and optional tests.
  • Checked on every pull request. CI validates the structure, lints the code, scans for secrets and builds the container.
  • Deployed to EVE. Merged servers are deployed to AWS Bedrock AgentCore and become tools for the EVE agent.

Anyone building EO agents can run these servers locally or contribute a new one.

Servers

Server What it does Tools Credentials
cdse Sentinel-1, -2, -3, -5P, Landsat and DEM imagery from the Copernicus Data Space Ecosystem (Sentinel Hub) fetch_sentinel1_grd, fetch_sentinel2, fetch_sentinel3_olci, fetch_sentinel3_slstr, fetch_sentinel3_syn_l2, fetch_sentinel5p_l2, fetch_landsat_ot_l1, fetch_dem CDSE client
effis Burnt areas from EFFIS and Sentinel-2 burn metrics (NDVI, NBR, BAIS2) geocode_place, get_effis_burnt_areas, compute_metrics CDSE client
eodashboard ESA / NASA / JAXA EO Dashboard narratives and indicators, resolved to STAC items list_narratives, search_narratives, get_narrative_content, list_themes, get_narrative_indicators, search_collections, get_collection_items, find_narratives_for_indicator none
eotdl Search datasets, models and pipelines on the EO Training Data Lab eotdl_search none
esa_moocs Semantic search over ESA Earth Observation MOOC transcripts search_moocs none
eve_retrieval Retrieval over the EVE document collections retrieve EVE token
gdacs Ongoing and recent natural disasters worldwide (GDACS, UN / EC) search_gdacs_events none
geocode Forward and reverse geocoding with OpenStreetMap Nominatim geocode_place, reverse_geocode_place none
serpapi Web search through SerpAPI search_google SerpAPI key
trallie Structured data extraction from documents with an LLM extract_data Groq API key
dummy_image Sample PNG images, to test MCP image responses get_sample_image none

Quick start

Requires Python 3.13. Each server has its own requirements, so install only the one you need:

git clone https://github.com/eve-esa/mcp-tool-registry.git
cd mcp-tool-registry
python3 -m venv .venv && source .venv/bin/activate
pip install -r servers/geocode/requirements.txt

Servers that need credentials ship a .env.template: copy it to .env in the same folder and fill it in. Some also accept them per request as HTTP headers, see Per-request credential headers.

Run over HTTP (streamable HTTP on http://localhost:8000/mcp, the default):

python servers/geocode/server.py

Use it from an MCP client (stdio), for example Claude Desktop, Cursor or VS Code:

{
  "mcpServers": {
    "geocode": {
      "command": "/absolute/path/to/mcp-tool-registry/.venv/bin/python",
      "args": ["/absolute/path/to/mcp-tool-registry/servers/geocode/server.py", "--transport", "stdio"]
    }
  }
}

The MCP Inspector (npx @modelcontextprotocol/inspector) is the quickest way to list and call the tools of a running server. For curl examples and Docker builds, see Local testing.

Contributing

New EO tools are welcome. In short:

  1. Create servers// with a FastMCP server.py and a pinned requirements.txt.
  2. Add a CITATION.cff with your name, affiliation and GitHub handle. After merge, the server README is written from it.
  3. Add a .env.template if the server needs secrets, and a test.py.
  4. Run it locally and build it with docker build -f shared/Dockerfile servers//.
  5. Open a pull request against main, one server per PR.

CI checks the folder structure, the entrypoint contract, pinned versions, a valid CITATION.cff, secrets and file sizes, then runs ruff and a Docker build. The full guide, with a server template and the PR checklist, is in CONTRIBUTING.md.

Deployment and early access

Servers merged into main are deployed automatically to AWS Bedrock AgentCore, where the EVE agent uses them. If you want early access to the hosted servers before they are public, write to [email protected].

Earth Virtual Expert (EVE)

Earth Virtual Expert (EVE) aims to advance the use of Large Language Models (LLMs) within the Earth Observation (EO) and Earth Science (ES) community.

Funding

This project is supported by the European Space Agency (ESA) Φ-lab through the Large Language Model for Earth Observation and Earth Science project, as part of the Foresight Element within FutureEO Block 4 programme.

Citation

If you use this project in academic or research settings, please cite:

@misc{atrio2026evedomainspecificllmframework,
      title={{EVE}: A Domain-Specific {LLM} Framework for Earth Intelligence},
      author={Àlex R. Atrio and Antonio Lopez and Jino Rohit and Yassine El Ouahidi and Marcello Politi and Vijayasri Iyer and Umar Jamil and Sébastien Bratières and Nicolas Longépé},
      year={2026},
      eprint={2604.13071},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2604.13071},
}

License

This project is released under the Apache 2.0 License. See the LICENSE file for details.

View the full README on GitHub

Install

This server does not publish a one-line install command.

Open the repository installation guide New to MCP? Start with the mcpskill.org guide →

Configuration

{ "mcpServers": { "geocode": { "command": "/absolute/path/to/mcp-tool-registry/.venv/bin/python", "args": ["/absolute/path/to/mcp-tool-registry/servers/geocode/server.py", "--transport", "stdio"] } } }