accueil / serveurs / Recherche & Web / lu.chathome/chathome
lu.chathome/chathome
serveur MCP (Model Context Protocol) · chathome 1.9.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que lu.chathome/chathome est sûr ?
Au dernier audit MCP Hub, le serveur MCP « lu.chathome/chathome » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 15 outils
- analyze_lease≈ 534 tokens
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.
Paramètres, retour & exemple (4)
Paramètrestext· string · optionnel
Raw lease text when a PDF is not available. Do not pass URLs, payment-card data, government identifiers, health data, passwords, API keys, or authentication codes.fileName· string · optionnellanguage· string · optionnel · en | fr | de | lu | ptpdfBase64· string · optionnel
Base64-encoded PDF bytes. Do not pass URLs, payment-card data, government identifiers, health data, passwords, API keys, or authentication codes.
Exemple d'appel{"name": "analyze_lease", "arguments": {"text": "texte", "fileName": "texte", "language": "en", "pdfBase64": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"trust": {}, "clauses": [], "isLease": true, "persisted": true, "severityCounts": {}, "overallRiskScore": 1}} - compare_listings≈ 4172 tokens
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.
Paramètres, retour & exemple (2)
Paramètresids· array · requis
Two to eight listing IDs returned by a ChatHome search toollocale· string · optionnel · en | fr | de | lu | pt | lb
Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')
Exemple d'appel{"name": "compare_listings", "arguments": {"ids": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"trust": {}, "listings": [], "notFoundIds": [], "schemaVersion": "texte", "comparisonFields": []}} - get_affordability≈ 830 tokens
Calculate Luxembourg mortgage affordability and state whether the property-price ceiling includes every acquisition cost or only currently known costs.
Paramètres, retour & exemple (16)
ParamètresmarketRate· number · optionnelmonthlyDebts· number · optionnel
Existing monthly debt paymentsresidenceUse· string · optionnel · unknown | primary | other
Residence use; omitted or unknown preserves an unconfirmed Bëllegen positionhouseholdType· string · requis · single | coupleloanTermYears· integer · optionnelresidencyType· string · requis · luxembourg | cross_border_fr | cross_border_be | cross_border_deemploymentType· string · requis · salaried | self_employed | civil_servantannualNetIncome· number · requis
User-confirmed annual household net incomeisFirstTimeBuyer· boolean · optionnel
Deprecated optional compatibility signal; never proves Bëllegen entitlementsavingsAvailable· number · requis
Available savings/down paymentisPersonalResidence· boolean · optionnel
Deprecated residence-use compatibility flag; prefer residenceUsemaxDebtToIncomeRatio· number · requis
Explicit housing-payment share of net income, e.g. 0.35energyClassDiscountPct· number · optionnelbellegenAktEligibleBuyers· integer · optionnel
Explicitly confirmed eligible acquirer countbellegenAktCreditAvailable· number · optionnel
Aggregate unused Bëllegen Akt balance explicitly confirmed for the acquirersfloodZoneRateAdjustmentPct· number · optionnel
Exemple d'appel{"name": "get_affordability", "arguments": {"householdType": "single", "residencyType": "luxembourg", "employmentType": "salaried", "annualNetIncome": 1, "savingsAvailable": 1, "maxDebtToIncomeRatio": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"trust": {}, "freshness": "texte", "confidence": "texte", "maxPropertyPrice": 1, "maxPropertyPriceCostBasis": "complete"}} - get_commute_times≈ 501 tokens
Commute time estimates from a Luxembourg commune to a major employment hub (Luxembourg City, Kirchberg EU Quarter, or Belval) across four transport modes.
Paramètres, retour & exemple (3)
Paramètresmode· string · requis · driving | transit | cycling | walking
Transport modecommune· string · requis
Luxembourg commune name or slug to get commute times from, e.g. 'esch-sur-alzette', 'differdange'destination· string · requis · lux-city | kirchberg | belval
Commute destination: lux-city (Luxembourg City centre), kirchberg (EU Quarter), or belval (Esch/Belval)
Exemple d'appel{"name": "get_commute_times", "arguments": {"mode": "driving", "commune": "texte", "destination": "lux-city"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"mode": "texte", "stale": true, "trust": {}, "source": "texte", "commune": "texte", "minutes": "texte", "distanceKm": "texte", "destination": "texte"}} - get_inquiry_status≈ 370 tokens
Poll an MCP agent inquiry conversation for agent replies. Returns the current status and full message thread.
Paramètres, retour & exemple (1)
ParamètresconversationId· string · requis
The conversation ID returned by submit_inquiry when kind is conversation_created
Exemple d'appel{"name": "get_inquiry_status", "arguments": {"conversationId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"trust": {}, "status": "replied", "messages": [], "conversationId": "texte"}} - get_listing≈ 6414 tokens
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.
Paramètres, retour & exemple (3)
Paramètresid· string · requis
Listing IDlocale· string · optionnel · en | fr | de | lu | pt | lb
Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')includePhotos· boolean · optionnel
Attach thumbnail photos of the listing as image content blocks (default: true). Set false for a lean text-only response.
Exemple d'appel{"name": "get_listing", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"trust": {}, "listing": {}, "pageText": {}, "listingPage": {}, "listingTools": "texte", "listingPageContext": {}}} - get_listing_truth≈ 4560 tokens
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.
Paramètres, retour & exemple (2)
Paramètresid· string · requis
Listing IDlocale· string · optionnel · en | fr | de | lu | pt | lb
Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')
Exemple d'appel{"name": "get_listing_truth", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"trust": {}, "listing": {}, "corrections": {}, "listingPage": {}, "listingPageContext": {}}} - get_market_context≈ 361 tokens
Get bounded, source-backed property context for a commune, with source dates and unknown states.
Paramètres, retour & exemple (2)
Paramètreslocale· string · optionnel · en | fr | de | lu | pt | lb
Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')commune· string · requis
Luxembourg commune slug or name (e.g. 'luxembourg', 'esch-sur-alzette', 'kirchberg')
Exemple d'appel{"name": "get_market_context", "arguments": {"commune": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"trust": {}, "commune": "texte"}} - get_price_estimate≈ 595 tokens
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.
Paramètres, retour & exemple (7)
ParamètresareaSqm· number · requis
Living area in square metrescommune· string · requis
Luxembourg commune name or slug, e.g. 'luxembourg', 'esch-sur-alzette'bedrooms· integer · optionnel
Number of bedroomsenergyClass· string · optionnel
Energy performance certificate class, e.g. 'A', 'B', 'C'listingType· string · requis · rent | sale
Whether the property is for rent or salepropertyType· string · requis
Property type, e.g. 'apartment', 'house', 'studio', 'penthouse'constructionYear· integer · optionnel
Year the property was built, e.g. 1995
Exemple d'appel{"name": "get_price_estimate", "arguments": {"areaSqm": 1, "commune": "texte", "listingType": "rent", "propertyType": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"trust": {}, "areaSqm": 1, "commune": "texte", "listingType": "rent", "propertyType": "texte", "estimatedPrice": 1}} - get_town_agencies≈ 526 tokens
Get every estate agency with active listings in a supported Luxembourg town, including current buy/rent stock and asking-price ranges.
Paramètres, retour & exemple (2)
Paramètreslocale· string · optionnel · en | fr | de | lu | pt | lb
Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')commune· string · requis
One of the supported Luxembourg town names or slugs, e.g. 'Mersch' or 'esch-sur-alzette'
Exemple d'appel{"name": "get_town_agencies", "arguments": {"commune": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"trust": {}, "source": "texte", "commune": "texte", "pageUrl": "texte", "agencies": [], "localityId": "texte", "measuredAt": "texte", "agencyCount": 1, "buyListings": 1, "communeSlug": "texte", "rentListings": 1, "activeListings": 1}} - render_listing_cards≈ 5306 tokens
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.
Paramètres, retour & exemple (3)
Paramètreslocale· string · optionnel · en | fr | de | lu | pt | lb
Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')heading· string · optionnel
Short user-facing heading grounded in the search requestlistings· array · requis
One to eight exact listing IDs from search_vibe, search_rentals, or search_for_sale, in display order
Exemple d'appel{"name": "render_listing_cards", "arguments": {"listings": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "total": 1, "trust": {}, "source": "texte", "hasMore": true, "ranking": {}, "session": {}, "followUp": {}, "listings": [], "countKind": "texte", "truncated": true, "nextCursor": "texte"}} - search_for_sale≈ 5558 tokens
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.
Paramètres, retour & exemple (18)
Paramètressort· string · optionnel · relevance | newest | price-asc | price-desc
Sort by relevance, listing date, or asking pricelimit· number · optionnel
Number of results to return (max 50, default 20)garden· boolean · optionnel
Require a source-confirmed gardenlocale· string · optionnel · en | fr | de | lu | pt | lb
Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')balcony· boolean · optionnel
Require a source-confirmed balconycommune· string · optionnel
Luxembourg commune name or slugminBeds· number · optionnel
Minimum number of bedroomselevator· boolean · optionnel
Require lift/elevator evidencemaxPrice· number · optionnel
Maximum sale price in EURminPrice· number · optionnel
Minimum sale price in EURfurnished· boolean · optionnel
Require furnished evidencemaxAreaSqm· number · optionnel
Maximum area in m²minAreaSqm· number · optionnel
Minimum area in m²parkingType· string · optionnel · off_street | garage | covered
Require source-backed parking evidencepetsAllowed· boolean · optionnel
Require pets-allowed evidenceminBathrooms· number · optionnel
Minimum number of bathroomspropertyType· string · optionnel
Property type: apartment, house, villa, etc.includePhotos· boolean · optionnel
Attach thumbnail photos of the top results as image content blocks (default: true). Set false for a lean text-only response.
Exemple d'appel{"name": "search_for_sale", "arguments": {"sort": "relevance", "limit": 1, "garden": true, "locale": "en", "balcony": true, "commune": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "total": 1, "trust": {}, "source": "texte", "hasMore": true, "ranking": {}, "session": {}, "followUp": {}, "listings": [], "countKind": "texte", "truncated": true, "nextCursor": "texte"}} - search_rentals≈ 5687 tokens
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.
Paramètres, retour & exemple (19)
Paramètressort· string · optionnel · relevance | newest | price-asc | price-desc
Sort the proven result set. price-asc means base rent, not all-in monthly cost.limit· number · optionnel
Number of results to return (max 50, default 20)garden· boolean · optionnel
Require a source-confirmed gardenlocale· string · optionnel · en | fr | de | lu | pt | lb
Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')balcony· boolean · optionnel
Require a source-confirmed balconycommune· string · optionnel
Luxembourg commune name or slugminBeds· number · optionnel
Minimum number of bedroomselevator· boolean · optionnel
Require positive source evidence of a lift/elevatormaxPrice· number · optionnel
Maximum advertised base monthly rent in EUR, excluding separate chargesminPrice· number · optionnel
Minimum monthly rent in EURfurnished· boolean · optionnel
Require positive source evidence that the rental is furnishedmaxAreaSqm· number · optionnel
Maximum area in m²minAreaSqm· number · optionnel
Minimum area in m²parkingType· string · optionnel · off_street | garage | covered
Require source-backed parking evidencepetsAllowed· boolean · optionnel
Require positive source evidence that pets are allowedminBathrooms· number · optionnel
Minimum number of bathroomspropertyType· string · optionnel
Property type: apartment, house, studio, room, etc.includePhotos· boolean · optionnel
Attach thumbnail photos of the top results as image content blocks (default: true). Set false for a lean text-only response.maxTotalMonthly· number · optionnel
Strict maximum confirmed monthly obligation in EUR: advertised rent plus source-confirmed required recurring charges and fees. Listings with missing, estimated, conflicting, or stale cost evidence are excluded.
Exemple d'appel{"name": "search_rentals", "arguments": {"sort": "relevance", "limit": 1, "garden": true, "locale": "en", "balcony": true, "commune": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "total": 1, "trust": {}, "source": "texte", "hasMore": true, "ranking": {}, "session": {}, "followUp": {}, "listings": [], "countKind": "texte", "truncated": true, "nextCursor": "texte"}} - search_vibe≈ 5670 tokens
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.
Paramètres, retour & exemple (8)
Paramètresbrief· object · optionnel
The `session.brief` object from the previous search_vibe response, passed back unchanged to continue that search. Without `followUp` it replays the same search without re-reading the request.limit· number · optionnel
Number of results to return (max 50, default 20)query· string · requis
Natural-language description of what the user wants, in their own words — e.g. "quiet 2-bed near Kirchberg with a balcony under €2000" or "bright family house with a garden, short commute to Belval, energy class A". Lifestyle, vibe, proximity, and soft preferences all work here.intent· string · optionnel · rent | buy
Whether to search rentals or properties for sale (default: "rent")locale· string · optionnel · en | fr | de | lu | pt | lb
Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')followUp· string · optionnel
A change to the previous search or a question about its results, in the user’s own words — e.g. "cheaper", "like #2 but with a garden", "which one has parking?". Send it with the `brief` from the previous response (`session.brief`) and the same `query`. A question leaves the search unchanged and comes back as `followUp.reply`.includePhotos· boolean · optionnel
Attach thumbnail photos of the top results as image content blocks (default: true). Set false for a lean text-only response.shownListingIds· array · optionnel
Ids of the listings you showed the user, in the order shown, so "#2" or "the second one" in `followUp` points at the right home.
Exemple d'appel{"name": "search_vibe", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "total": 1, "trust": {}, "source": "texte", "hasMore": true, "ranking": {}, "session": {}, "followUp": {}, "listings": [], "countKind": "texte", "truncated": true, "nextCursor": "texte"}} - submit_inquiry≈ 472 tokens
Submit an inquiry about a listing. For chathome-hosted listings creates a conversation thread; for external agency listings returns agency contact details.
Paramètres, retour & exemple (4)
Paramètresmessage· string · requis
Inquiry message to send to the listing owner (10–5000 characters)agentName· string · optionnel
Optional display name for the inquiring agentlistingId· string · requis
The ID of the listing to inquire aboutcontactEmail· string · optionnel
Optional contact email for the inquiring agent
Exemple d'appel{"name": "submit_inquiry", "arguments": {"message": "texte", "listingId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"kind": "conversation_created", "trust": {}, "listingId": "texte", "conversationId": "texte"}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».