mcp-datapi

mcp-datapi

3.2

If you are the rightful owner of mcp-datapi and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A Model Context Protocol (MCP) server implementation that provides the LLM an interface to retrieve CDS catalogue data and job statuses.

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.