| title | MCP4RS Open Earth Explorer | |||||
|---|---|---|---|---|---|---|
| emoji | 🛰️ | |||||
| colorFrom | blue | |||||
| colorTo | green | |||||
| sdk | gradio | |||||
| sdk_version | 6.20.0 | |||||
| python_version | 3.11 | |||||
| app_file | app.py | |||||
| pinned | false | |||||
| tags |
|
Ask the Earth a question: discover, analyze, and explain open satellite data through MCP.
This repository provides two local run modes:
- Gradio web app with MCP endpoint, launched from app.py.
- MCP stdio server for local MCP clients, launched from server.py.
Use the app mode if you want a browser UI. Use stdio mode if you want to connect tools directly from an MCP client.
- Linux, macOS, or Windows with Python 3.11+.
pipavailable in your shell.- Network access for remote open-data catalogs (STAC/NASA GIBS).
From the repository root:
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txtOptional quick syntax check:
python -m py_compile app.py server.py stac_convert.pyStart the app:
python app.pyBy default, Gradio serves locally (typically on http://127.0.0.1:7860).
This app launches with mcp_server=True, so you get both:
- Web UI for interactive use.
- MCP HTTP endpoint exposed by Gradio at:
http://127.0.0.1:7860/gradio_api/mcp/http://127.0.0.1:7860/gradio_api/mcp/schema
If your MCP client expects a local command-based server, run:
python server.pyThis starts the FastMCP server over stdio (no browser UI).
Example MCP client config:
{
"mcpServers": {
"mcp4rs-open-earth-local": {
"command": "python",
"args": ["/ABSOLUTE/PATH/TO/mcp4rs-open-earth/server.py"]
}
}
}After launching python app.py:
- Open the local URL shown in terminal (usually
http://127.0.0.1:7860). - In the UI, run
Sourcesto confirm tool invocation works. - Test a simple query in
Search Sentinel-2with a known bbox/date.
For stdio mode (python server.py), validate by connecting from your MCP client and calling list_sources.
The analysis tools have stub fallbacks when heavy raster libs are missing.
To enable real raster-based execution for segment_water and spectral_index, install:
python -m pip install rasterio numpyModuleNotFoundError: pystac_client:- Re-run
python -m pip install -r requirements.txt.
- Re-run
- Port already in use:
- Stop the previous process or run in a clean terminal session.
- Empty search results:
- Use a valid bbox/date range and relax cloud-cover threshold.
- Planetary Computer signed URLs not applied:
- Install optional package:
python -m pip install planetary-computer.
- Install optional package:
This repository is configured for Hugging Face Spaces with Gradio MCP support, but the commands above are the recommended path for local deployment and testing.