Your AI makelaar — MCP server for Dutch house hunting on funda.nl
Project description
makelaar-mcp
Your AI makelaar (real estate agent) for the Dutch housing market. Search funda.nl, compare listings, calculate Dutch mortgages, and estimate buying costs — all from Claude.
Quick start
Prerequisites: Install uv (Python package runner) if you don't have it:
curl -LsSf https://astral.sh/uv/install.sh | sh
Claude Code
claude mcp add makelaar -- uvx makelaar-mcp
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"makelaar": {
"command": "FULL_PATH_TO_UVX",
"args": ["makelaar-mcp"]
}
}
}
Replace FULL_PATH_TO_UVX with the output of which uvx (e.g. /Users/you/.local/bin/uvx). Claude Desktop doesn't inherit your shell PATH, so the full path is required.
Then restart Claude Desktop.
What you can ask
Search for apartments in Amsterdam under €400k with energy label A or better
I earn €80,000/year, my partner earns €50,000. Can we afford this €500,000 house? We're first-time buyers, both 29. Include NHG.
Compare these two listings: https://www.funda.nl/detail/koop/amsterdam/appartement-rapenburgerstraat-103-f/43363178/ and https://www.funda.nl/detail/koop/amsterdam/huis-arendonksingel-54/43363912/
What are the total buying costs for a €350,000 apartment? I'm a starter, age 27.
Show me the price history for this listing: https://www.funda.nl/detail/koop/amsterdam/huis-arendonksingel-54/43363912/
Tools
search_listings
Search funda.nl with filters for location, price, area, property type, energy label, and more. Supports multi-city search and pagination (15 results/page).
get_listing
Full property details by listing ID or funda.nl URL.
get_price_history
Historical asking prices, sale prices, and WOZ values for a listing.
compare_listings
Side-by-side comparison of 2–10 properties: price, area, price/m², bedrooms, year built, energy label, garden.
calculate_dutch_mortgage
Dutch-specific mortgage calculator covering:
- Annuity & linear mortgage types
- NHG (Nationale Hypotheek Garantie) — eligibility, premium, interest discount
- Hypotheekrenteaftrek — mortgage interest deduction (36.97%) minus eigenwoningforfait
- Startersvrijstelling — 0% transfer tax for first-time buyers age 18–34
- NIBUD max mortgage — income-based borrowing limit with partner income and student debt
calculate_total_cost
Itemized breakdown of bijkomende kosten (additional buying costs):
| Cost | Typical amount |
|---|---|
| Overdrachtsbelasting (transfer tax) | 0% / 2% / 10.4% |
| Notariskosten (notary) | €1,500 – €2,500 |
| Taxatiekosten (appraisal) | ~€600 |
| Hypotheekadviseur (mortgage advisor) | ~€2,500 |
| Bankgarantie (bank guarantee) | ~€500 |
| Kadaster (land registry) | ~€150 |
| NHG premium (optional) | 0.6% of mortgage |
| Aankoopmakelaar (optional) | ~1.5% of price |
These costs must come from savings — you can't borrow them.
Disclaimer
This project is not affiliated with, endorsed by, or connected to funda.nl or Funda B.V. Property data is sourced from third-party services and may be incomplete or outdated.
Mortgage calculations and cost estimates are approximations for informational purposes only — not financial advice. Dutch mortgage rules, tax rates, and NHG limits change annually. Always consult a licensed mortgage advisor (hypotheekadviseur) before making financial decisions.
See LICENSE for the full MIT license.
Development
git clone https://github.com/spyrosavl/makelaar-mcp.git
cd makelaar-mcp
uv sync
uv run pytest # run tests
uv run ruff check src/ tests/ # lint
uv run mcp dev src/makelaar_mcp/server.py # MCP Inspector
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file makelaar_mcp-0.1.1.tar.gz.
File metadata
- Download URL: makelaar_mcp-0.1.1.tar.gz
- Upload date:
- Size: 85.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f702f689b0053ff8f0c5c908f88749f23940b99e33b885e5df36c5c16430769
|
|
| MD5 |
34524835aafdfaf96e3a82bfb80d47d5
|
|
| BLAKE2b-256 |
5480379b3e2840332b09dab0d7acc049289d31ef97b75a3375f73035780c2d62
|
Provenance
The following attestation bundles were made for makelaar_mcp-0.1.1.tar.gz:
Publisher:
publish.yml on spyrosavl/makelaar-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
makelaar_mcp-0.1.1.tar.gz -
Subject digest:
7f702f689b0053ff8f0c5c908f88749f23940b99e33b885e5df36c5c16430769 - Sigstore transparency entry: 1077015511
- Sigstore integration time:
-
Permalink:
spyrosavl/makelaar-mcp@f3dcb9657765b40fd6983e087dad77babda76a70 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/spyrosavl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f3dcb9657765b40fd6983e087dad77babda76a70 -
Trigger Event:
release
-
Statement type:
File details
Details for the file makelaar_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: makelaar_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f8a48fa0aeaa9231a6cb2eb3ad59d1550120e856c484669381d6aaecaff58bb
|
|
| MD5 |
608962bed36f89c7d8938dc570de3d9b
|
|
| BLAKE2b-256 |
c83b38e2ce68652f390ff55217fc615fb2bb775c9421aae2c1ad57a9a95cb346
|
Provenance
The following attestation bundles were made for makelaar_mcp-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on spyrosavl/makelaar-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
makelaar_mcp-0.1.1-py3-none-any.whl -
Subject digest:
1f8a48fa0aeaa9231a6cb2eb3ad59d1550120e856c484669381d6aaecaff58bb - Sigstore transparency entry: 1077015520
- Sigstore integration time:
-
Permalink:
spyrosavl/makelaar-mcp@f3dcb9657765b40fd6983e087dad77babda76a70 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/spyrosavl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f3dcb9657765b40fd6983e087dad77babda76a70 -
Trigger Event:
release
-
Statement type: