dutch-property-context
Integrates CBS neighbourhood statistics and key figures for Dutch addresses, providing demographic and socio-economic data as part of the property context report.
Click on "Install 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-property-contextGet the property report for Herengracht 469, 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 Property Context — MCP & API for Dutch addresses
One address in, one linked property report out. Construction year and floor area from the BAG, the registered energy label, CBS neighbourhood figures, environmental noise and air quality, rijksmonument status, protected city-and-village scope, and schools nearby.
Runs as remote MCP server and as a regular HTTPS API. Free, no API key, no registration.
https://property-context.tradebrite.nl📖 Documentation: https://tradebrite.nl/property-context/
aansluiten in 10 seconds
Claude (web or desktop, any subscription): Customize → Connectors → + →
Add custom connector, paste https://property-context.tradebrite.nl/mcp.
ChatGPT: custom connectors require Developer Mode (Pro/Team/Enterprise/Edu); on Plus it cannot — use the plain HTTP API instead.
Claude Code:
claude mcp add --transport http property-context https://property-context.tradebrite.nl/mcpOr in your MCP configuration (Claude Desktop, Cursor, Windsurf, …):
{
"mcpServers": {
"property-context": {
"type": "http",
"url": "https://property-context.tradebrite.nl/mcp"
}
}
}After that you can ask: “What should I know about Grote Markt 2 in Haarlem before I go view it?”
Prefer just HTTP:
curl "https://property-context.tradebrite.nl/v1/property/context?address=Grote%20Markt%202,%20Haarlem"Related MCP server: homedata-mcp
Why this exists
Ask an AI agent a Dutch address and it turns to the web. That gives an answer that looks good and is sometimes right. The underlying data are public and reliable, but they sit in nine registers, each with its own key, format, and strangeness.
The hardest part is not retrieving but linking, and that went wrong miss after time long enough:
The heritage number we published turned out to be the internal object number. Prinsengracht 263 got a number that in the heritage register points to a property in Zierikzee.
The heritage query was not binding to the place, so an address in Asten was assigned a monument in Coevorden.
Binnenrotte 101, Amsterdammerely without a second had the property in Rotterdam shown back, withmatch_verified = true.
No source was wrong. What was unbek was the link. This layer takes over that work and says explicitly how sure it is about which property we get.
What you get back
One JSON response (~11 KB) with identity, inscription, energy, location,
neighbourhood, environment, heritage, protected locally, schools, signals,
and provenance.
Be aware of
identity.match_verified. When it isfalse, the requested address has not been found with certainty and the rest of the answer may be about another property. Inmatch_ambiguousall the just as good candidates are listed.
signals are observations, never established defects. A construction year of 1921 does not
mean lead pipes — it means it is worth checking.
Signal | Meaning |
| What should be checked for this construction-period cohort |
| Two registers give a different year, both are shown |
| registered label status |
| Consequences for permits |
| the requested address was not found with certainty |
| a source did not respond — unknown, not empty |
What it does not do
No valuation, no property value, no legal or construction advice. No asking price, no ground lease, no VvE information and no ownership history — those are not free.
Design principles
Never fill in a missing value because it seems plausible.
FEIT ≠ SIGNAAL ≠ UNKNOWN.
Register per source, also in
depth=compact— a part of the sources falls under CC BY, and then contributing is a licence condition.Eén MCP-tool, not dozens. Our tool list is 2,419 characters. A broad Dutch open-data MCP that we placed next to it: 55,452 characters for 64 tools.
A broken source stays visible.
A field that is never filled does not belong .
Run it yourself
npm install
python3 scripts/build_school_index.py # bouwt data/schools.json
python3 scripts/build_amenities_index.py # bouwt data/amenities.json
python3 scripts/build_places_index.py # bouwt data/places.json
npx wrangler deploy # vul eerst je account_id in wrangler.toml
node regression.mjs # dertien gevallen tegen de live dienstThe ingredients are deliberately not in the repo: they are derived from sources
with a CC BY licence and can be rebuilt in a few minutes. An EP_ONLINE_KEY (free
to request from RVO) is optional; without that key only the energy label is missing,
nearly as not_configured.
A look at the bundle limit. Above about 3.7 MB, the cold start of a Cloudflare Worker moves from 0.2 to 9 seconds, also on
/health. Performance is isolated in a test. Therefore no fourth index is possible without R2.
Sources and license
BAG (Public Domain Mark 1.0) · EP-Online/RVO (own conditions, no bulk redistribution) · CBS Wijk en Buurt and Core Figures (CC BY 4.0) · RIVM noise and air quality (public domain) · RCE monuments and protected sites (CC BY 4.0) · DUO education addresses (CC BY).
Attribution is mandatory with part of this. That’s why provenance is in every
response.
Pass on that if you show the data to an end user; the obligation goes with the
data.
Code: MIT, see LICENSE.
Privacy
The hosted service does not log addresses, no postal codes and no IP addresses – but it does the municipality (coarse), the signals of the data, and the source status.
Related
Dutch Vehicle Context — the same approach for Dutch vehicles: plate in, MOT history, recurring defect points and the full recall chain out.
Built by Tradebrite BV · info@tradebrite.nl
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceProperty intelligence API for US real estate. Returns 16+ data points for any US address: noise levels, wetlands, slope, natural light, powerline proximity, crime rates, property facing direction, zoning, public record, radon risk, natural hazards (earthquake, flood, wildfire), neighborhood demographics, falling tree risk, RF/cell tower exposure, and nearby school.
- AlicenseAqualityCmaintenanceEnables AI assistants to query UK property data including EPCs, sale history, planning, flood risk, council tax, demographics, and more via the Homedata API.18MIT
- AlicenseAqualityAmaintenanceEnables accessing and querying Dutch government open datasets from CBS and data.overheid.nl, with tools for searching, filtering, downloading, and analyzing data using CSV, Parquet, DuckDB, or Pandas.9MIT
- Flicense-qualityCmaintenanceProvides French address data from DVF, Géorisques, and SSMSI sources, including property prices, risks, and crime statistics.
Related MCP Connectors
U.S. real-estate data: property records, AVM value + rent estimates, sale/rental listings.
Address validation & geocoding for AI agents: 240+ countries, UK PAF, free US/CA enrichment
Flood, wildfire, earthquake, and coastal-storm hazard lookup for a US property.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rleefers/dutch-property-context'
If you have feedback or need assistance with the MCP directory API, please join our Discord server