search_datasets

Pack: datagov · Endpoint: https://gateway.pipeworx.io/datagov/mcp

No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/search_datasets for the schema, then POST the same URL with its arguments for the data.

Search U.S. government open datasets on Data.gov by keyword. Returns titles, descriptions, organizations, formats, and download URLs. Example: search_datasets(“climate change”, organization: “noaa-gov”).

Parameters

NameTypeRequiredDescription
querystringyesSearch keywords (e.g., “climate change”, “census population”)
organizationstringnoFilter by organization slug (e.g., “noaa-gov”, “epa-gov”, “nasa-gov”)
tagsstringnoFilter by tag (e.g., “health”, “environment”)

Example call

Arguments

{
  "query": "climate change temperature"
}

curl

curl -X POST https://gateway.pipeworx.io/datagov/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_datasets","arguments":{"query":"climate change temperature"}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('search_datasets', {
  "query": "climate change temperature"
});

More examples

{
  "query": "census population",
  "organization": "census-gov",
  "tags": "demographics"
}

Response shape

Always returns: datasets, returned, has_more

FieldTypeDescription
datasetsarray
returnednumberDatasets returned in this page. The upstream provides NO corpus total — it is cursor-paginated — so no total is reported rather than a fabricated one.
has_morebooleanTrue when the upstream returned a continuation cursor.
Full JSON Schema
{
  "type": "object",
  "properties": {
    "datasets": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "string",
              "null"
            ],
            "description": "Dataset unique identifier"
          },
          "name": {
            "type": [
              "string",
              "null"
            ],
            "description": "Dataset name slug"
          },
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "Human-readable dataset title"
          },
          "description": {
            "type": "string",
            "description": "Dataset description (truncated to 300 chars)"
          },
          "organization": {
            "type": [
              "string",
              "null"
            ],
            "description": "Publishing organization name"
          },
          "formats": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Available file formats in the dataset"
          },
          "modified": {
            "type": [
              "string",
              "null"
            ],
            "description": "ISO timestamp of last metadata modification"
          }
        },
        "required": []
      }
    },
    "returned": {
      "type": "number",
      "description": "Datasets returned in this page. The upstream provides NO corpus total — it is cursor-paginated — so no total is reported rather than a fabricated one."
    },
    "has_more": {
      "type": "boolean",
      "description": "True when the upstream returned a continuation cursor."
    }
  },
  "required": [
    "datasets",
    "returned",
    "has_more"
  ]
}

Connect

Add this to your MCP client config, or use one-click install buttons:

{
  "mcpServers": {
    "datagov": {
      "url": "https://gateway.pipeworx.io/datagov/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build September 22, 2026