MCP Hub
Back to servers

dutch-gov-mcp

An unofficial MCP server providing access to Dutch government open data from data.overheid.nl, CBS statistics, and KVK business registry. Enables natural language queries for discovering datasets, inspecting metadata, and querying data without API keys or authentication.

glama
Updated
Apr 16, 2026

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.

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.

ToolPurpose
search_datasetsFull-text search with optional Solr filters
get_datasetFull metadata for one dataset
list_resourcesFiles in a dataset
get_resourceDetails for a specific file
list_organizationsBrowse publishers
get_organizationDetails for one publisher
list_tagsBrowse available tags

CBS — Centraal Bureau voor de Statistiek (5 tools)

Official Dutch statistics via OData v4: population, economy, trade, housing, labor.

ToolPurpose
search_cbs_datasetsSearch the CBS catalog
get_cbs_datasetDataset metadata + dimension list
get_cbs_dimensionsDimension definitions with sample values
query_cbs_dataQuery observations with $select, $filter, pagination
list_cbs_themesBrowse 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.

ToolPurpose
lookup_companyBasic company info by KVK number
lookup_company_financesFiled 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-server

Examples

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

Reviews

No reviews yet

Sign in to write a review