Skip to content
Agentmart
Submit a tool

Gdex MCP

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

Connector by rpconroy · GitHub account verified by the MCP Registry

IndexedLicense unknownRemote (HTTP)
Write a review

Chalk Labs

Need help deploying Gdex MCP?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install connector/rpconroy-gdex-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Remote endpoint

  • https://gdex-mcp.k8s.ucar.edu/mcp Remote (HTTP)

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

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

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
27 read · 2 write · 1 delete
Secrets
None asked for
Install scripts
Nothing to install (hosted)
Runs as
Hosted (remote endpoint)

Tools by what they do 30

Read from the source code; the running server may list different tools.

Read 27 · Look things up without changing anything.

  • check_request_status
  • describe_dataset
  • find_dataset_files
  • get_arco_variables
  • get_control_file_template
  • get_data_access
  • get_dataset_field
  • get_dataset_files
  • get_dataset_metadata
  • get_dataset_metrics
  • get_file_groups
  • get_filesearch_cyclone_fix_files
Show 15 more tools
  • get_filesearch_cyclone_fix_filters
  • get_filesearch_datatypes
  • get_filesearch_grid_files
  • get_filesearch_grid_filters
  • get_filesearch_result_page
  • get_filesearch_sensor_files
  • get_filesearch_sensor_filters
  • get_portal_metrics
  • get_request_files
  • get_staff
  • has_arco
  • list_datasets
  • list_request_statuses
  • search_arco_variables
  • validate_subset_request

Write 2 · Create, change, send or run things.

  • submit_and_wait_for_request
  • submit_subset_request

Delete 1 · Delete, drop, revoke or wipe things.

  • purge_request

Network hosts it talks to 1

  • gdex-mcp.k8s.ucar.edu · found in remote endpoint, install command

Tools (30)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • check_request_status

    Check the status of a specific subsetting request. Requires GDEX_TOKEN. Args: rindex: Request index/ID

  • describe_dataset

    Return a combined overview of a dataset — abstract, temporal coverage, spatial coverage, variables, data formats, and volume — in a single call. Prefer this over calling get_dataset_field repeatedly when the user wants a general summary of a dataset. If one of the underlying fields fails to load, it's returned as {"error": ...} rather than failing the whole call. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002

  • find_dataset_files

    Search a dataset's file-group hierarchy for files matching a name pattern (e.g. a date like "20220808"), without ever pulling a large, context-blowing file listing. Automates the pattern described in get_file_groups: recursively calls get_file_groups, descending into every child gindex, until a gindex returns no further children (a leaf group) — then calls get_dataset_files there with filter_wfile=name_pattern and keeps only the matches. Prefer this over manually drilling with get_file_groups/get_dataset_files when you don't already know roughly where in the hierarchy to look. A dataset's hi…

  • get_arco_variables

    Return the list of ARCO variables available for a dataset. Each row's type (index 2) is either "zarr" or "reference" (kerchunk). A "reference" variable is often listed multiple times, once per kerchunk reference variant (plain, "-remote-https", "-remote-osdf", etc.) — always pick the "-osdf" variant's URL; the others' chunk targets can be internal paths that only resolve on NCAR's network. Open it with xr.open_dataset(url, engine="kerchunk", storage_options={"remote_protocol": "https", "lazy": True}) — that's better behaved than hand-building an fsspec reference filesystem. A "zarr" row needs…

  • get_control_file_template

    Return the control file template for building a subsetting request for a dataset. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002

  • get_data_access

    Return data access options for a dataset — download links, Globus URLs, access methods. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002

  • get_dataset_field

    Return one metadata field for a dataset. Prefer describe_dataset when the user wants a general summary covering several of these at once (abstract, temporal, spatial_coverage, variables, data_formats, volume) — this tool is for pulling a single field, including the fields describe_dataset doesn't cover (publications, contributors, related_datasets, documentation). Args: dsid: Dataset ID (dNNNNNN), e.g. d083002 field: One of: abstract, variables, temporal, spatial_coverage, publications, contributors, data_formats, volume, related_datasets, documentation

  • get_dataset_files

    Return a paginated file listing for a dataset or a specific group. Depending on how deep gindex is in the group hierarchy, this returns either actual file rows or another layer of subgroup summaries — there's no way to tell in advance which you'll get. If you get subgroups, read the gindex (or url) off a row and call again with that gindex to go one level deeper; gindex values are dataset-specific and can't be guessed. A shallow gindex on a large dataset can return a very large response (thousands of files) — the file-row portion of the response is capped at 500 rows (look for "_truncated": …

  • get_dataset_metadata

    Return full metadata for a GDEX dataset (parameters, temporal range, spatial coverage, etc.). Args: dsid: Dataset ID (dNNNNNN), e.g. d083002

  • get_dataset_metrics

    Return a per-dataset metric. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002 metric: One of: users_month, users_year, volume_month, volume_year

  • get_file_groups

    Return file groups for a dataset. Pass gindex to get child groups under a parent. Groups nest (dataset -> format -> year -> month, or similar, varying by dataset) and there's no way to predict a child's gindex in advance — each group's gindex/url is dataset-specific and only knowable from the parent response. To drill down, read the gindex (or url) off a row in this response and pass that as the next call's gindex. This never returns file rows, only groups — every response stays small regardless of how many files the dataset holds, unlike get_dataset_files. Descend until a call returns empty…

  • get_filesearch_cyclone_fix_files

    Search for data files containing "cyclone_fix" datatype data, optionally filtered by time range. Results are paginated; use get_filesearch_result_page with the returned result_id to fetch additional pages. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002 valid_datetime_min: Restrict to data valid on/after "YYYY-MM-DD HH:MM" valid_datetime_max: Restrict to data valid on/before "YYYY-MM-DD HH:MM"

  • get_filesearch_cyclone_fix_filters

    Return the valid date range and other filters for "cyclone_fix" datatype file search on a dataset. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002 valid_datetime_min: Restrict to data valid on/after "YYYY-MM-DD HH:MM" valid_datetime_max: Restrict to data valid on/before "YYYY-MM-DD HH:MM"

  • get_filesearch_datatypes

    Return the file-search datatypes available for a dataset (a subset of "grid", "cyclone_fix", "sensor"). Call this before the other filesearch_* tools to know which one(s) apply — a dataset only supports search for the datatypes it actually contains. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002

  • get_filesearch_grid_files

    Search for data files containing "grid" datatype data, filtered by parameter code(s) and optionally by time range, product, grid, or level. Results are paginated; use get_filesearch_result_page with the returned result_id to fetch additional pages. Use get_filesearch_grid_filters first to find valid parameter/product/grid/level codes for this dataset. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002 parameters: Parameter code(s) to search for (required, at least one) valid_datetime_min: Restrict to data valid on/after "YYYY-MM-DD HH:MM" valid_datetime_max: Restrict to data valid…

Show 15 more tools
  • get_filesearch_grid_filters

    Return the valid parameter/product/grid/level codes and date range for "grid" datatype file search on a dataset. Use this to discover the codes to pass to get_filesearch_grid_files, optionally narrowed by any filters you already know you want. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002 valid_datetime_min: Restrict to data valid on/after "YYYY-MM-DD HH:MM" valid_datetime_max: Restrict to data valid on/before "YYYY-MM-DD HH:MM" parameters: Restrict to specified parameter code(s) products: Restrict to specified product code(s) grids: Restrict to specified grid code(s)…

  • get_filesearch_result_page

    Return a page of results from a previous get_filesearch_*_files call, by its result_id. Use this to page through file-search results beyond the first page (see the "pagination" block of a files/results response for num_pages and next_page). Args: dsid: Dataset ID (dNNNNNN), e.g. d083002 result_id: The result_id from a previous filesearch files/results response page_num: Page number to retrieve

  • get_filesearch_sensor_files

    Search for data files containing "sensor" datatype data, optionally filtered by date range. Results are paginated; use get_filesearch_result_page with the returned result_id to fetch additional pages. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002 valid_date_min: Restrict to data valid on/after "YYYY-MM-DD" valid_date_max: Restrict to data valid on/before "YYYY-MM-DD"

  • get_filesearch_sensor_filters

    Return the valid date range and other filters for "sensor" datatype file search on a dataset. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002 valid_date_min: Restrict to data valid on/after "YYYY-MM-DD" valid_date_max: Restrict to data valid on/before "YYYY-MM-DD"

  • get_portal_metrics

    Return a GDEX portal-wide metric. Args: metric: One of: volume_downloaded, unique_users, total_datasets, total_citations, gdex_volume, total_requests, top_datasets, ai_datasets

  • get_request_files

    Return the output files for a completed subsetting request. Requires GDEX_TOKEN. Args: rindex: Request index/ID

  • get_staff

    Return GDEX staff contacts, optionally filtered to a specific dataset. Args: dsid: Optional dataset ID. If omitted, returns all staff.

  • has_arco

    Check whether Analysis-Ready Cloud-Optimized (ARCO) data is available for a dataset. For analysis tasks, call this (and check for a "Kerchunk Reference Files" group via get_file_groups) before reaching for raw data files — reading through ARCO/kerchunk references avoids downloading whole files just to subset them. When picking among kerchunk reference variants, always use the one with "-osdf" in its name (see get_arco_variables) — other variants' chunk targets can be internal paths that only resolve on NCAR's network. Open it with xr.open_dataset(url, engine="kerchunk", storage_options={"remo…

  • list_datasets

    List datasets available on GDEX, with their IDs and titles. The full catalog has ~1700 datasets — far too many to return at once. Always pass `query` to filter by keyword unless the user specifically wants to browse the whole catalog page by page. Args: query: Keyword(s) to filter by, matched case-insensitively as a substring against dataset id and title. Leave empty to browse unfiltered. limit: Max number of datasets to return (default 50, capped at 500) offset: Number of matching datasets to skip, for paging through results

  • list_request_statuses

    List all subsetting request statuses for the authenticated user. Requires GDEX_TOKEN.

  • purge_request

    Delete a subsetting request and its output files. Requires GDEX_TOKEN. Args: rindex: Request index/ID to purge

  • search_arco_variables

    Search ARCO variables by name for a dataset. As with get_arco_variables, a "reference" (kerchunk) match is often listed once per variant — always pick the "-osdf" variant's URL (reachable from anywhere), and open it with xr.open_dataset(url, engine="kerchunk", storage_options={"remote_protocol": "https", "lazy": True}). A "zarr" match needs no variant picking — its URL already routes through the OSDF director (rewritten automatically); open it directly with xr.open_dataset(url, engine="zarr"). Args: dsid: Dataset ID (dNNNNNN), e.g. d083002 query: Search text to match against variable…

  • submit_and_wait_for_request

    Submit a subset request and poll its status until it finishes, fails, or timeout_s elapses — instead of calling submit_subset_request and then manually looping on check_request_status. Requires GDEX_TOKEN. GDEX's API schema doesn't document the exact status vocabulary, so "finished" is a best-effort match on the status text (words like "complete" vs. "error"/"fail"). If the outcome comes back "timeout", that means the request is still pending by our reading, not that it failed — keep polling with check_request_status(rindex), or re-run this tool with a longer timeout_s. If it comes back "unkn…

  • submit_subset_request

    Submit a data subset request to GDEX. Requires GDEX_TOKEN. Args: request_json: JSON string of the subsetting request body. Use get_control_file_template to get the expected structure for a dataset, or validate_subset_request to check it before submitting.

  • validate_subset_request

    Check a subset request body against the dataset's control file template, without submitting anything. Use this before submit_subset_request to catch missing or unrecognized fields fast, instead of finding out from a failed API call. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002 request_json: JSON string of the subsetting request body to validate

Signals

Stars
0
Forks
0
Open issues
0
Last commit
Oct 1, 2026 (29 days ago)
Last release
Sep 24, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.rpconroy/gdex-mcp
Version
0.1.0
Auth
Auth not stated
License
License unknown
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get Gdex MCP running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying Gdex MCP?

CallGet help
Cite this page

Gdex MCP. Agent Mart. https://agentmart.dev/connectors/rpconroy-gdex-mcp (last updated 2026-10-24)