dutch-property-context
Dutch Property Context — MCP-сервер и API для нидерландских адресов
Один адрес на входе — один связанный отчёт по объекту недвижимости на выходе. Год постройки и площадь из BAG, зарегистрированный энергетический сертификат, данные по районам от CBS, шум окружающей среды и качество воздуха, статус памятника архитектуры, охраняемый городской или деревенский вид, а также школы поблизости.
Работает как удалённый MCP-сервер и как обычный HTTPS-API. Бесплатно, без ключа API, без регистрации.
https://property-context.tradebrite.nl📖 Документация: https://tradebrite.nl/property-context/
Подключение за 10 секунд
Claude (веб или десктоп, любой тариф): Customize → Connectors → + → Add custom connector, вставьте https://property-context.tradebrite.nl/mcp.
ChatGPT: для пользовательских коннекторов требуется Developer Mode (Pro/Team/Enterprise/Edu); на Plus это недоступно — используйте там HTTPS-API.
Claude Code:
claude mcp add --transport http property-context https://property-context.tradebrite.nl/mcpИли в вашей MCP-конфигурации (Claude Desktop, Cursor, Windsurf, …):
{
"mcpServers": {
"property-context": {
"type": "http",
"url": "https://property-context.tradebrite.nl/mcp"
}
}
}Затем можно спросить: "Что мне нужно знать о Grote Markt 2 в Харлеме перед осмотром?"
Предпочитаете обычный HTTP:
curl "https://property-context.tradebrite.nl/v1/property/context?address=Grote%20Markt%202,%20Haarlem"Related MCP server: MCP France Geo
Зачем это существует
Спросите AI-агента о нидерландском адресе — и он отправится в интернет. Это даст ответ, который выглядит хорошо, а иногда и оказывается верным. Базовые данные открыты и надёжны, но они разбросаны по девяти реестрам, у каждого из которых свой ключ, свой формат и свои особенности.
Самое сложное — не получить данные, а связать их, и именно здесь мы неоднократно ошибались, пока не разобрались:
Опубликованный нами номер памятника оказался внутренним номером объекта. Prinsengracht 263 получил номер, который в реестре памятников относится к зданию в Зирикзее.
Запрос по памятникам не был привязан к местоположению, поэтому адрес в Астене получил памятник в Кевордене.
Binnenrotte 101, Амстердамбез каких-либо оговорок возвращал здание в Роттердаме сmatch_verified: true.
Ни один из источников не был сломан. Сломана была связка. Этот слой берёт эту работу на себя и явно сообщает, насколько мы уверены, что нашли именно тот объект.
Что вы получаете
Один JSON-ответ (~11 кБ) с identity, building, energy, location, neighbourhood, environment, heritage, protected_area, schools, signals и provenance.
Обратите внимание на
identity.match_verified. Если он равенfalse, то запрошенный адрес не найден с уверенностью, и остальная часть ответа может относиться к другому объекту. Приmatch_ambiguousперечислены все равнозначные кандидаты.
signals — это наблюдения, а не установленные дефекты. Год постройки 1921 не означает, что есть свинцовые трубы, — это лишь повод проверить.
Сигнал | Значение |
| Что стоит проверить для этого периода постройки |
| Два реестра указывают разные годы постройки; показаны оба |
| Статус зарегистрированного сертификата |
| Последствия для разрешений |
| Запрошенный адрес не найден с уверенностью |
| Источник не ответил — неизвестно, а не отрицательный ответ |
Чего он не делает
Никакой оценки стоимости, никакой информации о праве собственности, никаких юридических или строительных консультаций. Никакой цены, никакого арендного кадастра, никакой информации об ассоциации собственников жилья и никакой истории объекта — эти данные недоступны бесплатно.
Принципы проектирования
Никогда не заполняйте отсутствующее значение предположением. Если данных нет, поле отсутствует или равно
null, а вsignalsдобавляется пояснение.Факт ≠ сигнал ≠ неизвестно. Мы различаем подтверждённые данные, требующие проверки, и случаи, когда источник недоступен.
Указывайте происхождение каждого фрагмента данных, даже в
depth=compact— часть источников распространяется по лицензии CC BY, и указание источника является условием лицензии.Один MCP-инструмент, а не десятки. Наш список инструментов занимает 2 419 символов. Широкий аналог из открытых данных Нидерландов, который мы разместили рядом, занимает 55 452 символа на 64 инструмента.
Сбой источника должен быть заметен. Если источник недоступен, вы увидите
source_unavailable, а не устаревшие данные.Поле, которое никогда не заполняется, не должно существовать. Мы скорее удалим функцию, чем оставим мёртвую.
Запуск самостоятельно
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 dienstИндексные файлы сознательно не хранятся в репозитории: они производны от источников CC BY и могут быть пересобраны за несколько минут. Для этого требуется EP_ONLINE_KEY (бесплатно запрашивается у RVO); без него будет отсутствовать только энергетический сертификат, аккуратно помеченный как not_configured.
Обратите внимание на ограничение размера пакета. При размере более примерно 3,7 МБ холодный старт Cloudflare Worker увеличивается с 0,2 до 9 секунд, даже для
/health. Поэтому без R2 нельзя добавить четвёртый индекс.
Источники и лицензии
BAG (Public Domain Mark 1.0) · EP-Online/RVO (собственные условия, без массовой выгрузки) · CBS Wijken & Buurten и Kerncijfers (CC BY 4.0) · RIVM шум и качество воздуха (общественное достояние) · RCE памятники архитектуры и охраняемые виды (CC BY 4.0) · DUO адреса школ (CC BY).
Указание авторства для части данных обязательно. Именно поэтому в каждом ответе присутствует provenance. Передавайте его дальше, когда показываете данные конечному пользователю; это требование распространяется вместе с данными.
Код: MIT, см. LICENSE.
Конфиденциальность
Размещённый сервис не ведёт логи адресов, почтовых индексов и IP-адресов. Логируются только: муниципалитет (укрупнённо), выдаваемые сигналы и статусы источников.
Связанное
Dutch Vehicle Context — тот же подход для нидерландских транспортных средств: номерной знак на входе, история техосмотра APK, повторяющиеся пункты неисправностей и полная цепочка отзывных кампаний на выходе.
Создано Tradebrite BV · info@tradebrite.nl
This server cannot be deployed
Maintenance
Related MCP Connectors
Dutch address, flood, crime and vehicle data; EU VAT, sanctions, email, phone and KYC checks.
Dutch address dossier, vehicle, building, elevation, holidays, demographics. Free samples first.
WOZ values (official Dutch property valuations) for Dutch addresses, one lookup or a whole list.
A French address, all public facts: parcel, zoning, risks, permits, sales, energy labels. No key.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProperty 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.-
- FlicenseNot gradedqualityDmaintenanceProvides French address data from DVF, Géorisques, and SSMSI sources, including property prices, risks, and crime statistics.-
- AlicenseAqualityBmaintenanceProvides French real estate intelligence from official open data, including notarial sales, transparent estimates, rents, property tax, energy diagnostics, risks, and commune profiles. It enables MCP clients to get auditable property reports and analysis from a simple address without an API key.1671 npmMIT
- AlicenseAqualityAmaintenanceEnables AI assistants to check the monumental status of Dutch addresses by converting them to BAG identifiers and looking up national monuments, protected cityscapes, and municipal monuments.22MIT