chathome.lu — Luxembourg Real Estate
by chathome.lu · remote · no sign-in to list tools · v1.0.0 · published by lu.chathome
Luxembourg real estate for AI agents: property search, price estimates, market data, commutes.
15 tools: 1 can delete or cancel things, 2 change things and 12 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things2Claude Code: ask: see these tools
- Only reads12Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http chathome https://chathome.lu/api/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnanalyze_lease
The server marks "analyze_lease" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "analyze_lease" says "analyze": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
15 tools
Deletes or cancels 1Claude Code: deny
submit_inquirySubmit an inquiry about a listing.No findings
Why it is in this group
- The name "submit_inquiry" says "submit": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Submit an inquiry about a listing. For chathome-hosted listings creates a conversation thread; for external agency listings returns agency contact details.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
Changes things 2Claude Code: ask
analyze_leaseAnalyze a caller-provided Luxembourg residential lease PDF or raw text, persist the full user-scoped analysis, and return a compact risk summary.1 finding
Why it is in this group
- The name "analyze_lease" says "analyze": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "analyze_lease" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "analyze_lease" says "analyze": a word for reading.
Description, as the server wrote it Analyze a caller-provided Luxembourg residential lease PDF or raw text, persist the full user-scoped analysis, and return a compact risk summary. Do not provide payment-card data, government identifiers, health data, passwords, API keys, or authentication codes.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
render_listing_cardsRender one to eight exact results from a prior property search as an interactive MCP Apps photo carousel.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Render one to eight exact results from a prior property search as an interactive MCP Apps photo carousel. Call a search tool first, then copy its listing IDs and any returned match scores/reasons without alteration. The tool re-reads canonical public listing facts before display.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Only reads 12Claude Code: allow
compare_listingsCompare two to eight listings through one normalized AgentListing v2 response, including known and estimated costs, availability, property facts, official flood/noise checks, stati…No findings
Why it is in this group
- The name "compare_listings" says "compare": a word for reading.
Description, as the server wrote it Compare two to eight listings through one normalized AgentListing v2 response, including known and estimated costs, availability, property facts, official flood/noise checks, station frequency, commute summaries, value context, provenance, freshness, duplicates, constraints, and explicit unknown fields.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_affordabilityCalculate Luxembourg mortgage affordability and state whether the property-price ceiling includes every acquisition cost or only currently known costs.No findings
Why it is in this group
- The name "get_affordability" says "get": a word for reading.
Description, as the server wrote it Calculate Luxembourg mortgage affordability and state whether the property-price ceiling includes every acquisition cost or only currently known costs.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_commute_timesCommute time estimates from a Luxembourg commune to a major employment hub (Luxembourg City, Kirchberg EU Quarter, or Belval) across four transport modes.No findings
Why it is in this group
- The name "get_commute_times" says "get": a word for reading.
Description, as the server wrote it Commute time estimates from a Luxembourg commune to a major employment hub (Luxembourg City, Kirchberg EU Quarter, or Belval) across four transport modes.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_inquiry_statusPoll an MCP agent inquiry conversation for agent replies.No findings
Why it is in this group
- The name "get_inquiry_status" says "get": a word for reading.
Description, as the server wrote it Poll an MCP agent inquiry conversation for agent replies. Returns the current status and full message thread.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_listingGet the full fail-closed listing page: its public record, price history, area trend, family amenities, neighbourhood facts, property passport, parcel dossier, normalized costs, off…No findings
Why it is in this group
- The name "get_listing" says "get": a word for reading.
Description, as the server wrote it Get the full fail-closed listing page: its public record, price history, area trend, family amenities, neighbourhood facts, property passport, parcel dossier, normalized costs, official checks, transport, provenance, unknown fields, a summary line built from its facts, proven features and measured area facts with their sources, our saved buy-vs-rent and investor estimate (listingTools: dated rate and rent, yields before and after vacancy, a known-costs-only example that is never a verdict, completeness flags), URL, and photos.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_listing_truthTrust-layer view of the full fail-closed listing page, including its public record and page context, normalized costs, official checks, sources, freshness, explicit unknowns, and p…No findings
Why it is in this group
- The name "get_listing_truth" says "get": a word for reading.
Description, as the server wrote it Trust-layer view of the full fail-closed listing page, including its public record and page context, normalized costs, official checks, sources, freshness, explicit unknowns, and privacy-safe correction totals. No reporter identities are exposed.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_market_contextGet bounded, source-backed property context for a commune, with source dates and unknown states.No findings
Why it is in this group
- The name "get_market_context" says "get": a word for reading.
Description, as the server wrote it Get bounded, source-backed property context for a commune, with source dates and unknown states.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_price_estimateAI-powered price estimate for a Luxembourg property.No findings
Why it is in this group
- The name "get_price_estimate" says "get": a word for reading.
Description, as the server wrote it AI-powered price estimate for a Luxembourg property. The chathome valuation model is trained and backtested on historical property listing asking prices, not deed-level sales. Returns an estimated price, confidence interval, and comparable listing statistics.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_town_agenciesGet every estate agency with active listings in a supported Luxembourg town, including current buy/rent stock and asking-price ranges.No findings
Why it is in this group
- The name "get_town_agencies" says "get": a word for reading.
Description, as the server wrote it Get every estate agency with active listings in a supported Luxembourg town, including current buy/rent stock and asking-price ranges.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_for_saleSearch properties for sale across supported Grande Région inventory by location, price, rooms, area, property type, and positive-evidence amenities, with explicit sort and complete…No findings
Why it is in this group
- The name "search_for_sale" says "search": a word for reading.
Description, as the server wrote it Search properties for sale across supported Grande Région inventory by location, price, rooms, area, property type, and positive-evidence amenities, with explicit sort and completeness metadata. Every sourced result identifies and links the original agency listing and states its latest catalogue re-sighting time; thumbnails of the top results are attached as image content blocks.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_rentalsSearch active Luxembourg rentals by location, rooms, area, property type, positive-evidence amenities, advertised base rent, or a separate strict confirmed monthly-obligation ceili…No findings
Why it is in this group
- The name "search_rentals" says "search": a word for reading.
Description, as the server wrote it Search active Luxembourg rentals by location, rooms, area, property type, positive-evidence amenities, advertised base rent, or a separate strict confirmed monthly-obligation ceiling. The strict ceiling excludes listings when required recurring charges, fees, evidence, or source freshness are incomplete. Returned counts include explicit completeness metadata; every sourced result links the original agency listing and states its latest catalogue re-sighting time.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_vibePreferred natural-language ('vibe') property search.No findings
Why it is in this group
- The name "search_vibe" says "search": a word for reading.
Description, as the server wrote it Preferred natural-language ('vibe') property search. Pass the user's request as prose and the engine matches on lifestyle, mood, proximity, and soft preferences via embeddings + LLM reasoning. Healthy runs return source-grounded match reasons and a 0-100 request-fit score (not a probability); degraded runs explicitly omit ranking claims. Every sourced result identifies and links the original agency listing and states its latest catalogue re-sighting time. The response's understanding block states what was understood; wishes in understanding.notChecked are not confirmed for any returned home. If the requested place cannot be resolved safely, it returns no listings plus a machine-readable unanswerable reason instead of substituting unrelated homes.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http chathome https://chathome.lu/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__chathome__search_vibe",
"mcp__chathome__search_rentals",
"mcp__chathome__search_for_sale",
"mcp__chathome__get_listing",
"mcp__chathome__compare_listings",
"mcp__chathome__get_listing_truth",
"mcp__chathome__get_market_context",
"mcp__chathome__get_town_agencies",
"mcp__chathome__get_price_estimate",
"mcp__chathome__get_affordability",
"mcp__chathome__get_commute_times",
"mcp__chathome__get_inquiry_status"
],
"ask": [
"mcp__chathome__render_listing_cards",
"mcp__chathome__analyze_lease"
],
"deny": [
"mcp__chathome__submit_inquiry"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as chathome. Review it before you use it.