Netherlands Open Data (data.overheid.nl/data) CKAN MCP. Dutch national & local government open data via the CKAN Action API. Keyless access to search datasets, retrieve full metadata, and query tabular resources.
Three tools with clear verb-noun naming (search_datasets, dataset, query_resource) and reasonable descriptions (120-180 chars). All have input schemas with type definitions and required fields properly marked. However, parameter descriptions lack actionable constraints (no enums, ranges, or format specs), output schemas are undocumented, and error handling is minimal. No tool annotations (readOnlyHint, etc.). Descriptions are adequate but generic, they state WHAT but not WHEN or WHY to use each tool. Parameter descriptions are present but sparse (avg ~40 chars vs baseline 72 chars). No guidance on chaining tools or handling failures.
Show full metadata for one Netherlands Open Data dataset by id or name (from search_datasets), including all resources and their resource_ids.
Pull rows from a tabular Netherlands Open Data resource (CKAN DataStore) by resource_id (from a dataset's resources). Optional full-text q, limit, offset. Note: only resources with the DataStore enabled are queryable.
Search Netherlands Open Data (Netherlands) for datasets by keyword. Returns each dataset's id/name, title, organization, and its resources (each with a resource_id for query_resource).
Output schemas undocumented. LLMs cannot predict response structure (fields, types, pagination). Forces trial-and-error parsing and wastes tokens on unstructured output.
Parameter descriptions lack actionable constraints. 'Max datasets (1-100, default 20)' is good, but 'Keyword(s); blank/"*" lists all' is vague. No enums, regex patterns, or format specs. LLMs may pass invalid values.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All three tools are read-only, but this is not declared in the schema. Agents cannot distinguish safe tools from destructive ones.
Error handling is minimal. callTool() throws generic Error objects with no recovery guidance. 'Unknown tool: X' and 'Required argument missing' give LLMs no actionable next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
No tool chaining hints. Descriptions do not explain that search_datasets returns resource_ids for query_resource, or that dataset() accepts names from search_datasets. Agents must infer the workflow.