Climate Data Store (CDS) MCP Server

by albertdow

1 stars
209 downloads
Not rated
GitHub

About

An MCP server for working with ECWMF data catalogues

Details

Author
albertdow
GitHub stars
1
Downloads
209
Categories
Search

- Provides five tools: get_jobs, download_job_result, get_all_collections, get_collection_by_id, and submit_job.
- Environment variable support via .env for API credentials.
- Designed for MCP hosts (Claude Desktop, MCP Inspector).
- Built on the datapi Python library from ECMWF.
- Requires Python 3.13 or higher.

Clone the repository, install dependencies with uv add "mcp[cli]" datapi python-dotenv, then create a .env file with DATAPI_URL and DATAPI_KEY. Test in dev mode with mcp dev datapi_server.py, or integrate with Claude Desktop using mcp install datapi_server.py --name "DatapiServer" -f .env or by adding the server configuration to claude_desktop_config.json.

Climate Data Store (CDS) MCP Server

Overview

A Model Context Protocol (MCP) server implementation that provides the LLM an
interface to retrieve CDS catalogue data and job statuses.
The underlying API is datapi - docs found here.

Features

- Tools:
- get_jobs: find the jobs available, optionally add a filter based on status.
Returns a list of job ids.
- download_job_result: downloads the job result using job id.
- get_all_collections: gets all available collection ids in the catalogue.
- get_collection_by_id: fetches information for a specified collection.
- submit_job: submits a download request.

- Environment variable support using .env.

Prerequisites

- Python 3.13 or higher.
- CDS API Key: here
- MCP Host/Client: tested on Claude Desktop and the MCP Inspector.

Installation

- Clone the repository:

git clone git@github.com:albertdow/mcp-datapi.git
cd mcp-datapi

- Install dependencies (using uv):

uv add "mcp[cli]" datapi python-dotenv

- Setup CDS API key by creating a .env file and adding the following:

DATAPI_URL=<DATAPI_URL>
DATAPI_KEY=<DATAPI_KEY>

Details on CDS API key setup can be found here.

Usage

Dev Mode with MCP Inspector

Test the server locally:

mcp dev datapi_server.py

Integrate with Claude Desktop

mcp install datapi_server.py --name "DatapiServer" -f .env

Or directly put add to your claude_desktop_config.json:

{
    "mcpServers": {
        "DatapiServer": {
            "command": "uv",
            "args": [
                "--directory",
                "mcp-datapi",
                "run",
                "mcp_datapi/datapi_server.py"
            ],
            "env": {
                "DATAPI_URL": "<DATAPI_URL>",
                "DATAPI_KEY": "<DATAPI_KEY>"
            }
        }
    }
}

Note:

- I had to specify the path to uv, e.g. /Users/username/.local/bin/uv.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.