Skip to main content

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.

PyPI CI

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

makelaar_mcp-0.1.1.tar.gz (85.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

makelaar_mcp-0.1.1-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

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

Hashes for makelaar_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7f702f689b0053ff8f0c5c908f88749f23940b99e33b885e5df36c5c16430769
MD5 34524835aafdfaf96e3a82bfb80d47d5
BLAKE2b-256 5480379b3e2840332b09dab0d7acc049289d31ef97b75a3375f73035780c2d62

See more details on using hashes here.

Provenance

The following attestation bundles were made for makelaar_mcp-0.1.1.tar.gz:

Publisher: publish.yml on spyrosavl/makelaar-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for makelaar_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1f8a48fa0aeaa9231a6cb2eb3ad59d1550120e856c484669381d6aaecaff58bb
MD5 608962bed36f89c7d8938dc570de3d9b
BLAKE2b-256 c83b38e2ce68652f390ff55217fc615fb2bb775c9421aae2c1ad57a9a95cb346

See more details on using hashes here.

Provenance

The following attestation bundles were made for makelaar_mcp-0.1.1-py3-none-any.whl:

Publisher: publish.yml on spyrosavl/makelaar-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page