eCommerce
chathome.lu
Assists with property search in Luxembourg using natural language queries and compares costs, commute, and risks.
ENDPOINT 1
https://chathome.lu/api/mcp
MCP server metadata
- Name
- chathome
- Version
- 1.9.0
chathome MCP server — property search across supported Grande Région inventory, plus Luxembourg market and housing intelligence. Presenting results to a human (chat assistants — follow this exactly): - Do NOT ask the user clarifying questions before the FIRST search. Call search_vibe immediately with the user's own words (default intent "rent"; use "buy" only when purchase intent is clear). The engine handles vague, partial, and lifestyle queries. Offer refinements only AFTER showing initial results. - Search and detail responses attach thumbnail photos of the top results as image content blocks, each preceded by a text label naming the listing. Display these images to the user next to the matching listing summary — never describe a photo instead of showing it. - For every listing you present, include: the title as a clickable link to its "url" field (canonical chathome.lu page with full gallery and contact options), the price, location (city/district), beds · baths · areaSqm, and one line from "description" or "matchReasons". - Show roughly the top 5 results in detail and summarise the rest in one line. "total" is exactly the number of listing objects returned in this response, not the number of matching homes in the market. Available tools: - search_vibe: PREFERRED search — natural-language / "vibe" semantic search. Pass the user's request as prose ("quiet 2-bed near Kirchberg with a balcony under €2000") and the engine matches on lifestyle, mood, proximity and soft preferences via embeddings + LLM reasoning. A score is a 0-100 request-fit value, not a probability or market percentile. If ranking.status is "degraded", no scores/reasons are returned: disclose the note and retry before presenting ranked matches. When coverageNotice is present, explain that the requested place is outside current coverage; never substitute unrelated homes. (scope: listings:read) - search_rentals: structured rental search by commune, price, beds, etc. (scope: listings:read) - search_for_sale: search properties for sale (scope: listings:read) - render_listing_cards: after a search, show 1-8 exact matches as an interactive photo carousel. Copy listing IDs and any score/matchReasons exactly from the search result; never invent display facts. (scope: listings:read) - get_listing: fetch the full fail-closed listing page, including price history, area trend, family amenities, neighbourhood facts, passport, parcel dossier, costs, property checks and transport (scope: listings:read) - compare_listings: fetch 2-8 listing IDs through one normalized evidence-aware comparison, including costs, property checks and mobility (scope: listings:read) - get_listing_truth: trust-layer view of a listing — facts + sources + freshness + which facts are still unknown + a privacy-safe summary of user-reported corrections. Call before acting on a listing to gauge how much to trust the data. (scope: listings:read) - get_market_context: get market data and liveability scores for a commune (scope: market:read) - get_town_agencies: get every agency with live stock in a supported Luxembourg town (scope: market:read) - get_price_estimate: AI-powered price estimate for a property (scope: market:read) - get_affordability: mortgage affordability simulation using current Luxembourg rates and acquisition costs (scope: market:read) - get_commute_times: commute times from a commune to a major employment hub (scope: market:read) - analyze_lease: analyze a caller-provided lease PDF or text and persist a user-scoped risk report (scope: documents:write, OAuth user only) - submit_inquiry: send an inquiry about a listing; creates a conversation or returns external agency contacts (scope: inquiries:write) - get_inquiry_status: poll an MCP agent inquiry conversation for replies (scope: inquiries:read) Available resources: - chathome://listing/{id}: read a single listing by ID Available prompts: - find-family-home: guided search for family-friendly rentals - compare-communes: compare two Luxembourg communes side by side - match-properties: anonymous natural-language search followed by picture cards Authenticate each request with an API key via X-API-Key header or Authorization: Bearer <token>. The public property journey needs NO account and NO credential: search_vibe, search_rentals, search_for_sale, render_listing_cards, get_listing, compare_listings, and get_market_context. Call these straight away. Anonymous callers have smaller hourly limits, while OAuth or an X-API-Key provides higher limits. Every other tool, and everything that writes or is user-specific (submit_inquiry, analyze_lease, get_inquiry_status), requires authentication and answers 401 without it. Agent-to-agent flow: 1. Prefer search_vibe with the user's natural-language request; fall back to search_rentals / search_for_sale for purely structured queries. After choosing the best 1-8 results, call render_listing_cards with the exact IDs and any returned scores/reasons so compatible chat clients show the photo carousel. 2. Call compare_listings for a normalized shortlist and get_listing for the complete public listing page: its record plus price history, area trend, family amenities, neighbourhood facts, passport, parcel dossier, exact property checks and transport. Use get_market_context / get_commute_times for broader area questions. Call get_listing_truth before relying on a listing. 3. Call get_price_estimate to validate asking price against the valuation model, or get_affordability to derive a safe budget ceiling. 4. For lease review, call analyze_lease only with user-provided bytes/text and an OAuth user token. Never send payment-card data, government identifiers, health data, passwords, API keys, or authentication codes. 5. Call submit_inquiry to contact the listing owner. If the listing is externally managed, agency contact details are returned directly. 6. Call get_inquiry_status to poll for replies.
Known tools 15
search_rentalsSearch rental properties across supported Grande Région inventory by location, price, rooms, area, property type, and positive-evidence amenities, with explicit sort and completeness metadata.
Inferred read-onlysearch_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 completeness metadata.
Inferred read-onlyrender_listing_cardsRender one to eight exact results from a prior property search as an interactive MCP Apps photo carousel.
Inferred read-onlyget_listingGet 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, URL, and photos.
Inferred read-onlycompare_listingsCompare 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.
Inferred read-onlyget_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 privacy-safe correction totals.
Inferred read-onlyget_market_contextGet real estate market data and liveability scores for a commune — prices, trends, schools, transport.
Inferred read-onlyget_town_agenciesGet every estate agency with active listings in a supported Luxembourg town, including current buy/rent stock and asking-price ranges.
Inferred read-onlyget_affordabilityCalculate Luxembourg mortgage affordability and state whether the property-price ceiling includes every acquisition cost or only currently known costs.
Inferred read-onlyget_commute_timesCommute time estimates from a Luxembourg commune to a major employment hub (Luxembourg City, Kirchberg EU Quarter, or Belval) across four transport modes.
Inferred read-onlyanalyze_leaseAnalyze a caller-provided Luxembourg residential lease PDF or raw text, persist the full user-scoped analysis, and return a compact risk summary.
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.chathome]
url = "https://chathome.lu/api/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"chathome": {
"type": "http",
"url": "https://chathome.lu/api/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: chathome
Remote MCP URL: https://chathome.lu/api/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"chathome": {
"url": "https://chathome.lu/api/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"chathome": {
"type": "http",
"url": "https://chathome.lu/api/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "chathome",
"transport": "streamable-http",
"url": "https://chathome.lu/api/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Trust Data Available
BuiltWith Trust API v2 evidence for chathome.lu was fetched 2026-07-31T08:15:32.117Z and is being refreshed.
chathome.lu is assessed as Neutral: No suspicious signals found, but no strong positive signal either
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.