Eigenheim Invest – Berlin Real Estate Market
Server Details
Live Berlin property prices per m², rental yields, land values 2026 and listings. Read-only.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- magicSEO/eigenheim-mcp
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 8 tools
The listing tools (search_properties → get_property_details) and the editorial tool (search_guides) are clearly separated, as is calculate_rental_yield as a computation. The three price-data tools (get_area_prices, get_bodenrichtwerte, get_market_overview) overlap in subject matter but are differentiated by granularity (Ortsteil offer prices vs. official land values vs. Berlin-wide ranking), which the descriptions make clear.
All names follow a consistent snake_case verb_noun pattern with a small, predictable verb set (get_, search_, calculate_). The mixed German/English nouns reflect the domain vocabulary rather than a naming inconsistency.
Eight tools is well within the sweet spot and each maps to a distinct data need: market stats, land values, yield math, demographics, listing search, listing detail, and guide search. No tool appears redundant or filler.
The surface covers the full read path for a market-intelligence site: discover listings, fetch details, pull prices/land values/yields/demographics, and search editorial content. Minor gaps exist — search_guides returns only title/snippet/link with no companion tool to fetch full article content, and there is no direct Bezirk-level price lookup outside the population tool.
Available Tools
8 toolscalculate_rental_yieldMietrendite berechnenARead-onlyIdempotentInspect
Brutto-Mietrendite und Kaufpreisfaktor für Eigentumswohnungen in einem Ortsteil: aktueller Angebotspreis gegen IBB-Median-Angebotsmiete des Bezirks. Optional mit eigenen Werten.
| Name | Required | Description | Default |
|---|---|---|---|
| area | Yes | Ortsteil, z. B. 'Steglitz', oder null wenn eigene Werte. | |
| rent_per_sqm | Yes | Eigene Nettokaltmiete €/m² oder null. | |
| price_per_sqm | Yes | Eigener Kaufpreis €/m² oder null. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description goes beyond them by disclosing the data source (IBB-Median-Angebotsmiete des Bezirks) and the area-vs-own-values fallback, which is real behavioral context for a calculation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, output and method front-loaded, no filler. Every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema the description usefully names the two returned metrics and the reference data used. Minor gaps remain: the yield's unit/format and what happens when area is supplied but price is null.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: it explains that the three null-able parameters work as an either/or (area lookup vs. supplying own price and rent values). It does not clarify units for the resulting yield.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names two specific outputs (Brutto-Mietrendite, Kaufpreisfaktor), the asset type (Eigentumswohnungen), the geography (Ortsteil) and the comparison basis (Angebotspreis vs. IBB-Median-Angebotsmiete). This is clearly a computed-metric tool distinct from the retrieval siblings (get_area_prices, get_market_overview), but it never explicitly contrasts itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Optional mit eigenen Werten" implies the two operating modes (area-based lookup vs. user-supplied price/rent), which is genuine usage guidance. However there is no explicit statement of when to prefer this tool over get_area_prices or get_market_overview, nor any prerequisite or data-coverage caveat.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_area_pricesQuadratmeterpreise je OrtsteilARead-onlyIdempotentInspect
Aktuelle Angebots-Quadratmeterpreise (Wohnungen und Häuser getrennt) für einen Berliner Ortsteil oder Umland-Ort, mit Berlin-Vergleich, Quartal und Jahrestrend.
| Name | Required | Description | Default |
|---|---|---|---|
| area | Yes | Ortsteil oder Ort, z. B. 'Zehlendorf', 'Prenzlauer Berg', 'Falkensee'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the useful nuance that these are asking (not transaction) prices and are broken down by property type with a Berlin comparison and trends, but discloses nothing about rate limits, auth, or freshness beyond 'Aktuell'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the core resource (Quadratmeterpreise) and then layers scope and return content. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, single-parameter tool with full schema coverage and no output schema, the description usefully conveys what comes back: apartment vs. house prices, a Berlin benchmark, quarterly figure, and annual trend. It is nearly complete, missing only explicit sibling differentiation and recency details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'area' parameter is fully documented with examples ('Zehlendorf', 'Prenzlauer Berg', 'Falkensee'). The description only reinforces the scope ('Berliner Ortsteil oder Umland-Ort') without adding syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — 'Aktuelle Angebots-Quadratmeterpreise' — and scopes it to 'Wohnungen und Häuser getrennt' for a Berlin district or surrounding town. The purpose is unmistakable. It does not, however, explicitly distinguish itself from overlapping siblings like get_market_overview or get_bodenrichtwerte.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this returns area-level asking prices, but the description never says when to prefer it over get_market_overview, get_bodenrichtwerte, or get_property_details. No when-to-use or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bodenrichtwerteBodenrichtwerte 2026ARead-onlyIdempotentInspect
Amtliche Bodenrichtwerte (€/m² Grundstück) je Berliner Ortsteil zum Stichtag 01.01.2026: Median, Minimum und Maximum der Wohngebietszonen mit Vorjahresvergleich. Filter nach Ortsteil oder Bezirk.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Ortsteil oder Bezirk, oder null für alle 97 Ortsteile. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful scope context beyond them: the data vintage (Stichtag 01.01.2026), the fact that only Wohngebietszonen are covered (commercial zones excluded), and that a Vorjahresvergleich is included. It does not describe match behavior when a name is misspelled or unmatched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the resource first, then the payload, then the filter; no filler. It is dense (abbreviations like €/m², Stichtag) but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly specifies the return payload (Median, Minimum, Maximum, Vorjahresvergleich) and the coverage set (97 Ortsteile via null). Scope, date, and geography are all present; only edge-case behavior on unmatched queries is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage and only one parameter, the schema already documents the Ortsteil/Bezirk-or-null semantics fully. The description's "Filter nach Ortsteil oder Bezirk" restates that without adding format, matching, or case-handling detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a precise resource (Amtliche Bodenrichtwerte €/m² per Berliner Ortsteil) with the exact statistics returned and the reference date, so the agent knows this is official land-value data rather than a generic price feed. It is not tautological and reads clearly against siblings like get_area_prices or get_market_overview, but it never explicitly states how it differs from those adjacent tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Filter nach Ortsteil oder Bezirk" implies how to scope the query and the residential-zone framing implies the use case, but there is no explicit when-to-use statement and no routing away from the overlapping get_area_prices / get_market_overview siblings. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_overviewBerliner Immobilienmarkt im ÜberblickARead-onlyIdempotentInspect
Berlin gesamt: aktuelle Ø-Angebotspreise Wohnungen/Häuser, Ranking aller 97 Berliner Ortsteile plus Umland Kleinmachnow/Falkensee (teuerste zuerst, mit Bezirk), IBB-Angebotsmiete 2025 und notarielle Kauffälle des Gutachterausschusses (1. Halbjahr 2026).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety bar is met structurally; the description adds genuinely new behavioral facts instead: data provenance (IBB, Gutachterausschuss), vintage (2025 rent, H1 2026 sales), and the sort order ('teuerste zuerst, mit Bezirk'). It does not disclose payload size, response shape, or price units, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with no filler, front-loaded by the 'Berlin gesamt' scope marker. It is somewhat over-packed with comma-separated items, and abbreviations like 'Ø-Angebotspreise' and 'Kauffälle' ask the agent to decode domain shorthand, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must carry the return-value burden, and it does enumerate the datasets returned, their time windows, and their ordering. It falls short only on structural details an agent would want before calling (JSON shape, units, whether ranking and rents are separate blocks in one response).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is no parameter semantics to convey and the description correctly spends no space on inputs. It could only reach 5 by explicitly stating that the call is parameterless and returns a fixed scope, which it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource and enumerates exactly what the payload contains: city-wide average asking prices, a ranking of all 97 Ortsteile plus two Umland towns, IBB asking rent 2025, and Gutachterausschuss notarized sales. 'Berlin gesamt' implicitly separates it from area-scoped siblings like get_area_prices, but no sibling is ever named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this instead of get_area_prices, get_bodenrichtwerte or the other siblings, and no exclusions or prerequisites. Only a weak scoping hint ('Berlin gesamt', i.e. whole-city rather than single-area) implies the intended use, and the agent must infer that comparison itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_population_forecastBevölkerungsprognose und Mieten je BezirkARead-onlyIdempotentInspect
Bevölkerungsveränderung 2024–2040 (Senatsprognose, mittlere Variante) sowie IBB-Angebotsmieten 2025 und Anteil teurer ETW-Angebote für alle 12 Berliner Bezirke.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered. The description earns credit by adding provenance and vintage (official Senate forecast, medium variant, IBB rents for 2025) and by making clear the result covers all 12 districts with no filtering option. It does not describe the shape of the returned values, keeping it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the primary dataset and then enumerates the accompanying series. Every clause carries distinct information (topic, period, variant, source, year, geography) with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless data-retrieval tool whose annotations already carry the safety profile and which has no output schema, the description is sufficient: it names all three data series, their sources, their time frames, and the geographic granularity. Units and exact return structure are the only gaps, and they are minor for a static benchmark lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description correctly adds no parameter discussion, and the absence of parameters is implicitly communicated by the fixed, whole-city scope it describes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource with concrete dataset content: population change 2024–2040 (Senatsprognose, medium variant), IBB asking rents 2025, and the share of expensive condominium listings, all at district level. That is far more than a restatement of the name, but it never distinguishes itself from related siblings such as get_area_prices or get_market_overview, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use statement, and no sibling is named as an alternative. Because the tool takes zero parameters, the intended usage (call it when district-level forecast/rent benchmark data is needed) is strongly implied by the content, which fits a 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_property_detailsExposé-DetailsARead-onlyIdempotentInspect
Details eines veröffentlichten Angebots per Slug: Beschreibung, Lage, Ausstattung, Energiedaten, Bilder und Link zum Exposé. Keine genaue Adresse.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Slug aus search_properties. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the bar is lower. The description adds genuinely useful context beyond them: only published listings are returned, and the exact address is deliberately withheld ('Keine genaue Adresse'), which shapes what the agent should expect from the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence listing the returned content, followed by a short privacy caveat. No filler, no repetition of the tool name or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing returns, and it does so by enumerating the field groups. It covers the privacy limitation as well. The only gap is behavior when a slug is unknown or unpublished (error vs empty result), which is not addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the sole slug parameter is documented in the schema as coming from search_properties. The description only restates 'per Slug' and adds no format, casing, or origin detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Details eines veröffentlichten Angebots per Slug') and enumerates the returned fields (Beschreibung, Lage, Ausstattung, Energiedaten, Bilder, Exposé-Link). It clearly separates this from the search-style siblings by scoping to a single listing keyed by slug, though it never names search_properties explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: fetch full details for one listing identified by slug. There is no explicit when-to-use versus when-not, nor a pointer to the sibling that produces the slug (the schema mentions search_properties, not the description). The 'veröffentlichten' qualifier hints that unpublished listings are out of scope but does not spell out the consequence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_guidesRatgeber durchsuchenARead-onlyIdempotentInspect
Stichwortsuche in veröffentlichten Ratgeber- und Magazinartikeln von Eigenheim Invest (z. B. Kaufnebenkosten, Erbschaft, Hausverkauf). Liefert Titel, Kurztext und Link.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | Maximale Treffer (1–20). | |
| query | Yes | Suchbegriff, z. B. 'Kaufnebenkosten'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds the useful scope constraint that only published articles are searched and discloses the shape of the result (Titel, Kurztext, Link), which matters because no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: scope and search type first, result contents second. No filler, nothing repeated from the name or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter search tool with no output schema, the description covers what is searched, the source restriction, and the returned fields. Minor gaps remain: no mention of result ordering, language of results, or behavior when nothing matches.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both query and limit are documented with ranges and an example), so the baseline is 3. The topical examples in the description loosely illustrate valid query terms but add no syntax, matching behavior, or ordering detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Stichwortsuche) plus the exact resource (veröffentlichte Ratgeber- und Magazinartikel von Eigenheim Invest) and gives topical examples. It is clearly distinguishable from sibling tools like search_properties or get_market_overview, which target listings and numbers rather than editorial content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource scope: keyword search over published guides. However, there is no explicit statement of when to prefer this over siblings (e.g. for background/explainer content vs. property data) and no exclusions or preconditions named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_propertiesImmobilienangebote suchenARead-onlyIdempotentInspect
Durchsucht die aktuell verfügbaren (aktiven, nicht verkauften) Immobilienangebote von Eigenheim Invest (Berlin Südwest und Umland) nach Objektart, Ort, Preis, Zimmern und Wohnfläche. Neueste zuerst.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | Maximale Treffer (1–50). | |
| location | Yes | Ort, Ortsteil oder PLZ (Teiltreffer), oder null. | |
| max_price | Yes | Höchstpreis € oder null. | |
| min_price | Yes | Mindestpreis € oder null. | |
| min_rooms | Yes | Mindestzimmer oder null. | |
| property_type | Yes | Objektart oder null. | |
| min_living_area | Yes | Mindestwohnfläche m² oder null. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds two genuinely useful facts not in the annotations — inventory is restricted to active/unsold listings and results are sorted newest-first — but says nothing about result format, pagination behavior, or what happens when filters match nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the inventory scope front-loaded and the sort order as a short trailing clause. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should ideally sketch the return shape; it only implies a newest-first list of listings. Given annotations cover the safety profile and the schema fully documents all parameters, this is nearly complete but leaves the result format slightly under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every one of the seven parameters is already documented in the schema. The description only echoes the filter dimensions (Objektart, Ort, Preis, Zimmer, Wohnfläche) and adds no matching syntax, null semantics, or range hints beyond what the schema provides — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (durchsucht) + resource (Immobilienangebote) with explicit scope: active, unsold listings from a named provider in a named region. It does not name the complementary sibling get_property_details or otherwise differentiate itself from the other read tools, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implicit — 'search by type, location, price, rooms, area' tells an agent what it is for, but there is no when-to-use/when-not guidance, no mention that get_property_details is the follow-up for a specific hit, and no note about how limit/pagination should be applied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
get_bodenrichtwerte1 field changed- changed
Input schema / properties / query / descriptionPrevious value: -"Ortsteil oder Bezirk, oder null für alle 96 Ortsteile."New value: +"Ortsteil oder Bezirk, oder null für alle 97 Ortsteile."
8 tool updates
- First observed
calculate_rental_yield - First observed
get_area_prices - First observed
get_bodenrichtwerte - First observed
get_market_overview - First observed
get_population_forecast - First observed
get_property_details - First observed
search_guides - First observed
search_properties
Related MCP Connectors
Berlin real estate for AI agents: granular market data and property search, free, by GUTHMANN®.
German property data per address, mostly from public authorities: parcel, land value, zoning, risks
Search German property listings and estimate what any German address is worth.
GDPR-clean property listings, rents, price stats, yields and below-market deals. UK, EU.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables read-only search and retrieval of real-estate listings, district browsing, and market price statistics such as median price per square meter.MIT

cenogram-mcp-serverofficial
AlicenseAqualityAmaintenance7M+ real estate transactions from Poland's RCN registry. Search, compare, and analyze prices30174 npm1MIT- AlicenseNot gradedqualityCmaintenanceAccess 17M+ geocoded French property transactions (DVF), 22M+ DPE energy ratings, and 20M+ building records via MCP or REST API. Search transactions, market stats, comparables, price trends, rental yield, flip detection, and more.MIT
- AlicenseNot gradedqualityDmaintenanceLive real estate market data for 895 US metros. Ask your AI assistant about home prices, rental yields, investment health scores, migration trends, and affordability. Free tier covers top 50 markets (no account needed). Premium tier unlocks all 895 markets, HUD Fair Market Rents, side-by-side market comparison, and filtered market search.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.