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
| Name | Type | Required | Description |
|---|---|---|---|
query | string | yes | Search keywords (e.g., “climate change”, “census population”) |
organization | string | no | Filter by organization slug (e.g., “noaa-gov”, “epa-gov”, “nasa-gov”) |
tags | string | no | Filter 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
| Field | Type | Description |
|---|---|---|
datasets | array | |
returned | number | 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 | boolean | True 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.