Objelio Immobiliensuche
Server Details
Search apartments, houses and plots for sale or rent in Germany, listed by real estate agents.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Each tool targets a distinct purpose: search, detail lookup, comparison, criteria explanation, affordability estimate, purchase-cost estimate, and alert subscription. The two calculators (affordable price vs. purchase costs) are clearly separated by domain and inputs, and explain_criteria explicitly states it does not search, avoiding overlap with search_listings.
All tools use consistent snake_case verb_noun naming (calculate_*, compare_listings, explain_criteria, get_*, search_listings). No mixed conventions or vague verbs; the pattern is predictable throughout.
Seven tools is well-scoped for a read-only real estate search assistant: each tool covers a distinct step in the workflow (search, inspect, compare, understand criteria, estimate costs, subscribe to alerts). No tool feels redundant or missing.
The surface covers the core lifecycle well: criteria explanation, searching, detail retrieval, comparison, cost estimates, and alert subscription, with outbound links for actions like saving or contacting agents. Minor gaps exist (e.g., no direct tool to save/favorite listings or contact an agent), but these are handled via objelio.de links.
Available Tools
7 toolscalculate_affordable_priceCalculate affordable priceARead-onlyIdempotentInspect
Estimates which purchase price a user can afford from equity and the monthly loan rate, after purchase costs of the federal state. Ask the user for equity, monthly rate and, if known, interest rate and repayment; otherwise suggested values are used and marked. Returns a link to an Objelio search with this price as maximum. An estimate, not financing advice.
| Name | Required | Description | Default |
|---|---|---|---|
| ort | No | Town for the search link, e.g. Paderborn. | |
| plz | No | Five-digit postal code, used to derive the state if state is missing. | |
| state | No | German federal state, code or name, e.g. NW, Bayern. | |
| equity_eur | Yes | Own capital in EUR. | |
| property_type | No | wohnung, haus or grundstueck, for the search link. | |
| interest_percent | No | Annual interest rate in percent. Leave out if the user does not know it. | |
| monthly_rate_eur | Yes | Monthly rate for interest and repayment in EUR. | |
| repayment_percent | No | Initial annual repayment in percent. | |
| commission_percent | No | Buyer's commission in percent, if expected. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hinweis | Yes | Estimate, no financing advice. Tell the user. |
| quellen | Yes | |
| annahmen | Yes | Inputs used. Values marked as suggestion should be confirmed with the user. |
| suche_link | Yes | Objelio search with this price as maximum. Offer it to the user. |
| darlehen_eur | Yes | Loan from monthly rate, interest and repayment. |
| partner_link | Yes | Optional page on objelio.de where the user can send a request to an Objelio partner (financing or short valuation), marked as a partner offer. Mention it only if the user asks about financing or valuation; never collect contact data in the chat. |
| rechner_link | Yes | |
| nebenkosten_eur | Yes | |
| gesamtbudget_eur | Yes | Equity plus loan. |
| nebenkosten_prozent | Yes | |
| moeglicher_kaufpreis_eur | Yes | Affordable purchase price after purchase costs, rounded down to 1,000 EUR. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real behavior beyond the annotations: unknown optional inputs are filled with suggested values and explicitly 'marked' in the result, and the return value is a link to an Objelio search capped at the computed price. The 'estimate, not financing advice' caveat sets expectations. Minor gap: no statement of precision or which assumptions drive the estimate.
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?
Three tight sentences: what it computes, what to collect from the user, and what comes back plus a disclaimer. No filler, and the core purpose is front-loaded.
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 9-parameter calculation tool with an output schema, this covers the essentials and correctly defers return-value detail to the output schema. It never mentions commission_percent or the location fields (ort/plz/property_type) as search-link inputs, leaving a small gap for a relatively complex signature.
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 coverage is 100%, so the baseline is 3, but the description adds meaning by clarifying that interest rate and repayment are optional and get substituted defaults when omitted. It also ties the state parameter to the purchase-cost adjustment, which the schema alone only hints at.
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 output ('Estimates which purchase price a user can afford') plus the exact inputs it derives from (equity, monthly loan rate) and the cost basis (federal-state purchase costs). This makes it clearly distinct from the sibling calculate_purchase_costs, which computes those costs rather than consuming 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?
Gives concrete call-time guidance: ask the user for equity and monthly rate, and for interest/repayment only 'if known', with defaults otherwise. It does not name alternatives or state when not to use it, so it falls short of a full routing 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_purchase_costsCalculate purchase costsARead-onlyIdempotentInspect
Estimates the additional costs of buying a property in Germany (Kaufnebenkosten): real estate transfer tax of the federal state, notary and land register as a usual range, and the buyer's commission. Pass a listing_id from search_listings to use its price, postal code and commission, or pass price and state. An estimate, not tax or legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| plz | No | Five-digit postal code, used to derive the state if state is missing. | |
| state | No | German federal state, code or name, e.g. NW, Bayern. | |
| price_eur | No | Purchase price in EUR. | |
| listing_id | No | A listing for sale from search_listings; fills price, state and commission. | |
| commission_percent | No | Buyer's commission in percent of the price, if any. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hinweis | Yes | Estimate, no tax, legal or financing advice. Tell the user. |
| quellen | Yes | |
| courtage | Yes | Buyer's commission as given. |
| bundesland | Yes | |
| gesamt_eur | Yes | Price plus purchase costs (range). |
| objekt_link | Yes | Listing page, if a listing was given. |
| partner_link | Yes | Optional page on objelio.de where the user can send a request to an Objelio partner (financing or short valuation), marked as a partner offer. Mention it only if the user asks about financing or valuation; never collect contact data in the chat. |
| rechner_link | Yes | The calculator on objelio.de. |
| kaufpreis_eur | Yes | |
| nebenkosten_eur | Yes | All purchase costs together (range). |
| notar_grundbuch | Yes | Notary and land register as a usual range. |
| grunderwerbsteuer | Yes | Real estate transfer tax of the state. |
| bundesland_aus_plz | Yes | true = state derived from the postal code; ask the user to confirm. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive and closed-world behavior, so the description's job is to add approximation semantics — which it does by flagging notary/land register as 'a usual range' and adding an 'estimate, not tax or legal advice' disclaimer. It still doesn't say what happens when no price or listing_id is supplied (all five parameters are optional).
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?
Front-loads what is calculated before explaining inputs, and each sentence carries information. The input-routing sentence is slightly dense but not padded.
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?
An output schema exists so return values need no explanation, annotations carry the safety profile, and the description covers scope, component assumptions and the two valid input paths. Enough for an agent to invoke it correctly.
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 coverage is 100%, so every parameter already carries its own description including the plz-derives-state fallback and the commission percentage bounds. The description restates the listing_id-to-price/state/commission linkage rather than adding new syntax or constraint detail, so 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?
States a specific verb and resource ('estimates the additional costs of buying a property in Germany') and enumerates the cost components covered: transfer tax, notary/land register, and buyer's commission. This clearly separates it from siblings like calculate_affordable_price or compare_listings.
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 input routing: pass a listing_id from search_listings to inherit price, postal code and commission, or alternatively pass price and state. It names the sibling tool to source the ID from, though it never states when to prefer this over calculate_affordable_price or what to do if neither input path is available.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_listingsCompare listingsARead-onlyIdempotentInspect
Compares two or three listings from search_listings side by side: price, price per square meter, estimated purchase costs, area, rooms, building, energy certificate, features and agent. Only stored data; missing information is "unbekannt". Returns a link to the same comparison on objelio.de, where the user can save the listings and contact the agents.
| Name | Required | Description | Default |
|---|---|---|---|
| listing_ids | Yes | Two or three ids from search_listings. |
Output Schema
| Name | Required | Description |
|---|---|---|
| zeilen | Yes | Comparison rows. Only stored data; price per m² is calculated, purchase costs are estimated. |
| hinweis | Yes | |
| objekte | Yes | The compared listings, in the order of the columns. |
| vergleich_link | Yes | The same comparison on objelio.de. Show it to the user. |
| nicht_verfuegbar | Yes | Ids that are no longer published. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world); the description adds genuinely new behavior: it only reads stored data and fills gaps with "unbekannt", and it returns a deep link to objelio.de where the user can save listings and contact agents. The only omission is what happens with invalid or deleted listing ids, and the return shape is covered by the output schema.
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, front-loaded with the comparison scope, followed by data-limitation and return-value notes. Every clause carries information an agent would not otherwise have.
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 low-complexity, single-parameter read tool with full schema coverage, an output schema, and complete annotations, nothing material is missing: purpose, compared attributes, data-freshness caveat, and the returned link are all stated.
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 parameter already documents its 2–3 item constraint, so the description only restates "two or three listings" plus the provenance from search_listings. Baseline 3 applies since the schema does the heavy lifting on semantics.
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 specific verb (compares) and resource (two or three listings) and enumerates exactly which attributes are compared, so the agent knows the output surface without opening the schema. It also ties itself to the sibling that produces the inputs (search_listings), differentiating it from get_listing (single) and search_listings (discovery).
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 description states the input provenance ("two or three listings from search_listings"), which implies the correct call sequence: search first, then compare. It does not explicitly say when not to use it, e.g. that a single listing should go through get_listing, so the routing guidance is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_criteriaExplain search criteriaARead-onlyIdempotentInspect
Shows how Objelio understands a search request in words, as structured criteria the user can check and correct before searching. Does not search.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The user's request in their own words. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hinweis | Yes | |
| in_worten | Yes | The criteria in German words. |
| kriterien | Yes | Structured criteria, can be passed as criteria to search_listings (leave out null and empty fields). |
| nicht_beruecksichtigt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint=false, destructiveHint=false), so the bar is lower. The description still adds real value by declaring that nothing is executed and that the output is a human-checkable interpretation — a behavioral trait the annotations do not 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?
Two sentences, front-loaded with the core purpose, closed with the key exclusion. No filler and nothing repeated from the title or schema.
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 one parameter, full annotation coverage, and an output schema handling return values, the description needs only to explain purpose and non-execution — both are present. It could be marginally more complete by acknowledging that search_listings is the natural next step after the user corrects the criteria.
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 coverage is 100% and the single parameter already carries a description ("The user's request in their own words"). The tool description echoes that idea without adding format, length, or phrasing guidance beyond the schema's minLength/maxLength constraints, so 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?
States a specific verb (shows/explains) and a specific resource (how a search request is interpreted as structured criteria), and explicitly negates the adjacent behavior with "Does not search." That single negation is what separates it from search_listings, so an agent can route correctly without opening either schema.
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 user can check and correct before searching" gives a clear usage window (pre-search verification) and "Does not search" states the exclusion. It stops short of naming search_listings as the follow-up step, so the alternative is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_listingGet listing detailsBRead-onlyIdempotentInspect
Full published details of one listing: description, features, energy certificate, commission (Courtage), the offering agent and the link to the listing page.
| Name | Required | Description | Default |
|---|---|---|---|
| search_id | No | The suche_id from search_listings, so an inquiry can be linked to the search. | |
| listing_id | Yes | The id from search_listings. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| ort | Yes | |
| plz | Yes | |
| demo | Yes | |
| lage | Yes | |
| link | Yes | Listing page on objelio.de, where the user contacts the agent. Always show it. |
| titel | Yes | |
| bilder | No | URLs of up to 8 photos in the agent's order; the first is titelbild. |
| angebot | Yes | |
| hinweis | Yes | |
| anbieter | Yes | The offering agent. |
| courtage | Yes | Buyer's commission. |
| merkmale | Yes | Features: true, false or null (no information). |
| ortsteil | Yes | |
| objektart | Yes | |
| preis_eur | Yes | |
| titelbild | Yes | |
| ausstattung | Yes | |
| beschreibung | Yes | |
| demo_hinweis | No | |
| bestaetigt_am | Yes | When the agent last confirmed that the listing and its details are current. |
| energieausweis | Yes | |
| preis_auf_anfrage | Yes | true = the agent does not publish the price (price on request); preis_eur is then null. Say so and never estimate a price. |
| veroeffentlicht_am | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is fully covered. The description adds some behavioral value by scoping to 'published' details, implying unpublished/withdrawn listings may not be returned. It says nothing about failure behavior for an invalid id, but the annotation bar is already met.
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, front-loaded with the verb and scope, then the field inventory. No filler, no restatement of the title, everything after the colon 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?
With an output schema present and annotations covering safety, the description does not need to explain return values, and it correctly focuses on what the tool is for. The only gap is that it never tells the agent to call this after search_listings, which matters for a tool that cannot be invoked without an id.
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 both parameters are documented in-schema, including the search_id/inquiry-linking rationale. The description adds no parameter-level meaning beyond what the schema already says, so it sits 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+resource ('Full published details of one listing') and enumerates what is included: description, features, energy certificate, commission, offering agent, link. An agent can immediately tell this is a single-record detail fetch rather than a search or comparison. It does not name a sibling to differentiate against, which keeps it from 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 statement of when to use this versus search_listings or compare_listings, and no prerequisite (e.g., 'call after search_listings to get a listing_id'). The only routing hint — 'the id from search_listings' — lives in the schema, not the description. Usage is inferable from the name alone, not from the text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_search_alert_linkGet search alert linkARead-onlyIdempotentInspect
Read-only. Returns a link to a page on objelio.de where the user can subscribe to e-mail alerts for these criteria: new matching listings and price reductions, at most one e-mail a day, unsubscribe with one click. Pass the same criteria as in search_listings (at least one, e.g. a location). The user enters the e-mail address on that page and confirms it by e-mail; do not ask for it in the chat. Nothing is saved until the user does so.
| Name | Required | Description | Default |
|---|---|---|---|
| criteria | Yes | Structured search criteria, as in search_listings. |
Output Schema
| Name | Required | Description |
|---|---|---|
| link | Yes | Page on objelio.de where the user enters an e-mail address and confirms it. Show it to the user. |
| hinweis | Yes | |
| kriterien | Yes | The saved criteria in German words. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, but the description adds behaviour the annotations cannot: nothing is saved until the user confirms, at most one e-mail per day, and one-click unsubscribe. It also discloses the hand-off point (the user acts on the linked page), which is decisive for correct agent behaviour.
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?
Front-loaded with "Read-only." and then the core return value, followed by operational constraints in short clauses. Every sentence carries either behaviour, workflow, or a constraint; nothing is repeated from the annotations or schema.
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?
An output schema exists, so the return value need not be explained in detail, and the description still says what the link leads to and what happens after the user follows it. For a single nested parameter tool, the agents' remaining questions (when, what criteria, who supplies the e-mail, what persists) are all answered.
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 coverage is 100%, so the baseline is 3 and the nested criteria object is fully self-documented. The description nevertheless adds cross-tool semantics (same criteria as search_listings) and the at-least-one constraint, though it does not restate the individual fields, which is appropriate.
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 (returns a link to a page on objelio.de where the user can subscribe to e-mail alerts for the given criteria) and immediately identifies what the link is for, which no sibling tool does. An agent can distinguish it from search_listings, get_listing, or explain_criteria without opening the schema.
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?
Explicitly instructs to pass the same criteria as search_listings with at least one criterion, and gives the alternative workflow constraint: the user enters the e-mail address on that page and confirms it by e-mail, so the agent should not ask for it in chat. That is both when-to-use and an explicit don't-do, which is rare and valuable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_listingsSearch listingsARead-onlyIdempotentInspect
Search published real estate listings on Objelio. Pass structured criteria (preferred) or the user's request as text. Returns up to 10 listings with price, area, rooms, a fit per criterion (erfuellt = met, abweichend = slightly outside, unbekannt = no information) and a link to the listing page where the user can contact the agent.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | The user's request in their own words (German or English), used only if criteria is missing. | |
| criteria | No | Structured search criteria. Leave out fields the user did not mention. |
Output Schema
| Name | Required | Description |
|---|---|---|
| anzahl | Yes | Total number of matching listings, demo listings included. |
| hinweis | Yes | |
| treffer | Yes | |
| suche_id | Yes | Pass to get_listing as search_id. |
| kriterien | Yes | The applied criteria in German words. |
| anzahl_echt | Yes | Number of real listings (without demo listings). Real listings come first in treffer. |
| vorschlaege | Yes | Wider searches with their number of real listings, only when there is no real listing. Offer them to the user. |
| vergleich_link | Yes | Side-by-side comparison of the first three listings on objelio.de, where the user can save them and contact the agents. |
| suchprofil_link | No | Short questionnaire on objelio.de (location, size, budget, financing) with budget range, purchase costs, matching listings and a search alert. Offer it when the user's wishes are still vague. |
| suchauftrag_link | Yes | Page on objelio.de to get new matching listings by e-mail. The user enters the address there, never in the chat. |
| nicht_beruecksichtigt | Yes | Wishes that did not filter. |
| alle_treffer_auf_objelio | Yes | The same search on objelio.de. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a safe, read-only, idempotent operation. The description adds meaningful behavioral context beyond annotations: it returns up to 10 results, explains the fit labels (erfuellt, abweichend, unbekannt), and notes the listing link for contacting the agent.
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 description is three sentences, front-loaded with purpose, followed by input mode and return behavior. Every sentence contributes useful information with no obvious waste.
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?
Given the rich nested input schema, existing output schema, and annotations, the description is complete enough for an agent to select and invoke the tool. It covers purpose, preferred input mode, result limit, fit interpretation, and contact path without duplicating structured fields unnecessarily.
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 detailed criteria fields are already fully documented. The description adds only the high-level preference for structured criteria over text, which is useful but does not significantly expand parameter semantics 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: searching published real estate listings on Objelio. It is clear what the tool does, but it does not explicitly distinguish its role from siblings such as compare_listings or get_listing.
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 useful input-mode guidance: structured criteria are preferred, with text as a fallback. However, it does not explain when to use this tool versus alternatives like compare_listings, get_listing, or explain_criteria, 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.
7 tool updates
- First observed
calculate_affordable_price - First observed
calculate_purchase_costs - First observed
compare_listings - First observed
explain_criteria - First observed
get_listing - First observed
get_search_alert_link - First observed
search_listings
Related MCP Connectors
Search German property listings and estimate what any German address is worth.
Find a home in Germany: search athaus listings, save searches, send enquiries and book viewings.
German foreclosure auctions (Zwangsversteigerungen): search, details, AI analysis, statistics.
Real estate brokerage in Germany: listings, enquiries, viewings, valuations, drafts, social posts.
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.-

Assetfy MCP Serverofficial
AlicenseNot gradedqualityAmaintenanceEnables AI assistants to answer plain-language queries about official real estate data in Germany and Austria, covering cadastral parcels, zoning plans, land values, buildings, terrain, 3D models, aerial images, and property listings. Parcel and listing results link to map views with outlines, plans, buildings, and aerial imagery.MIT- AlicenseAqualityDmaintenanceEnables searching Austria's largest classifieds marketplace (willhaben.at) for real estate, cars, jobs, and second-hand items via natural-language queries and structured filters, with full listing details.74 npm2MIT
- AlicenseNot gradedqualityDmaintenanceAI-powered virtual staging for real estate professionals: stage empty rooms with photorealistic furniture, beautify floor plans into 3D renders, classify rooms, generate German property descriptions, and get style recommendations.4MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.