query_dataset
Query Australian Bureau of Statistics datasets using SDMX-ML API to retrieve and analyze statistical data with optional filtering capabilities.
Instructions
Query a specific ABS dataset with optional filters
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| datasetId | Yes | ID of the dataset to query (e.g., C21_G01_LGA) |
Implementation Reference
- src/index.ts:50-82 (handler)The handler function for CallToolRequestSchema that implements the logic for the 'query_dataset' tool, including validation, API call to ABS, and response formatting.server.setRequestHandler(CallToolRequestSchema, async (request) => { try { const { name, arguments: args } = request.params; if (name !== "query_dataset") { throw new Error(`Unknown tool: ${name}`); } if (!args?.datasetId || typeof args.datasetId !== "string") { throw new Error("datasetId is required and must be a string"); } const url = `${ABS_API_BASE}/data/${args.datasetId}/all?format=json&dimensionAtObservation=AllDimensions`; try { const response = await axios.get(url); return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] }; } catch (error) { if (error instanceof AxiosError && error.response) { throw new Error(`ABS API Error: ${error.response.status} - ${JSON.stringify(error.response.data)}`); } throw error; } } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); throw new Error(`Error querying dataset: ${errorMessage}`); } });
- src/index.ts:29-48 (registration)Registers the 'query_dataset' tool in the ListToolsRequestSchema handler by including it in the tools list.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [ { name: "query_dataset", description: "Query a specific ABS dataset with optional filters", inputSchema: { type: "object", required: ["datasetId"], properties: { datasetId: { type: "string", description: "ID of the dataset to query (e.g., C21_G01_LGA)" } } } } ] }; });
- src/index.ts:35-44 (schema)Input schema definition for the 'query_dataset' tool, specifying the required 'datasetId' parameter.inputSchema: { type: "object", required: ["datasetId"], properties: { datasetId: { type: "string", description: "ID of the dataset to query (e.g., C21_G01_LGA)" } } }