dutch-gov-mcp
Provides tools for accessing official Dutch statistics from Statistics Netherlands (CBS), including dataset search, metadata inspection, dimension exploration, and data querying with filtering and pagination capabilities.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dutch-gov-mcp show me the latest population statistics for Amsterdam"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
dutch-gov-mcp
Unofficial MCP server for Dutch government open data. Query thousands of public datasets, official statistics, and the business registry from data.overheid.nl, CBS (Statistics Netherlands), and KVK (Chamber of Commerce) directly through AI conversation.
Inspired by France's official MCP server for data.gouv.fr — the first government MCP server. This project brings the same playbook to the Netherlands.
No API key. No auth. 14 tools. Drop it into Claude Desktop and ask.
What you can do
Ask an AI things like:
"What datasets are available about housing prices in the Netherlands?"
"Show me CBS population statistics — what's the dataset identifier and what dimensions does it have?"
"Which Dutch government organizations publish environmental data?"
"Query CBS dataset 83765NED for the first 20 observations about Amsterdam neighborhoods."
"Find unemployment data on both data.overheid.nl and CBS and compare what's available."
The agent discovers datasets, inspects metadata, and queries rows — all through natural conversation.
Related MCP server: satudata-ngawi
Data sources
data.overheid.nl — National Open Data Portal (7 tools)
CKAN-based catalog of thousands of public datasets: tax, real estate, environment, transport, health. CC-0 licensed metadata.
Tool | Purpose |
| Full-text search with optional Solr filters |
| Full metadata for one dataset |
| Files in a dataset |
| Details for a specific file |
| Browse publishers |
| Details for one publisher |
| Browse available tags |
CBS — Centraal Bureau voor de Statistiek (5 tools)
Official Dutch statistics via OData v4: population, economy, trade, housing, labor.
Tool | Purpose |
| Search the CBS catalog |
| Dataset metadata + dimension list |
| Dimension definitions with sample values |
| Query observations with |
| Browse statistical themes |
CBS datasets can contain millions of rows. query_cbs_data returns one page at a time with a next_offset hint — ask for more when you need it.
KVK — Chamber of Commerce (2 tools)
Lookup basic company info and filed financial statements by KVK number. Uses KVK's free open-data endpoints.
Tool | Purpose |
| Basic company info by KVK number |
| Filed financial statement metadata by KVK number |
Limitations (free dataset only):
Lookup by 8-digit KVK number only — no search by name, location, or SBI code (that requires a paid KVK subscription)
Only BV (private limited) and NV (public limited) companies included — no sole proprietorships, VOFs, etc.
Postal codes truncated to the first 2 digits (privacy)
Rate limit: 100 requests per 5 minutes
Installation
Claude Desktop (from PyPI — recommended)
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"dutch-gov-mcp": {
"command": "uvx",
"args": ["dutch-mcp-server"]
}
}
}Restart Claude Desktop. The tools appear in the MCP picker.
Claude Desktop (from source)
{
"mcpServers": {
"dutch-gov-mcp": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/dutch-gov-mcp", "run", "dutch-gov-mcp"]
}
}
}Local development
git clone https://github.com/<you>/dutch-gov-mcp
cd dutch-gov-mcp
uv sync
uv run dutch-gov-mcp # stdio server
uv run pytest -m 'not integration'Python 3.11+ required.
Install from PyPI
pip install dutch-mcp-serverExamples
Search data.overheid.nl:
search_datasets(query="woningen", max_results=3)
→ {"count": 482, "results": [{"name": "...", "title": "Verkoop woningen", "organization": "...", "tags": [...]}]}CBS — find, inspect, query:
search_cbs_datasets(query="bevolking")
→ [{"Identifier": "83765NED", "Title": "Kerncijfers wijken en buurten 2017", ...}]
get_cbs_dimensions(dataset_id="83765NED")
→ [{"Identifier": "WijkenEnBuurten", "Title": "Wijken en buurten", "sample_values": [...]}]
query_cbs_data(dataset_id="83765NED", max_results=5)
→ {"rows": [...], "returned": 5, "total": 1617279, "more_available": true, "next_offset": 5}Future data sources
Planned for future sprints:
RDW — Vehicle registration
Kadaster BAG — Addresses and buildings
PDOK — Geospatial / GIS
Why this exists
France defined what "government AI readiness" looks like. Every government sits on massive public data behind unusable APIs. MCP makes that data accessible to agents. Unofficial, open-source, MIT-licensed.
License
MIT
Available Tools
14 toolsget_cbs_datasetB
Get detailed metadata for a CBS dataset.
Inputs: dataset_id (required). Returns: object
get_cbs_dimensionsC
Get dimension definitions for a CBS dataset.
Dimensions describe what the columns mean and which values they can take.
Inputs: dataset_id (required). Returns: result
get_datasetB
Get detailed metadata for a specific dataset.
Inputs: dataset_id (required). Returns: object
get_organizationB
Get details about a specific publishing organization.
Inputs: organization_id (required), include_datasets. Returns: object
get_resourceC
Get details about a specific file/resource.
Inputs: resource_id (required). Returns: object
list_cbs_themesB
List CBS statistical themes (Arbeid, Bevolking, Economie, etc.).
Inputs: no named parameters. Returns: result
list_organizationsB
List organizations that publish data on data.overheid.nl.
Inputs: include_details. Returns: result
list_resourcesB
List all files and resources in a dataset.
Inputs: dataset_id (required). Returns: result
list_tagsB
List available tags, optionally filtered by a search term.
Inputs: query. Returns: result
lookup_companyA
Look up a Dutch company by KVK number (Chamber of Commerce registry).
Only covers BV (private limited) and NV (public limited) companies in the free open dataset. Postal codes are truncated to the first 2 digits.
Inputs: kvk_number (required). Returns: object
lookup_company_financesB
Look up publicly filed financial statement metadata for a Dutch company.
Only covers BV and NV companies in the free open dataset.
Inputs: kvk_number (required). Returns: object
query_cbs_dataB
Query statistical data from a CBS dataset. Returns observation rows.
Inputs: dataset_id (required), select, filter, max_results, +1 more. Returns: object
search_cbs_datasetsB
Search CBS (Statistics Netherlands) for statistical datasets.
Inputs: query (required), max_results. Returns: result
search_datasetsB
Search Dutch government datasets on data.overheid.nl.
Inputs: query (required), max_results, offset, filter. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 14 tools
Most tools have distinct purposes, such as get_cbs_dataset vs. get_dataset for CBS-specific vs. general metadata, and lookup_company vs. lookup_company_finances for different company data types. However, some overlap exists between search_cbs_datasets and search_datasets, which could cause confusion despite their CBS vs. general focus.
All tool names follow a consistent verb_noun pattern using snake_case, with clear prefixes like 'get_', 'list_', 'lookup_', 'query_', and 'search_' that align with their actions. This uniformity makes the tool set predictable and easy to navigate.
With 14 tools, the server is well-scoped for its domain of Dutch government data access, covering CBS statistics, company lookups, and general dataset searches. Each tool serves a specific function without redundancy, making the count appropriate for the server's purpose.
The tool set provides comprehensive coverage for querying and retrieving Dutch government data, including metadata, dimensions, resources, and statistical queries. A minor gap is the lack of update or delete operations, but this is reasonable for a read-only data access server, and agents can work around this limitation.
Related MCP Connectors
This MCP server provides seamless access to Malaysia's government open data, including datasets, w…
Agent-native MCP server over 49M+ US public and government records, privacy-first, always current.
Hosted MCP server for live public-data APIs and Skills for AI agents.
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
Related MCP Servers
- AlicenseAqualityCmaintenanceAn MCP server for discovering, downloading, querying, and analyzing datasets from Ontario's open data portals, allowing natural language questions and high-performance analytics via DuckDB.231MIT
- AlicenseAqualityDmaintenanceMCP server for accessing Indonesian local government data from Satu Data Ngawi. Enables querying datasets, organizations, categories, and statistics through natural language.66 npmMIT
- AlicenseAqualityDmaintenanceAn MCP server to find and fetch Norwegian open government data from data.norge.no. Enables search, metadata retrieval, and data download.54MIT
- AlicenseNot gradedqualityBmaintenanceEnables querying open data platforms like CKAN via natural language. Provides a configurable MCP server with plugins for different data sources.MIT