Back to the developer consoleIn development

API reference

Every tool the Secrets.RealEstate MCP server exposes — parameters, coverage and an example response.

15
tools
8
official public datasets
96
départements — all of France

Connect

Add the hosted server to your MCP client (Claude Code, Cursor and others). Replace the placeholder with a key from the developer console.

claude mcp add secrets-realestate \
  --transport http https://secrets.realestate/mcp \
  --header "X-API-Key: sk_live_…"

Every request must carry your key in the X-API-Key header. There is no anonymous access — each call resolves to your account and plan. The Developer API requires a paid plan and administrator approval.

Conventions

Every tool declares these MCP annotations:

  • readOnlyHint — never changes your data — every call only reads
  • idempotentHint — the same call returns the same result, so it is safe to retry
  • openWorldHint — reads live external data, so results can change over time
  • Location is given as coordinates (lat/lng) — resolve an address with geocode_address first.
  • Pass lang (en, de, fr, it, ru, es) to localize text fields; it defaults to en.
  • List tools (search_properties, get_my_listings) page with page and size.
  • Response fields are snake_case.
  • Every tool currently covers France — outside France, or if a provider is down, a tool returns an empty result or null, never an error.

Tools

Deep coverage spans every French département, joined from eight official public datasets — BDNB, IRIS, SSMSI, GeoRisques, Hub'Eau, Éducation IVAL, OpenStreetMap and DVF. More markets later.

Search & data

search_properties

Search property listings on Secrets.RealEstate by city, type, price, size and bedrooms (paginated). Use when the user wants to find or browse properties matching criteria.

Parameters

ParameterTypeDescriptionRequired
citystringCity to search in, e.g. Nice.No
property_typestringProperty type, e.g. apartment or house.No
price_minintegerMinimum price.No
price_maxintegerMaximum price.No
size_minintegerMinimum living area in square metres.No
size_maxintegerMaximum living area in square metres.No
bedroomsintegerMinimum number of bedrooms.No
pageintegerZero-based page number. Defaults to 0.No
sizeintegerPage size, 1-100. Defaults to 10.No

Returns

FieldTypeDescription
itemsarrayListings on this page.
property_idintegerListing id.
property_typestringProperty type, e.g. apartment or house.
price_amountnumberAsking price.
price_currencystringISO currency code, e.g. EUR.
monthly_feesnumberMonthly charges / co-ownership fees.
size_sqmintegerLiving area in square metres.
size_usable_sqmintegerUsable area in square metres.
room_countintegerTotal rooms.
bedroom_countintegerBedrooms.
bathroom_countintegerBathrooms.
floor_levelintegerFloor the unit is on.
total_floorsintegerFloors in the building.
plotintegerPlot / land area in square metres.
conditionstringProperty condition.
elevatorbooleanHas an elevator.
garage_spacesintegerNumber of garage / parking spaces.
poolbooleanHas a pool.
furnishedbooleanSold furnished.
balconybooleanHas a balcony.
terracebooleanHas a terrace.
energy_ratingstringDPE energy class, A to G.
ghg_classstringGreenhouse-gas class, A to G.
energy_kwh_m2_yearintegerEnergy use, kWh/m2/year.
ghg_kg_co2_m2_yearintegerEmissions, kg CO2/m2/year.
heating_typestringHeating type.
year_builtintegerConstruction year.
streetstringStreet name (null if the listing hides its address).
house_numberstringHouse number (null if the listing hides its address).
postal_codestringPostal code.
citystringCity.
statestringRegion or state.
countrystringCountry name.
country_codestringISO country code.
latitudenumberLatitude (null if the listing hides its address).
longitudenumberLongitude (null if the listing hides its address).
listing_urlstringSource listing URL.
created_datestringWhen the listing was saved (ISO date).
totalintegerTotal matching listings.
pageintegerZero-based page number.
sizeintegerPage size.
geocode_address

Resolve an address or place name to coordinates (latitude/longitude), city and country. Use whenever the user gives an address or place, asks where something is, wants to locate or pin a property, or needs lat/lon before any other analysis. France is covered in depth; other areas still resolve but have limited downstream data.

Parameters

ParameterTypeDescriptionRequired
querystringAddress or place to locate, for example 12 rue de Rivoli, Paris.Yes
langstringResponse language: en, de, fr, it, ru or es. Defaults to en.No
limitintegerMaximum number of results, 1-10. Defaults to 5.No

Returns

FieldTypeDescription
latitudenumberLatitude (WGS84).
longitudenumberLongitude (WGS84).
display_namestringFull formatted address.
citystringCity.
statestringRegion or state.
countrystringCountry name.
country_codestringISO 3166-1 alpha-2 country code, e.g. fr.
result_typestringMatch granularity, e.g. house, street, city.
get_listing

Get the facts for a single property listing by its id — price, type, size, rooms, location, energy rating. Use the id returned by search_properties or get_my_listings.

Parameters

ParameterTypeDescriptionRequired
property_idintegerThe listing id (from search_properties or get_my_listings).Yes

Returns

FieldTypeDescription
property_idintegerListing id.
property_typestringProperty type, e.g. apartment or house.
price_amountnumberAsking price.
price_currencystringISO currency code, e.g. EUR.
monthly_feesnumberMonthly charges / co-ownership fees.
size_sqmintegerLiving area in square metres.
size_usable_sqmintegerUsable area in square metres.
room_countintegerTotal rooms.
bedroom_countintegerBedrooms.
bathroom_countintegerBathrooms.
floor_levelintegerFloor the unit is on.
total_floorsintegerFloors in the building.
plotintegerPlot / land area in square metres.
conditionstringProperty condition.
elevatorbooleanHas an elevator.
garage_spacesintegerNumber of garage / parking spaces.
poolbooleanHas a pool.
furnishedbooleanSold furnished.
balconybooleanHas a balcony.
terracebooleanHas a terrace.
energy_ratingstringDPE energy class, A to G.
ghg_classstringGreenhouse-gas class, A to G.
energy_kwh_m2_yearintegerEnergy use, kWh/m2/year.
ghg_kg_co2_m2_yearintegerEmissions, kg CO2/m2/year.
heating_typestringHeating type.
year_builtintegerConstruction year.
streetstringStreet name (null if the listing hides its address).
house_numberstringHouse number (null if the listing hides its address).
postal_codestringPostal code.
citystringCity.
statestringRegion or state.
countrystringCountry name.
country_codestringISO country code.
latitudenumberLatitude (null if the listing hides its address).
longitudenumberLongitude (null if the listing hides its address).
listing_urlstringSource listing URL.
created_datestringWhen the listing was saved (ISO date).
get_my_listings

List the properties saved in the caller's own account (owner-scoped, paginated). Use when the user asks about their properties, their listings, properties they saved or added, or wants to review their own portfolio. Requires an authenticated caller.

Parameters

ParameterTypeDescriptionRequired
pageintegerZero-based page number. Defaults to 0.No
sizeintegerPage size, 1-100. Defaults to 10.No

Returns

FieldTypeDescription
itemsarrayListings on this page.
property_idintegerListing id.
property_typestringProperty type, e.g. apartment or house.
price_amountnumberAsking price.
price_currencystringISO currency code, e.g. EUR.
monthly_feesnumberMonthly charges / co-ownership fees.
size_sqmintegerLiving area in square metres.
size_usable_sqmintegerUsable area in square metres.
room_countintegerTotal rooms.
bedroom_countintegerBedrooms.
bathroom_countintegerBathrooms.
floor_levelintegerFloor the unit is on.
total_floorsintegerFloors in the building.
plotintegerPlot / land area in square metres.
conditionstringProperty condition.
elevatorbooleanHas an elevator.
garage_spacesintegerNumber of garage / parking spaces.
poolbooleanHas a pool.
furnishedbooleanSold furnished.
balconybooleanHas a balcony.
terracebooleanHas a terrace.
energy_ratingstringDPE energy class, A to G.
ghg_classstringGreenhouse-gas class, A to G.
energy_kwh_m2_yearintegerEnergy use, kWh/m2/year.
ghg_kg_co2_m2_yearintegerEmissions, kg CO2/m2/year.
heating_typestringHeating type.
year_builtintegerConstruction year.
streetstringStreet name (null if the listing hides its address).
house_numberstringHouse number (null if the listing hides its address).
postal_codestringPostal code.
citystringCity.
statestringRegion or state.
countrystringCountry name.
country_codestringISO country code.
latitudenumberLatitude (null if the listing hides its address).
longitudenumberLongitude (null if the listing hides its address).
listing_urlstringSource listing URL.
created_datestringWhen the listing was saved (ISO date).
totalintegerTotal matching listings.
pageintegerZero-based page number.
sizeintegerPage size.

Market

get_comparable_sales

Recent comparable sold properties near a location (official DVF records) with price, size and a liquidity score. France only. Pass coordinates from geocode_address.

Parameters

ParameterTypeDescriptionRequired
latnumberLatitude (WGS84). Obtain it from geocode_address.Yes
lngnumberLongitude (WGS84). Obtain it from geocode_address.Yes
langstringResponse language: en, de, fr, it, ru or es. Defaults to en.No

Returns

FieldTypeDescription
comparablesarrayRecent nearby sales (DVF).
datestringSale date (ISO).
priceintegerSale price.
price_per_sqmintegerPrice per square metre.
size_sqmintegerLiving area in square metres.
object_typestringProperty type.
transaction_typestringTransaction type.
latitudenumberLatitude (WGS84).
longitudenumberLongitude (WGS84).
liquidityobjectMarket liquidity for the area.
scoreintegerLiquidity score (0-100).
gradestringLiquidity grade.
total_transactionsintegerTransactions in the sample.
annual_volumeintegerApproximate sales per year.
price_variationnumberPrice dispersion.
distinct_typesintegerDistinct property types seen.
get_location_rating

Location rating for a point: mean price, net rent and related neighbourhood market metrics. France only. Pass coordinates from geocode_address.

Parameters

ParameterTypeDescriptionRequired
latnumberLatitude (WGS84). Obtain it from geocode_address.Yes
lngnumberLongitude (WGS84). Obtain it from geocode_address.Yes
langstringResponse language: en, de, fr, it, ru or es. Defaults to en.No

Returns

FieldTypeDescription
currencystringISO currency code.
descriptionstringLong description of the location market.
summarystringShort summary.
last_updatestringDate the figures were last updated (ISO).
summariesarrayPer-asset-type metrics.
asset_typestringAsset type.
price_per_sqmintegerMean sale price per square metre.
rent_per_sqmnumberMean net rent per square metre.
gradestringGrade for the asset type.

Location & environment

get_air_quality

Air-quality index and grade for a location. Pass coordinates from geocode_address.

Parameters

ParameterTypeDescriptionRequired
latnumberLatitude (WGS84). Obtain it from geocode_address.Yes
lngnumberLongitude (WGS84). Obtain it from geocode_address.Yes
langstringResponse language: en, de, fr, it, ru or es. Defaults to en.No

Returns

FieldTypeDescription
aqinumberAir-quality index.
gradestringAir-quality grade (A to G).
get_seasonal_climate

Seasonal temperature / climate profile for a location. Pass coordinates from geocode_address.

Parameters

ParameterTypeDescriptionRequired
latnumberLatitude (WGS84). Obtain it from geocode_address.Yes
lngnumberLongitude (WGS84). Obtain it from geocode_address.Yes
langstringResponse language: en, de, fr, it, ru or es. Defaults to en.No

Returns

FieldTypeDescription
sunny_daysintegerSunny days per year.
seasonsarrayPer-season temperature summary.
seasonstringSeason: winter, spring, summer or autumn.
summarystringShort text summary.
min_celsiusnumberTypical low temperature (Celsius).
max_celsiusnumberTypical high temperature (Celsius).
get_neighborhood

Living environment for a location: amenities, schools, leisure, safety and water quality. France only. Pass coordinates from geocode_address.

Parameters

ParameterTypeDescriptionRequired
latnumberLatitude (WGS84). Obtain it from geocode_address.Yes
lngnumberLongitude (WGS84). Obtain it from geocode_address.Yes
langstringResponse language: en, de, fr, it, ru or es. Defaults to en.No

Returns

FieldTypeDescription
tabsarrayOne entry per environment domain.
categorystringDomain, e.g. amenities, schools, safety.
gradestringGrade for the domain (A to G).
badgesarrayHighlight labels.
textstringShort description.
get_noise

Estimated baseline noise level for a location, in decibels. Pass coordinates from geocode_address.

Parameters

ParameterTypeDescriptionRequired
latnumberLatitude (WGS84). Obtain it from geocode_address.Yes
lngnumberLongitude (WGS84). Obtain it from geocode_address.Yes
langstringResponse language: en, de, fr, it, ru or es. Defaults to en.No

Returns

FieldTypeDescription
base_noiseintegerEstimated baseline noise level in decibels.

Insights

get_building_insights

Full building report for a location: categorised buyer insights (energy/DPE, structural, regulatory, and natural/technological risks such as flood, seismic, clay and radon), each with severity, detail, a recommendation, the applicable regulation and its data source and confidence, plus an overall risk score. Use for due diligence on an address. Pass coordinates and the country_code from geocode_address: France has the full 36-category report; Germany a partial report from open German data. An out-of-coverage point returns an empty report rather than an error.

Parameters

ParameterTypeDescriptionRequired
latnumberLatitude (WGS84). Obtain it from geocode_address.Yes
lngnumberLongitude (WGS84). Obtain it from geocode_address.Yes
countrystringISO 3166-1 alpha-2 country code from geocode_address (country_code): fr for the full report, de for the German partial report. Defaults to fr.No
langstringResponse language: en, de, fr, it, ru or es. Defaults to en.No

Returns

FieldTypeDescription
latitudenumberLatitude (WGS84).
longitudenumberLongitude (WGS84).
risk_scoreintegerOverall risk score (0-100); null if out of coverage.
risk_labelstringLabel for the risk score.
total_insightsintegerNumber of insights returned.
insightsarrayCategorised buyer insights.
categorystringInsight category.
severitystringSeverity level.
titlestringShort title.
detailstringWhat was found.
recommendationstringSuggested action.
regulationstringApplicable regulation, if any.
sourcestringKnowledge-graph inference chain that produced this insight.
confidencenumberData reliability (0-1), from the source quality tier.
source_versionstringData source identifier, e.g. bdnb_open_data or the German source.
get_renovation_advice

Prioritised renovation and energy plan for a building: the renovation-relevant findings — envelope insulation deficiencies, heating and hot-water obsolescence, the worst heat-loss element, window quality, thermal bridges, the estimated energy bill, carbon footprint, the DPE rental-ban regulation, and green-energy / district-heating options — filtered from the full building report and ordered most-urgent first with a priority rank, so you can advise what to fix first. France has the full analysis; Germany a partial one. Pass coordinates and the country_code from geocode_address. Out of coverage returns an empty plan, not an error.

Parameters

ParameterTypeDescriptionRequired
latnumberLatitude (WGS84). Obtain it from geocode_address.Yes
lngnumberLongitude (WGS84). Obtain it from geocode_address.Yes
countrystringISO 3166-1 alpha-2 country code from geocode_address (country_code): fr for the full report, de for the German partial report. Defaults to fr.No
langstringResponse language: en, de, fr, it, ru or es. Defaults to en.No

Returns

FieldTypeDescription
latitudenumberLatitude (WGS84).
longitudenumberLongitude (WGS84).
total_stepsintegerNumber of renovation steps returned.
stepsarrayRenovation-relevant insights, most urgent first (fix the first one first).
categorystringInsight category.
severitystringSeverity level.
titlestringShort title.
detailstringWhat was found.
recommendationstringSuggested action.
regulationstringApplicable regulation, if any.
sourcestringKnowledge-graph inference chain that produced this insight.
confidencenumberData reliability (0-1), from the source quality tier.
source_versionstringData source identifier, e.g. bdnb_open_data.
get_property_report

One-shot due-diligence report for an address: bundles the building insights (energy/DPE, structural, regulatory and natural/technological risks), comparable sold properties, price-per-square-metre trends, the location rating (mean price and net rent), the risk assessment, and the local environment (air quality, seasonal climate, neighbourhood and noise) into a single response. Use for a complete property review in one call instead of chaining the individual tools; each section matches its dedicated tool's shape. Any section out of coverage is omitted. France is covered in depth; elsewhere the sections that resolve are returned. Pass coordinates and the country_code from geocode_address.

Parameters

ParameterTypeDescriptionRequired
latnumberLatitude (WGS84). Obtain it from geocode_address.Yes
lngnumberLongitude (WGS84). Obtain it from geocode_address.Yes
countrystringISO 3166-1 alpha-2 country code from geocode_address (country_code): fr for the full report, de for the German partial report. Defaults to fr.No
langstringResponse language: en, de, fr, it, ru or es. Defaults to en.No

Returns

FieldTypeDescription
latitudenumberLatitude (WGS84).
longitudenumberLongitude (WGS84).
building_insightsobjectSame shape as get_building_insights. Null if out of coverage.
comparable_salesobjectSame shape as get_comparable_sales. Null if unavailable.
price_trendsobjectSame shape as get_price_trends. Null if unavailable.
location_ratingobjectSame shape as get_location_rating. Null if unavailable.
risk_assessmentobjectSame shape as get_risk_assessment. Null if unavailable.
air_qualityobjectSame shape as get_air_quality. Null if unavailable.
seasonal_climateobjectSame shape as get_seasonal_climate. Null if unavailable.
neighborhoodobjectSame shape as get_neighborhood. Null if unavailable.
noiseobjectSame shape as get_noise. Null if unavailable.
get_risk_assessment

Natural and technological risk assessment for a location (official GeoRisques data): flood, seismic, clay/subsidence and radon. France only. Pass coordinates from geocode_address.

Parameters

ParameterTypeDescriptionRequired
latnumberLatitude (WGS84). Obtain it from geocode_address.Yes
lngnumberLongitude (WGS84). Obtain it from geocode_address.Yes
langstringResponse language: en, de, fr, it, ru or es. Defaults to en.No

Returns

FieldTypeDescription
risksarrayOne entry per hazard.
categorystringHazard, e.g. flood, seismic, clay, radon.
gradestringRisk grade.
explanationstringWhat the grade means here.
confidencenumberConfidence (0-1).
MCP

Start building

Request developer access, generate an API key and connect your MCP client.

  • BSFZ Seal — Research & Development certified by the Bescheinigungsstelle Forschungszulage (BSFZ)

© 2026 Secrets.RealEstate - All rights reserved.

All data is provided without warranty of accuracy. We rely on multiple external sources and cannot guarantee completeness.