Climate Data Store (CDS) MCP Server

by albertdow

1 209 downloads Not rated yet MIT

About

An MCP server for working with ECWMF data catalogues

Details

License
MIT

Explore

- 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.

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

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 [email protected]: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.