Factline Netherlands
by snefhew · remote · no sign-in to list tools · v0.9.0 · published by GitHub user snefhew
Dutch addresses, neighbourhoods, crime, flood risk, rent check, schools and home prices.
16 tools: 14 change things and 2 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things14Claude Code: ask: see these tools
- Only reads2Claude Code: allow: see these tools
6 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http factline-nl https://factline.dev/mcp/nlFindings
Matches of fixed checks, with the text they matched.
The server marks "nl_neighbourhood_summary" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
The server marks "buy_full_address_report" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "return": a word for reading.
- Warnnl_neighbourhood
The server marks "nl_neighbourhood" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
- Warnnl_energy_label
The server marks "nl_energy_label" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "nl_energy_label" says "label": a word for a change.
- Warnnl_crime
The server marks "nl_crime" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
- Warnnl_house_prices
The server marks "nl_house_prices" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
16 tools
Changes things 14Claude Code: ask
buy_full_address_reportReturns a secure payment link (iDEAL or card, via Dodo Payments, EUR 2.95 incl.1 finding
Why it is in this group
- The description's first verb is "return": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "buy_full_address_report" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "return": a word for reading.
Description, as the server wrote it Returns a secure payment link (iDEAL or card, via Dodo Payments, EUR 2.95 incl. VAT) for the full English report on a Dutch address: crime vs national rate, noise and air quality, flood probability, ground height, monuments, permits, amenities, liveability breakdown and home-value trend. The report opens right after payment. Only use when the user wants the full report or asks to buy it.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: true
- idempotentHint: false
- title: Buy the full address report
nl_address_batchUse when enriching a list of Dutch addresses (up to 10 per call, 0.0015 USDC each): official BAG address and coordinates, CBS neighbourhood, liveability percentile, crime per 1,000…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when enriching a list of Dutch addresses (up to 10 per call, 0.0015 USDC each): official BAG address and coordinates, CBS neighbourhood, liveability percentile, crime per 1,000 residents vs national, average home value and optionally the energy label. Unfound addresses are flagged, not charged extra. Costs 0.015 USDC via x402, or 8 credits of a Factline API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
- idempotentHint: true
- title: Enrich up to 10 Dutch addresses (paid)
nl_address_reverseUse when you have coordinates in the Netherlands and need the address: nearest official BAG address with distance in metres, postcode, city, municipality, province, BAG ids and CBS…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you have coordinates in the Netherlands and need the address: nearest official BAG address with distance in metres, postcode, city, municipality, province, BAG ids and CBS buurt and wijk codes, plus other nearby addresses. Input: WGS84 latitude and longitude. Source: Kadaster BAG via PDOK. Costs 0.002 USDC via x402, or 1 credit of a Factline API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
- idempotentHint: true
- title: Reverse geocode Dutch coordinates (paid)
nl_crimeUse when the user asks whether a Dutch neighbourhood or postcode is safe: police-registered crime per 1,000 residents vs the national rate, split into burglary, bicycle theft, vehi…1 finding
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "nl_crime" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Use when the user asks whether a Dutch neighbourhood or postcode is safe: police-registered crime per 1,000 residents vs the national rate, split into burglary, bicycle theft, vehicle crime, violence and vandalism, with counts and a ratio. Input: Dutch postcode or CBS buurt code. Source: Politie open data, CBS. Costs 0.003 USDC via x402, or 2 credits of a Factline API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
- idempotentHint: true
- title: Crime in a Dutch neighbourhood (paid)
nl_energy_labelUse when the user asks for the energy label of a Dutch home: the officially registered label (A++++ to G), registration and expiry date, building type and energy index, or a clear …1 finding
Why it is in this group
- The name "nl_energy_label" says "label": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "nl_energy_label" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "nl_energy_label" says "label": a word for a change.
Description, as the server wrote it Use when the user asks for the energy label of a Dutch home: the officially registered label (A++++ to G), registration and expiry date, building type and energy index, or a clear 'none registered'. Input: postcode + house number. Source: RVO EP-Online, the Dutch national register. Costs 0.005 USDC via x402, or 3 credits of a Factline API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
- idempotentHint: true
- title: Energy label of a Dutch home (paid)
nl_flood_riskUse when the user asks if a Dutch address can flood: annual flood probability (any water, over 20, 50 and 200 cm) from Rijkswaterstaat LIWO, 2050 and 2100 climate scenarios, worst-…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when the user asks if a Dutch address can flood: annual flood probability (any water, over 20, 50 and 200 cm) from Rijkswaterstaat LIWO, 2050 and 2100 climate scenarios, worst-case water depth and ground height vs sea level (AHN). Input: postcode + house number. Costs 0.004 USDC via x402, or 2 credits of a Factline API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
- idempotentHint: true
- title: Flood risk for a Dutch address (paid)
nl_home_basicFree.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Free. Use when the user mentions a Dutch address or asks about a home in the Netherlands: year built, floor area, use, neighbourhood residents and average home value, liveability percentile, in English. Accepts postcode + house number or free text. Sources: BAG, CBS, Leefbaarometer.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
- idempotentHint: true
- title: Dutch address facts (free)
nl_home_reportUse when the user asks about a specific Dutch home or address before renting, buying or moving: full English report with year built, floor area, energy label, crime vs national rat…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when the user asks about a specific Dutch home or address before renting, buying or moving: full English report with year built, floor area, energy label, crime vs national rate, noise, air quality (NO2, PM2.5), ground height, monuments, permits, schools, 18 amenity distances, neighbourhood income and home values. Input: postcode + house number. Sources: Kadaster, CBS, Politie, RIVM, RVO. Costs 0.04 USDC via x402, or 20 credits of a Factline API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
- idempotentHint: true
- title: Dutch address report (paid)
nl_house_pricesUse when the user asks what homes cost in a Dutch area: average home value (WOZ) in the neighbourhood with its trend, plus actual average sale prices per year in the municipality v…1 finding
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "nl_house_prices" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Use when the user asks what homes cost in a Dutch area: average home value (WOZ) in the neighbourhood with its trend, plus actual average sale prices per year in the municipality vs the national average. Context for an asking price, not a valuation of one home. Input: postcode or CBS buurt code. Source: CBS, Kadaster. Costs 0.003 USDC via x402, or 2 credits of a Factline API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
- idempotentHint: true
- title: Dutch house prices for a postcode (paid)
nl_neighbourhoodUse when the user asks what a Dutch neighbourhood or postcode area is like: residents and age mix, housing and home values, household income, energy use, distances to 18 amenities,…1 finding
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "nl_neighbourhood" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Use when the user asks what a Dutch neighbourhood or postcode area is like: residents and age mix, housing and home values, household income, energy use, distances to 18 amenities, police-registered crime vs national rate and liveability score, in English. Input: any postcode or CBS buurt code. Sources: CBS, Politie, Leefbaarometer. Costs 0.01 USDC via x402, or 5 credits of a Factline API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
- idempotentHint: true
- title: Dutch neighbourhood profile (paid)
nl_neighbourhood_summaryFree.1 finding
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "nl_neighbourhood_summary" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Free. Use when the user asks what a Dutch neighbourhood or postcode area is like, or whether it is safe: headline facts for a postcode: residents, average home value (WOZ) and the municipality's average sale price, share of owner-occupied homes, liveability percentile, crime per 1,000 residents vs the national rate, and distance to supermarket, GP, primary school and train station. Sources: CBS, Politie, Leefbaarometer.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
- idempotentHint: true
- title: Dutch neighbourhood summary (free)
nl_postcode_addressesUse when you need every address in a Dutch postcode: street, house number, letter and addition, BAG id and coordinates, sorted.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need every address in a Dutch postcode: street, house number, letter and addition, BAG id and coordinates, sorted. For address pickers, delivery and canvassing routes and data cleaning. Source: Kadaster BAG via PDOK. Costs 0.005 USDC via x402, or 3 credits of a Factline API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
- idempotentHint: true
- title: All addresses in a Dutch postcode (paid)
nl_rent_checkUse when a tenant asks if their Dutch rent is too high or what the maximum rent is: estimated rent points (WWS) from floor area, energy label and neighbourhood WOZ, the likely segm…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when a tenant asks if their Dutch rent is too high or what the maximum rent is: estimated rent points (WWS) from floor area, energy label and neighbourhood WOZ, the likely segment (social up to 143 points, middle 144-186, free 187+) and the approximate maximum basic rent (2026 limits). An estimate with a link to the official check. Input: postcode + house number. Costs 0.01 USDC via x402, or 5 credits of a Factline API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
- idempotentHint: true
- title: Rent points estimate for a Dutch home (paid)
nl_schools_nearFree.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Free. Use when the user asks about schools near a Dutch address or postcode, or is moving with children: the nearest primary and secondary schools, with distance, denomination, pupils, the share of pupils reaching the target reading and maths level on the end-of-primary test (vs national), and secondary exam pass rates per track (vmbo/havo/vwo). Also the nearest daycare (0 to 4) and after-school care (4 to 12) with registered places. Sources: DUO, Landelijk Register Kinderopvang.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
- idempotentHint: true
- title: Dutch schools near a postcode (free)
Only reads 2Claude Code: allow
nl_address_lookupUse when you need to check that a Dutch address exists or get its exact spelling and coordinates: official BAG address from postcode + house number or free text, latitude/longitude…No findings
Why it is in this group
- The name "nl_address_lookup" says "lookup": a word for reading.
Description, as the server wrote it Use when you need to check that a Dutch address exists or get its exact spelling and coordinates: official BAG address from postcode + house number or free text, latitude/longitude, BAG ids, municipality, province and CBS neighbourhood code. Cheap address validation for onboarding, delivery and CRM. Source: Kadaster BAG via PDOK. Costs 0.002 USDC via x402, or 1 credit of a Factline API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
- idempotentHint: true
- title: Validate and geocode a Dutch address (paid)
nl_home_compareUse when the user is choosing between 2 to 5 Dutch addresses: side-by-side liveability, crime, home values, floor area, year built, noise, air quality, ground height and distances …No findings
Why it is in this group
- The name "nl_home_compare" says "compare": a word for reading.
Description, as the server wrote it Use when the user is choosing between 2 to 5 Dutch addresses: side-by-side liveability, crime, home values, floor area, year built, noise, air quality, ground height and distances to station, supermarket, school and GP, with the best address per metric and the full report for each. Input: addresses separated by ';'. Costs 0.08 USDC via x402, or 40 credits of a Factline API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
- idempotentHint: true
- title: Compare Dutch addresses (paid)
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.9.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http factline-nl https://factline.dev/mcp/nlRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__factline-nl__nl_home_compare",
"mcp__factline-nl__nl_address_lookup"
],
"ask": [
"mcp__factline-nl__nl_home_basic",
"mcp__factline-nl__nl_neighbourhood_summary",
"mcp__factline-nl__nl_schools_near",
"mcp__factline-nl__buy_full_address_report",
"mcp__factline-nl__nl_home_report",
"mcp__factline-nl__nl_neighbourhood",
"mcp__factline-nl__nl_address_reverse",
"mcp__factline-nl__nl_energy_label",
"mcp__factline-nl__nl_crime",
"mcp__factline-nl__nl_postcode_addresses",
"mcp__factline-nl__nl_address_batch",
"mcp__factline-nl__nl_rent_check",
"mcp__factline-nl__nl_flood_risk",
"mcp__factline-nl__nl_house_prices"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as factline-nl. Review it before you use it.
