gdex-mcp
MCP server for the GDEX (Geoscience Data Exchange) data portal: datasets, files, metrics, subsetting
Should I use this
Quality & Safety
Findings (2)
- LOWin get_filesearch_cyclone_fix_filters
- LOWin get_filesearch_cyclone_fix_files
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"gdex-mcp": {
"url": "https://gdex-mcp.k8s.ucar.edu/mcp"
}
}
}Remote endpoints
https://gdex-mcp.k8s.ucar.edu/mcpstreamable-httpWhat it can do
Tool inventory
Tools (30)
🟢list_datasets(query, limit, offset)
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
Input Schema
{
"type": "object",
"properties": {
"query": {
"default": "",
"title": "Query",
"type": "string"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
}
},
"title": "list_datasetsArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "list_datasetsOutput"
}🟢get_dataset_metadata(dsid)
Return full metadata for a GDEX dataset (parameters, temporal range, spatial coverage, etc.). Args: dsid: Dataset ID (dNNNNNN), e.g. d083002
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
}
},
"required": [
"dsid"
],
"title": "get_dataset_metadataArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_dataset_metadataOutput"
}🟢get_dataset_field(dsid, 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
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
}
},
"required": [
"dsid",
"field"
],
"title": "get_dataset_fieldArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_dataset_fieldOutput"
}🟢describe_dataset(dsid)
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
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
}
},
"required": [
"dsid"
],
"title": "describe_datasetArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "describe_datasetOutput"
}🟢get_file_groups(dsid, gindex)
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 ({} or []): that means the gindex you just called with is a leaf with no further subgroups, so it's safe to call get_dataset_files there for the actual files. find_dataset_files automates exactly this walk if you'd rather not do it by hand. At the top level, watch for a "Kerchunk Reference Files" (or similar ARCO-related) group alongside the raw-format groups. For an analysis task, prefer pulling from there (see also has_arco/get_arco_variables) over a raw data file when one's available — it avoids downloading a whole file just to read a subset of it. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002 gindex: Optional group index to fetch child groups
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
},
"gindex": {
"default": "",
"title": "Gindex",
"type": "string"
}
},
"required": [
"dsid"
],
"title": "get_file_groupsArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_file_groupsOutput"
}🟢get_dataset_files(dsid, gindex, page, filter_wfile, fl)
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": true). Two ways to avoid hitting that cap instead of drilling down group by group: pass filter_wfile with a filename pattern (e.g. a date like "20220808") to filter down to matching files, or page through a known group's results with `page`. filter_wfile only filters actual file rows, so it has no effect at a gindex that's still returning a subgroup summary rather than files — if a first attempt comes back unfiltered, descend one level (see get_file_groups) and retry there. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002 gindex: Optional group index to filter files page: Page number to fetch (for a group with more files than fit on one page) filter_wfile: Filter files by name pattern, e.g. "20220808" to match a date fl: File list source (defaults to "web" server-side)
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
},
"gindex": {
"default": "",
"title": "Gindex",
"type": "string"
},
"page": {
"default": 0,
"title": "Page",
"type": "integer"
},
"filter_wfile": {
"default": "",
"title": "Filter Wfile",
"type": "string"
},
"fl": {
"default": "",
"title": "Fl",
"type": "string"
}
},
"required": [
"dsid"
],
"title": "get_dataset_filesArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_dataset_filesOutput"
}🟢find_dataset_files(dsid, name_pattern, start_gindex, max_groups_visited)
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 hierarchy can be large (hundreds of leaf groups), and this tool has no way to know in advance which branches might contain a match, so it may need to visit many groups to be thorough. Pass start_gindex if you already know a good starting point (e.g. from a prior get_file_groups call, or a related dataset's structure) to narrow and speed up the search. If the number of groups visited hits max_groups_visited, the search stops early and `stopped_early` comes back true — narrow with start_gindex and retry, or raise the cap. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002 name_pattern: Filename substring/pattern to match, e.g. "20220808" for a date start_gindex: Optional group index to start the search from, instead of the dataset root max_groups_visited: Safety cap on groups traversed before giving up (default 300)
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
},
"name_pattern": {
"title": "Name Pattern",
"type": "string"
},
"start_gindex": {
"default": "",
"title": "Start Gindex",
"type": "string"
},
"max_groups_visited": {
"default": 300,
"title": "Max Groups Visited",
"type": "integer"
}
},
"required": [
"dsid",
"name_pattern"
],
"title": "find_dataset_filesArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "find_dataset_filesOutput"
}🟢get_filesearch_datatypes(dsid)
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
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
}
},
"required": [
"dsid"
],
"title": "get_filesearch_datatypesArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_filesearch_datatypesOutput"
}🟢get_filesearch_grid_filters(dsid, valid_datetime_min, valid_datetime_max, parameters, products, ...)
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) levels: Restrict to specified vertical level code(s)
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
},
"valid_datetime_min": {
"default": "",
"title": "Valid Datetime Min",
"type": "string"
},
"valid_datetime_max": {
"default": "",
"title": "Valid Datetime Max",
"type": "string"
},
"parameters": {
"default": [],
"items": {
"type": "string"
},
"title": "Parameters",
"type": "array"
},
"products": {
"default": [],
"items": {
"type": "string"
},
"title": "Products",
"type": "array"
},
"grids": {
"default": [],
"items": {
"type": "string"
},
"title": "Grids",
"type": "array"
},
"levels": {
"default": [],
"items": {
"type": "string"
},
"title": "Levels",
"type": "array"
}
},
"required": [
"dsid"
],
"title": "get_filesearch_grid_filtersArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_filesearch_grid_filtersOutput"
}🟢get_filesearch_cyclone_fix_filters(dsid, valid_datetime_min, valid_datetime_max)
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"
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
},
"valid_datetime_min": {
"default": "",
"title": "Valid Datetime Min",
"type": "string"
},
"valid_datetime_max": {
"default": "",
"title": "Valid Datetime Max",
"type": "string"
}
},
"required": [
"dsid"
],
"title": "get_filesearch_cyclone_fix_filtersArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_filesearch_cyclone_fix_filtersOutput"
}🟢get_filesearch_sensor_filters(dsid, valid_date_min, valid_date_max)
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"
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
},
"valid_date_min": {
"default": "",
"title": "Valid Date Min",
"type": "string"
},
"valid_date_max": {
"default": "",
"title": "Valid Date Max",
"type": "string"
}
},
"required": [
"dsid"
],
"title": "get_filesearch_sensor_filtersArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_filesearch_sensor_filtersOutput"
}🟢get_filesearch_grid_files(dsid, parameters, valid_datetime_min, valid_datetime_max, products, ...)
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 on/before "YYYY-MM-DD HH:MM" products: Restrict to specified product code(s) grids: Restrict to specified grid code(s) levels: Restrict to specified vertical level code(s)
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
},
"parameters": {
"items": {
"type": "string"
},
"title": "Parameters",
"type": "array"
},
"valid_datetime_min": {
"default": "",
"title": "Valid Datetime Min",
"type": "string"
},
"valid_datetime_max": {
"default": "",
"title": "Valid Datetime Max",
"type": "string"
},
"products": {
"default": [],
"items": {
"type": "string"
},
"title": "Products",
"type": "array"
},
"grids": {
"default": [],
"items": {
"type": "string"
},
"title": "Grids",
"type": "array"
},
"levels": {
"default": [],
"items": {
"type": "string"
},
"title": "Levels",
"type": "array"
}
},
"required": [
"dsid",
"parameters"
],
"title": "get_filesearch_grid_filesArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_filesearch_grid_filesOutput"
}🟢get_filesearch_cyclone_fix_files(dsid, valid_datetime_min, valid_datetime_max)
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"
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
},
"valid_datetime_min": {
"default": "",
"title": "Valid Datetime Min",
"type": "string"
},
"valid_datetime_max": {
"default": "",
"title": "Valid Datetime Max",
"type": "string"
}
},
"required": [
"dsid"
],
"title": "get_filesearch_cyclone_fix_filesArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_filesearch_cyclone_fix_filesOutput"
}🟢get_filesearch_sensor_files(dsid, valid_date_min, valid_date_max)
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"
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
},
"valid_date_min": {
"default": "",
"title": "Valid Date Min",
"type": "string"
},
"valid_date_max": {
"default": "",
"title": "Valid Date Max",
"type": "string"
}
},
"required": [
"dsid"
],
"title": "get_filesearch_sensor_filesArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_filesearch_sensor_filesOutput"
}🟢get_filesearch_result_page(dsid, result_id, page_num)
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
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
},
"result_id": {
"title": "Result Id",
"type": "string"
},
"page_num": {
"title": "Page Num",
"type": "integer"
}
},
"required": [
"dsid",
"result_id",
"page_num"
],
"title": "get_filesearch_result_pageArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_filesearch_result_pageOutput"
}🟢get_data_access(dsid)
Return data access options for a dataset — download links, Globus URLs, access methods. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
}
},
"required": [
"dsid"
],
"title": "get_data_accessArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_data_accessOutput"
}🟢has_arco(dsid)
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={"remote_protocol": "https", "lazy": True}) rather than hand-building an fsspec reference filesystem. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
}
},
"required": [
"dsid"
],
"title": "has_arcoArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "has_arcoOutput"
}🟢get_arco_variables(dsid)
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 no variant picking — its URL already routes through the OSDF director (rewritten automatically); open it directly with xr.open_dataset(url, engine="zarr"). Results are capped at 300 rows (look for "truncated": true); narrow with search_arco_variables if you hit the cap. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
}
},
"required": [
"dsid"
],
"title": "get_arco_variablesArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_arco_variablesOutput"
}🟢search_arco_variables(dsid, query)
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 names
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
},
"query": {
"title": "Query",
"type": "string"
}
},
"required": [
"dsid",
"query"
],
"title": "search_arco_variablesArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "search_arco_variablesOutput"
}🟢get_portal_metrics(metric)
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
Input Schema
{
"type": "object",
"properties": {
"metric": {
"default": "top_datasets",
"title": "Metric",
"type": "string"
}
},
"title": "get_portal_metricsArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_portal_metricsOutput"
}🟢get_dataset_metrics(dsid, metric)
Return a per-dataset metric. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002 metric: One of: users_month, users_year, volume_month, volume_year
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
},
"metric": {
"default": "volume_year",
"title": "Metric",
"type": "string"
}
},
"required": [
"dsid"
],
"title": "get_dataset_metricsArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_dataset_metricsOutput"
}🟢get_staff(dsid)
Return GDEX staff contacts, optionally filtered to a specific dataset. Args: dsid: Optional dataset ID. If omitted, returns all staff.
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"default": "",
"title": "Dsid",
"type": "string"
}
},
"title": "get_staffArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_staffOutput"
}🟢list_request_statuses
List all subsetting request statuses for the authenticated user. Requires GDEX_TOKEN.
Input Schema
{
"type": "object",
"properties": {},
"title": "list_request_statusesArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "list_request_statusesOutput"
}🟢check_request_status(rindex)
Check the status of a specific subsetting request. Requires GDEX_TOKEN. Args: rindex: Request index/ID
Input Schema
{
"type": "object",
"properties": {
"rindex": {
"title": "Rindex",
"type": "string"
}
},
"required": [
"rindex"
],
"title": "check_request_statusArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "check_request_statusOutput"
}🟢get_request_files(rindex)
Return the output files for a completed subsetting request. Requires GDEX_TOKEN. Args: rindex: Request index/ID
Input Schema
{
"type": "object",
"properties": {
"rindex": {
"title": "Rindex",
"type": "string"
}
},
"required": [
"rindex"
],
"title": "get_request_filesArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_request_filesOutput"
}🟢get_control_file_template(dsid)
Return the control file template for building a subsetting request for a dataset. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
}
},
"required": [
"dsid"
],
"title": "get_control_file_templateArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_control_file_templateOutput"
}🟡validate_subset_request(dsid, request_json)
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
Input Schema
{
"type": "object",
"properties": {
"dsid": {
"title": "Dsid",
"type": "string"
},
"request_json": {
"title": "Request Json",
"type": "string"
}
},
"required": [
"dsid",
"request_json"
],
"title": "validate_subset_requestArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "validate_subset_requestOutput"
}🟡submit_subset_request(request_json)
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.
Input Schema
{
"type": "object",
"properties": {
"request_json": {
"title": "Request Json",
"type": "string"
}
},
"required": [
"request_json"
],
"title": "submit_subset_requestArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "submit_subset_requestOutput"
}🟡submit_and_wait_for_request(request_json, poll_interval_s, timeout_s)
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 "unknown", the status payload didn't contain a field we recognize; inspect the raw "status" value yourself. Args: request_json: JSON string of the subsetting request body (see get_control_file_template). poll_interval_s: Seconds between status checks (default 15, minimum 5). timeout_s: Give up and return the last-seen status after this many seconds (default 600).
Input Schema
{
"type": "object",
"properties": {
"request_json": {
"title": "Request Json",
"type": "string"
},
"poll_interval_s": {
"default": 15,
"title": "Poll Interval S",
"type": "integer"
},
"timeout_s": {
"default": 600,
"title": "Timeout S",
"type": "integer"
}
},
"required": [
"request_json"
],
"title": "submit_and_wait_for_requestArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "submit_and_wait_for_requestOutput"
}🔴purge_request(rindex)
Delete a subsetting request and its output files. Requires GDEX_TOKEN. Args: rindex: Request index/ID to purge
Input Schema
{
"type": "object",
"properties": {
"rindex": {
"title": "Rindex",
"type": "string"
}
},
"required": [
"rindex"
],
"title": "purge_requestArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "purge_requestOutput"
}Community
Evidence