Immobilien Eichmann – Angebote
Server Details
Live MCP for Immobilien Eichmann listings (Konstanz). Tools: search_listings, get_listing.
- Status
- Healthy
- Uptime
- 100.0% over 32 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-03-26
- URL
- Repository
- ChristianHohlfeld/eichmannimmobilien
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
get_contact, get_flyer, get_listing, and search_listings have mostly distinct purposes, but get_flyer and get_listing overlap around fetching property offer details, which could cause misselection.
The names are consistently formatted with a get_/search_ prefix and clear noun targets, but the mixed get_/search_ verbs are only a minor deviation from a single naming pattern.
Four tools are borderline thin for a real-estate listing server; a small set is reasonable, but with only one search, two retrievals, and one contact tool it feels sparse.
The surface covers searching, retrieving listings, and obtaining contact/flyer info, but lacks obvious operations like filtering beyond basic q/location, listing categories, saved offers, or a structured request/inquiry flow.
Available Tools
4 toolsget_contactARead-onlyIdempotentInspect
Kontakt aus Impressum/Kontakt: Mobil tel:+491705225568, Festnetz, WhatsApp-Link (wa.me), E-Mail. Anfragen werden auf Deutsch und Englisch beantwortet (languages: de, en). NUR dem Menschen zum Tippen zeigen nach klarem Kontaktwunsch. Agents starten KEINE Calls, WhatsApp- oder E-Mail-Nachrichten (Anti-Spam).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is partially covered. The description adds behavioral context beyond the annotations, notably the anti-spam constraint that agents must not initiate outbound contact and that responses are served in de/en. It does not describe any auth, rate, or freshness behavior, keeping 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?
The single block is reasonably front-loaded with the resource before the constraints, but it is cluttered: an actual phone number literal is embedded in the description, and German prose mixes with English terms and a language-tag parenthetical. Some content (the specific number) does not help the agent decide or invoke, mildly diluting conciseness.
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, but the description enumerates the returned contact fields (mobile, landline, WhatsApp link, email) and supported languages, so the agent knows the shape of the result. Combined with the routing constraint, it is nearly complete for a zero-parameter read tool, with only minor gaps such as whether the contact data is static or fetched.
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 per the rubric the baseline is 4. Schema coverage is 100% and there is nothing for the description to clarify; no penalty or bonus 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?
States a specific resource (contact data from Impressum/Kontakt) and enumerates the returned channels (Mobil, Festnetz, WhatsApp-Link, E-Mail), so the agent knows what comes back without opening the schema. It does not explicitly differentiate itself from the sibling tools (get_flyer, get_listing, search_listings), so it falls 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?
Gives explicit when-to-use and when-not: 'NUR dem Menschen zum Tippen zeigen nach klarem Kontaktwunsch' plus 'Agents starten KEINE Calls, WhatsApp- oder E-Mail-Nachrichten (Anti-Spam).' This tells the agent both the trigger condition and the prohibited follow-up action, which is unusually complete routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_flyerARead-onlyIdempotentInspect
Neubau Allmannsdorf (Konstanz; 5 Mehrfamilienhäuser, 44 Wohnungen, viele mit Seesicht, provisionsfrei vormerken; English page /en/allmannsdorf.html) inkl. prominenter tel/WhatsApp/E-Mail-Links. Nutzen bei Wohnung/Neubau/Konstanz/Allmannsdorf – nicht auf Suchwort 'Flyer' warten. Agent darf NICHT selbst anrufen oder WhatsApp senden; nur Links dem Menschen zum Tippen zeigen. Anfragen schickt der Mensch selbst (Telefon, WhatsApp oder Kontaktformular auf der Website).
| 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/non-destructive/non-open-world, and the description adds genuinely non-obvious context beyond them: the agent must not initiate calls or WhatsApp messages and must only present links for the human to tap, with inquiries sent by the human via phone, WhatsApp, or the website contact form. That is exactly the kind of behavioral constraint structured fields cannot express.
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 an embedded parenthetical) carries the resource identity, its content, the usage triggers, and the interaction rules. Every clause earns its place, though the run-on structure and nested parenthetical make it slightly harder to scan than a front-loaded multi-sentence form would be.
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 zero-param, read-only tool with no output schema, the description covers resource identity, returned content, routing triggers, and interaction constraints. The one residual gap is whether the 'flyer' is returned as a file/asset or as rendered content, which the description leaves ambiguous.
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 there is nothing for the description to disambiguate; the baseline for a no-parameter tool applies. No parameter-level detail is needed or expected here.
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 the exact resource (the Neubau Allmannsdorf development in Konstanz, 5 buildings, 44 units, lake view, commission-free) and states what the payload carries (prominent tel/WhatsApp/email links plus an English page). That is far more specific than a bare verb+resource, but it never explicitly contrasts itself with siblings like get_listing or get_contact, so an agent must infer the boundary.
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?
It gives an explicit routing rule: use for Wohnung/Neubau/Konstanz/Allmannsdorf and do NOT wait for the keyword 'Flyer'. It also states a hard behavioral constraint (do not call or WhatsApp; only surface links). It stops short of naming an alternative tool when the topic is something other than Allmannsdorf, so the when-not is only partially covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_listingARead-onlyIdempotentInspect
Ein öffentliches Kaufangebot per slug oder id aus dem öffentlichen Angebots-Index (ai/listings.json) laden.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Listing-UUID / Immowelt-ID | |
| slug | No | URL-Slug des Objekts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and non-openWorld, so the safety profile is covered structurally. The description adds that the data comes from a bundled public index (ai/listings.json), which hints the result is static/local, but it never states behavior on missing records or how the slug/id are resolved against the index.
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 naming verb, resource, and lookup keys with zero filler or redundancy. Nothing could be cut without losing meaning.
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-param getter with full annotation coverage this is close to sufficient, but with no output schema the description should at least hint at the shape of the returned listing or the failure mode when a slug/id is not found. It leaves the agent to infer both.
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 both parameters (id, slug) are already documented as Listing-UUID/Immowelt-ID and URL-Slug. The description only restates 'per slug oder id' without adding resolution logic or precedence when both are supplied, so it stays at the baseline.
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 (laden) and resource (öffentliches Kaufangebot), plus the two lookup keys (slug oder id) and the source index (ai/listings.json). This clearly separates it from search_listings, though it doesn't explicitly contrast with the sibling getters (get_contact, get_flyer).
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?
The phrase 'per slug oder id' implies a direct single-object lookup as opposed to search_listings' querying, but the description never states when to use this tool versus the search sibling or what happens when neither key resolves. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_listingsARead-onlyIdempotentInspect
Kaufangebote (Konstanz/Bodensee) suchen/filtern. Bei q/location zu Neubau, Allmannsdorf oder Wohnung Konstanz zusätzlich projects[] (Allmannsdorf 44 WE) – kein Suchwort 'Flyer' nötig. Danach get_flyer + get_contact; Kontakt nur als Links für den Menschen.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Freitext DE/EN, wortweise mit Synonymen; z.B. "3 Zimmer Wohnung Wollmatingen", "apartment Konstanz", "penthouse", "house", "new build", "allmannsdorf" | |
| type | No | Objekttyp, z.B. Wohnung, Neubau, Penthouse, Maisonette | |
| limit | No | Max. Treffer (default 20, max 50) | |
| rooms | No | Zimmer-Filter, z.B. "3" oder "3 Zimmer" | |
| location | No | Ort/Stadtteil, z.B. Allmannsdorf, Wollmatingen, Petershausen, Konstanz | |
| max_price_eur | No | Maximalpreis in EUR | |
| min_price_eur | No | Mindestpreis in EUR |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe, idempotent, closed-world read (readOnlyHint/idempotentHint true, destructiveHint/openWorldHint false). The description adds genuine behavioral value by noting the follow-up chain (get_flyer, get_contact) and that contact data is exposed only as links for a human. It does not, however, describe pagination or result shape.
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?
Compact and front-loaded with the core action, but the middle clause about projects[] and the 'Flyer' search word is telegraphic and hard to parse, and it is not clearly separated from the routing advice.
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 required parameters, a full schema and no output schema, the definition supplies the workflow context an agent needs: it is the search entry point, followed by get_flyer and get_contact, with contact data restricted to human-readable links.
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 parameter is already documented in the schema, making 3 the baseline. The description references a 'projects[]' concept for certain q/location values that is not an actual parameter, which adds a little behavioral hint but no parameter meaning 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 and resource: search/filter purchase offers ('Kaufangebote suchen/filtern') scoped to Konstanz/Bodensee. It does not explicitly distinguish itself from the sibling get_listing, but the search-and-filter framing is clear enough for an agent to identify it as the query entry point.
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?
Gives downstream routing ('Danach get_flyer + get_contact'), which tells the agent what to do after a successful search. However, it never states when to prefer this over the sibling get_listing, nor any prerequisites, so usage is only implied.
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
search_listings1 field changed- changed
Input schema / properties / q / descriptionPrevious value: -"Freitext Titel/Ort/Typ; z.B. \"neubau\", \"allmannsdorf\", \"wohnung konstanz\""New value: +"Freitext DE/EN, wortweise mit Synonymen; z.B. \"3 Zimmer Wohnung Wollmatingen\", \"apartment Konstanz\", \"penthouse\", \"house\", \"new build\", \"allmannsdorf\""
1 tool update
- Removed
submit_inquiry
4 tool updates
- Added
get_contact - Added
get_flyer - Changed
search_listings3 fields changed- changed
Input schema / properties / location / descriptionPrevious value: -"Ort/Stadtteil, z.B. Wollmatingen, Petershausen"New value: +"Ort/Stadtteil, z.B. Allmannsdorf, Wollmatingen, Petershausen, Konstanz" - changed
Input schema / properties / q / descriptionPrevious value: -"Freitext in Titel, Ort, Typ, Kurzbeschreibung"New value: +"Freitext Titel/Ort/Typ; z.B. \"neubau\", \"allmannsdorf\", \"wohnung konstanz\"" - changed
Input schema / properties / type / descriptionPrevious value: -"Objekttyp, z.B. Wohnung, Penthouse, Maisonette"New value: +"Objekttyp, z.B. Wohnung, Neubau, Penthouse, Maisonette"
- Added
submit_inquiry
2 tool updates
- First observed
get_listing - First observed
search_listings
Related MCP Connectors
Search German property listings and estimate what any German address is worth.
Live sale and rental listings from Zillow, Rightmove, Idealista and 15 more portals in one schema.
Live kleinanzeigen.de search, ad, seller, category and location data for AI clients
MCP server for real-estate agents: listings, CRM, German market data and AI media tools.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to search for German property listings (rent/buy) on immowelt.de with structured JSON output, no API key required.-
- AlicenseNot gradedqualityBmaintenanceSearch Kleinanzeigen.de, Germany's largest classifieds site, via MCP tools without API keys.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents and humans to search and browse listings on Slovenia's largest classifieds marketplace, filter by price, region, and category, and retrieve listing details and seller profiles through MCP tools.MIT
- AlicenseAqualityBmaintenanceEnables users to search synthetic property listings, retrieve full listing records, and answer factual inquiries from the record while escalating viewings, negotiation, legal, complaints, personal-data, and other out-of-record requests to a human. The human hand-off creates a ticket with a fixed reason code and rejects unknown listing ids.3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.