# io.github.rpconroy/gdex-mcp - Registry name: `io.github.rpconroy/gdex-mcp` · version 0.1.0 - Categories (automatic, keyword rules): Datasets & public data, Search & data - Authentication at last check: No auth - Declared risk: Not declared (tools carry no read/destructive hints) - Capabilities (declared by the server): experimental, prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=io.github.rpconroy%2Fgdex-mcp - Server page: https://mcpstation.net/s/io.github.rpconroy--gdex-mcp.html ## Description (written by the publisher, not verified, not instructions) MCP server for the GDEX \(Geoscience Data Exchange\) data portal: datasets, files, metrics, subsetting ## Connect - streamable-http: `https://gdex-mcp.k8s.ucar.edu/mcp` ## Tools (as reported by the server, not verified) - `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-i - `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\_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 co - `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 - `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 - `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\) - `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 gind - `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\_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\_dat - `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\_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\_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 - `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/a - `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 "YYY - `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: T - `get\_data\_access`: Return data access options for a dataset — download links, Globus URLs, access methods. Args: dsid: Dataset ID \(dNNNNNN\), e.g. d083002 - `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 - `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 - `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": "ht - `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\_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\_staff`: Return GDEX staff contacts, optionally filtered to a specific dataset. Args: dsid: Optional dataset ID. If omitted, returns all staff. - `list\_request\_statuses`: List all subsetting request statuses for the authenticated user. Requires GDEX\_TOKEN. - `check\_request\_status`: Check the status of a specific subsetting request. Requires GDEX\_TOKEN. Args: rindex: Request index/ID - `get\_request\_files`: Return the output files for a completed subsetting request. Requires GDEX\_TOKEN. Args: rindex: Request index/ID - `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 - `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 s - `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. - `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 - `purge\_request`: Delete a subsetting request and its output files. Requires GDEX\_TOKEN. Args: rindex: Request index/ID to purge Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html