A quieter way to search
Search Luxembourg homes from ChatGPT or Claude
Bring live listings, market data and source context into the assistant you already use.
ChatGPT
Custom MCP apps require developer mode; availability depends on your ChatGPT plan and workspace permissions.
Claude
Add the remote connector under Customize → Connectors; organization owners may need to add it first.
MCP
Add the ChatHome connector from your assistant's integrations. Availability and menu names vary by client and plan.
https://chathome.lu/api/mcpchathome MCP
Connect Claude, Cursor, or ChatGPT to live listings across the Grande Région and Luxembourg-specific market intelligence. Search rentals, browse listings for sale, and pull commune data straight from your AI assistant.
MCP Server URL
https://chathome.lu/api/mcpAuthentication
Two methods supported — OAuth 2.1 is recommended for personal use.
Your MCP client handles the OAuth flow automatically — no Client ID or secret to enter. This server uses public clients + PKCE with dynamic client registration (RFC 7591): your client registers itself the first time it connects.
Claude Code CLI — paste into ~/.claude/claude_code_config.json
{
"mcpServers": {
"chathome": {
"type": "http",
"url": "https://chathome.lu/api/mcp"
}
}
}How the flow works
- 1Paste the MCP URL into your AI client — no Client ID or secret needed.
- 2The client opens a browser to chathome.lu where you log in and approve access.
- 3Tokens are issued automatically — the client stores them and refreshes as needed.
Generate a key at Dashboard → Agent Access, then pass it as an X-API-Key header. Keys are prefixed cht_.
{
"mcpServers": {
"chathome": {
"type": "http",
"url": "https://chathome.lu/api/mcp",
"headers": {
"X-API-Key": "cht_YOUR_KEY_HERE"
}
}
}
}Rate limits
- ·200 tool calls / hour per user
- ·300 calls / hour per IP
- ·Tokens expire after 1 hour (OAuth auto-refreshes)
Available Tools
14 tools covering rental search, for-sale search, listing detail, market data, price estimation, commute times, and listing inquiries.
Response Shapes
Each tool returns a typed JSON object. Search tools wrap listings in an array; inquiry tools return their own shapes.
search_rentals · search_for_sale
{ listings: AgentListing[]; total: number; truncated?: true }get_listing
{ listing: AgentListing }AgentListing type
type AgentListing = {
id: string;
url: string;
title: string;
price: number | null;
currency: "EUR";
listingType: "rent" | "sale";
propertyType: string | null;
city: string | null;
district: string | null;
beds: number | null;
baths: number | null;
areaSqm: number | null;
energyClass: string | null;
imageUrl: string | null;
agencyName: string | null;
latitude: number | null;
longitude: number | null;
// True when at least one factual field has source evidence.
hasSourceCheckedFacts?: boolean;
};get_market_context · get_price_estimate · get_commute_times
// Each returns a tool-specific JSON object, e.g.:
// get_price_estimate → { estimatedPrice, low, high, confidence, comparables, … }
// get_commute_times → { commune, destination, mode, durationMinutes, … }
// get_market_context → { commune, medianRentEur, walkabilityScore, … }submit_inquiry
type McpInquiryResult =
| { kind: "conversation_created"; conversationId: string; listingId: string }
| { kind: "external_agency"; agencyName: string | null; phone: string | null;
email: string | null; website: string | null };get_inquiry_status
{
conversationId: string;
status: "awaiting_reply" | "replied";
messages: { from: "you" | "agent"; text: string }[];
}Resources & Prompts
The server also exposes one resource template and two built-in prompts.
Resource
chathome://listing/{id}Read a single listing by ID — same data as get_listing, exposed as an MCP resource URI.
Prompt · find-family-home
Guided search for family-friendly rental properties. Arguments: commune?, budget?, beds?.
Prompt · compare-communes
Side-by-side comparison of two Luxembourg communes. Arguments: commune_a, commune_b, locale?.
Try It
Once connected, ask your AI assistant:
- “Find me 2-bedroom apartments in Luxembourg-Ville under €2,000/month”
- “What are houses for sale in Strassen with a garden?”
- “Compare liveability scores for Esch-sur-Alzette and Differdange”
- “Show me the full details for listing ID abc-123”
Claude Agent Skill
A packaged skill that teaches Claude how to use chathome well — tool selection, Grande Région search workflows, and Luxembourg market context.
claude.ai & Claude Desktop
Download the zip, then upload it under Settings → Capabilities → Skills. Pair it with this MCP server added as a custom connector.
Download skill (.zip)Claude Code — one-step plugin (skill + MCP server)
/plugin marketplace add chathome-lu/chathome-claude-plugin /plugin install chathome@chathome
Agents & other runtimes
The skill follows the open Agent Skills standard. Fetch it raw at /skills/chathome/SKILL.md.
Roadmap
What's live now and what's coming next.
MCP v1 — 14 tools, 1 resource, 3 prompts over Streamable HTTP with OAuth 2.1 + PKCE and API-key auth.
A2A Agent Card — /.well-known/agent-card.json for Google A2A protocol discovery (task endpoint /api/a2a).
Agent Skill — downloadable Claude skill bundling chathome workflows, paired with this MCP server.