GDEX MCP Server

MCP serverMonitoring & ops

MCP server for the GDEX (Geoscience Data Exchange) data portal: datasets, files, metrics, subsetting

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use GDEX MCP Server

Install GDEX MCP Server

The server’s own address, for the clients that take one directly. Or connect ahel onceand every client you use reads it from one address, with the account kept on ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http gdex-mcp-server 'https://gdex-mcp.k8s.ucar.edu/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://gdex-mcp.k8s.ucar.edu/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=gdex-mcp-server&config=eyJ1cmwiOiJodHRwczovL2dkZXgtbWNwLms4cy51Y2FyLmVkdS9tY3AifQ==

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://gdex-mcp.k8s.ucar.edu/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add gdex-mcp-server --url 'https://gdex-mcp.k8s.ucar.edu/mcp'

    Run it once, then sign in with codex mcp login gdex-mcp-server if the server asks for an account.

From the project's README

As published by NCAR/gdex-mcp in README.md.

An MCP (Model Context Protocol) server exposing the GDEX (Geoscience Data Exchange) REST API as tools for LLM clients — dataset discovery/metadata, file listings, data access links, ARCO variables, portal/dataset metrics, staff contacts, and authenticated subsetting-request workflows.

Running locally

pip install -e .
gdex-mcp

Then point your MCP client (Claude Desktop, Claude Code, etc.) at the gdex-mcp command. Configuration is via environment variables or a .env file — see CLAUDE.md's Configuration section. Most tools need no configuration at all; set GDEX_TOKEN only if you'll use the subsetting-request tools (list_request_statuses, check_request_status, get_request_files, submit_subset_request, submit_and_wait_for_request, purge_request).

Running as a shared service

Set GDEX_MCP_TRANSPORT=streamable-http (see Dockerfile) to run this as a network-reachable service instead of a local stdio subprocess. In that mode, callers using the subsetting-request tools pass their own GDEX token as an Authorization: Token <token> header on each request rather than relying on a shared GDEX_TOKEN — see CLAUDE.md's "Two transports" section for how that's wired.

Docker

# Build the image
docker build -t gdex-mcp .

# Run the container
docker run -d --name gdex-mcp -p 8080:8080 gdex-mcp

MCP requests go to http://localhost:8080/mcp.

# Stop and remove the container
docker stop gdex-mcp && docker rm gdex-mcp

Deployment

A merged PR to main triggers the GitHub Actions workflow, which runs the test suite (pip install -e ".[test]" && pytest) and then builds a new Docker image and pushes it to Harbor (hub.k8s.ucar.edu/gdex_mcp/gdex-mcp). The app is deployed to Kubernetes via the Helm chart in app-chart/ — see CLAUDE.md's Deployment section for how this follows gdex-web-services' conventions.

# Deploy with Helm
helm upgrade --install gdex-mcp ./app-chart -n <namespace>

# Deploy a test instance
helm upgrade --install gdex-mcp ./app-chart -n <namespace> --set testName=<your-name>

Documentation

CLAUDE.md has the full picture: architecture, conventions to follow when adding tools, the two transport modes, and deployment. Read it before making changes here.

Advanced
Delivery
gdex-mcp MCP server → your ahel gateway (mcp.ahel.ai) → every connected AI client.
Catalog kind
mcp-server
Gateway key
io-github-rpconroy-gdex-mcp
Source
github.com/NCAR/gdex-mcp
Hosted endpoint
https://gdex-mcp.k8s.ucar.edu/mcp