Model Context Protocol server for Mirror Earth weather data.
Project description
Mirror Earth MCP
mirror-earth-mcp is a Python implementation of a Model Context Protocol (MCP) server for Mirror Earth weather data. It provides weather queries, model and variable catalogs, geocoding, local Markdown references, and batch-export task management.
Requirements
- Python 3.9 or newer
- uv
- A Mirror Earth API key for authenticated weather and batch-export tools
geocode and reverse_geocode use the public geocoding endpoint and do not require an API key.
Install and Run
Run the published package directly with uvx:
uvx --from mirror-earth-mcp mirror-earth-mcp
Set MIRROR_EARTH_API_KEY in the MCP client's environment. The server uses stdio transport and writes JSON-RPC responses only to standard output.
MCP Configuration
{
"mcpServers": {
"mirror-earth": {
"command": "uvx",
"args": ["--from", "mirror-earth-mcp", "mirror-earth-mcp"],
"env": {
"MIRROR_EARTH_API_KEY": "YOUR_MIRROR_EARTH_API_KEY"
}
}
}
}
For Codex CLI:
codex mcp add mirror-earth --env MIRROR_EARTH_API_KEY=YOUR_MIRROR_EARTH_API_KEY -- uvx --from mirror-earth-mcp mirror-earth-mcp
Tools
| Tool | Purpose |
|---|---|
list_models |
List forecast, historical, and archive forecast models. |
get_model_details |
Inspect model metadata, variables, and pressure levels. |
list_variables |
List hourly, daily, or monthly variables. |
get_forecast |
Query weather forecasts by coordinates. |
get_historical_weather |
Query ERA5 historical weather data. |
get_archive_forecast |
Query a past model forecast run. |
get_seamless_weather |
Query continuous ERA5 and ECMWF data. |
geocode / reverse_geocode |
Resolve place names and coordinates. |
get_batch_usage |
Inspect batch-export quota and usage. |
estimate_batch_export / create_batch_export |
Estimate and create batch exports. |
get_batch_task / list_batch_tasks / cancel_batch_task |
Manage batch-export tasks. |
The server also exposes bundled API and model documentation as mirror-earth://references/... MCP resources.
Development
uv sync
uv run pytest
uv build
Build artifacts are written to dist/. To publish a new version, authenticate with a PyPI token using the UV_PUBLISH_TOKEN environment variable and run:
uv publish
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mirror_earth_mcp-0.2.0.tar.gz.
File metadata
- Download URL: mirror_earth_mcp-0.2.0.tar.gz
- Upload date:
- Size: 25.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be2c60c712db8017d0c10dcfea22616a5955568a7368fb24fee597ec1a66eca4
|
|
| MD5 |
d015d64392af601b0ddf9694e1f9ecf9
|
|
| BLAKE2b-256 |
367c49d65b05f22b7aec9ad611c08efa99a6ebe24184132fcdd641a107263bf1
|
File details
Details for the file mirror_earth_mcp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: mirror_earth_mcp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 71.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b0d51d9863334e99ca75b5c8920924acefb0a2c88d697342d6b7232bc87c2a4
|
|
| MD5 |
0113a927d5c25f55808059410de770a3
|
|
| BLAKE2b-256 |
0d2ff4aad4c33065736c62f713f6d2cefe7e5e207c3e4b26b89eb9342b896a28
|