A Real Estate MCP Server for Germany: Let Your AI Assistant Search the Portals
By Viktor Kreschenski, Kretronik GmbH · 16 October 2026
Photo by DIJA on Unsplash
In 2026, Bitkom reported that 67% of people in Germany use generative AI such as ChatGPT, Microsoft Copilot or Gemini at least now and then (Bitkom, Künstliche Intelligenz in Deutschland, February 2026). Ask one of those assistants for a three-room flat in Leipzig under €250,000, though, and it runs into a wall. A language model has never seen the listings that went online this morning. At best it tells you so. At worst it describes apartments that do not exist.
The Somantic MCP server removes that wall. It connects an AI assistant to Somantic, our metasearch engine for German real estate, so the assistant can search live listings from the major portals, open a single listing, and estimate what any German address is worth to buy or to rent. Every result links back to the portal where the offer actually lives. In June we introduced the Somantic GraphQL API for developers who write their own queries. This post covers the same data for everyone else: you ask in plain language, and the agent writes the query.
Key Takeaways
- The Somantic MCP server gives AI agents three tools: search_listings, get_listing and estimate_value. Every listing comes with Somantic's own valuation and a link to the original portal.
- MCP is now the standard way to plug tools into AI assistants. By December 2025 there were more than 10,000 active public MCP servers and 97 million monthly SDK downloads (Anthropic).
- Investors screen by gross yield, price below valuation, vacancy, foreclosures and leasehold. Makler check a client's address against the live market. Private buyers and renters describe the flat they want in one sentence.
- There is a free tier, no credit card required. In Claude Code, setup is a single command.
What is an MCP server, and why does property search need one?
An MCP server is a standard plug that lets an AI assistant call outside tools while it answers you. In December 2025, Anthropic counted more than 10,000 active public MCP servers and 97 million monthly SDK downloads, with support in ChatGPT, Gemini, Microsoft Copilot, Cursor and VS Code (Anthropic, Donating the Model Context Protocol and establishing the Agentic AI Foundation, 9 December 2025).
The same announcement moved the protocol into the Agentic AI Foundation under the Linux Foundation, co-founded by Anthropic, Block and OpenAI. For anyone deciding whether to build on it, that settles the main risk. MCP is no longer one vendor's feature. It is shared plumbing that the major assistants agreed on.
Property search is a textbook case for it. Listings are short-lived and scattered across many portals, and a model's training data is months old by the time you use it. Without a tool, the assistant can only guess. With an MCP server it does what you would do yourself: run a search, read the results, and answer from them. The difference is that it never gets tired of opening the next tab.
1. You ask
"3 rooms to rent in Köln, max €1,300, balcony"
2. AI assistant
Claude, ChatGPT or your own app turns the question into filters
3. Somantic MCP
search_listingsget_listingestimate_value
4. Somantic search
Searches the German portals and values every offer it finds
5. Answer: a shortlist, a valuation for each listing, and a link to the original listing on its portal
What does the Somantic MCP server do?
The Somantic MCP server gives an AI agent three tools behind one endpoint, https://www.somantic.net/api/mcp/. With it, an agent in Claude, ChatGPT or your own application searches directly through Somantic, and nobody has to build queries by hand. The search engine behind it finds apartments and houses, to buy and to rent, across the German property portals. You never pick a tool yourself. The agent reads your question and chooses.
| Tool | What it does | Typical question |
|---|---|---|
search_listings |
Searches current listings by city or postcode, buy or rent, apartment or house, price, living space, rooms, year built, gross yield, features and energy class. Newest first, 20 per page by default and up to 50 on request. | "Show me 3-room flats to rent in Köln under €1,300." |
get_listing |
Returns one listing with all its facts, Somantic's valuation and the link to the original. | "Tell me more about the second one." |
estimate_value |
Estimates the purchase and rental value of any German address, listed or not, with a confidence level. | "What is my flat in Leipzig worth?" |
Each listing carries its facts, Somantic's own valuation in somantic_valuation_eur, and price_vs_valuation_pct, which is negative when the asking price sits below that valuation. It also names the source portal in source_portal, links the offer via source_url, and reports last_seen, the moment Somantic last confirmed the offer as online. Offers that can no longer be confirmed usually drop out of results after three days.
What does not come back is just as deliberate. Street addresses and coordinates are left out to protect owners and residents. The advertiser's text and photos are left out because they belong to the advertiser and stay on the portal. The server's own instructions tell every agent to name the source portal and link the original whenever it shows a listing, and section 15.5a of the Somantic terms makes that a condition of use for AI assistants. Your assistant builds the shortlist. You read the full exposé where it was published.
One detail saves more time than it sounds. The same flat is often advertised on two or three portals at once. search_listings collapses those copies to the newest one, so your assistant does not present one apartment as three options. The reported total still counts the copies, which is why a page can hold fewer results than you asked for.
How can investors use the Somantic MCP server?
Investors get filters that portal search boxes rarely offer, at a moment when picking the local market matters more than timing the national one. In the second quarter of 2026, Destatis measured German residential property prices up just 0.6% year on year. Condominiums in the seven largest metros fell 0.4%, while those in other independent cities rose 2.0% (Destatis, press release no. 336, 24 September 2026).
When the national number is flat and the local numbers pull apart, returns come from picking the right street in the right city. That is a breadth problem. An agent that can query Leipzig, Halle and Magdeburg in one conversation turns it into a single question.
Filters built for yield, not for browsing
search_listings accepts roi_min, the minimum gross rental yield in percent for purchases, and price_below_market, which keeps only listings priced below Somantic's valuation. vacant limits results to properties sold bezugsfrei. exclude_foreclosures drops Zwangsversteigerungen and exclude_erbbaurecht drops leasehold, two categories that distort any yield screen if you leave them in. An energy class filter such as A+,A,B covers the refurbishment question.
Example prompt
Find apartments for sale in Leipzig, Halle and Magdeburg with at least 5% gross yield, priced below Somantic's valuation. No foreclosures, no leasehold. Rank them by how far below their valuation they are.
The assistant turns that into one call per city. For Leipzig, the arguments look like this:
{
"q": "Leipzig",
"transaction": "kaufen",
"property": "wohnung",
"roi_min": 5,
"price_below_market": true,
"exclude_foreclosures": true,
"exclude_erbbaurecht": true,
"per_page": 50
}
The ranking needs no further request. Every result already carries price_vs_valuation_pct, so the agent sorts what it has. A three-city screen costs three requests.
Rents are rising faster than prices
The Verband deutscher Pfandbriefbanken, which tracks bank lending valuations, saw new-contract rents for multi-family buildings rise 3.2% year on year in the second quarter of 2026. Its residential price index rose 1.9% over the same period (vdp figures as reported by Interhyp, August 2026). When rents outpace prices, gross yields creep up. A roi_min filter is how you find the listings where that has already happened, before the asking price catches up.
Rented or vacant: price the tenant in
For buy-to-let, the rented parameter of estimate_value is worth knowing. In Germany the same flat is worth markedly less with a sitting tenant than sold vacant. Ask the assistant to value one address twice, once with rented: true and once with rented: false, and you see the discount for that specific property instead of a rule of thumb. Two valuation requests, one negotiating argument.
How can estate agents (Makler) use it?
Makler still market most German condominiums. In the fourth quarter of 2025, 65% of condominiums for sale in Germany's ten largest cities were listed by a broker, and 75% in Leipzig, according to an ImmoScout24 and Sprengnetter analysis of 441,076 listings (ImmoScout24, Maklerquote stabilisiert sich im vierten Quartal 2025 bei 65 Prozent, January 2026).
Each of those mandates starts with the same research. What is the owner's flat worth? What else is on the market nearby? How is the competition priced? With the MCP server, those are three tool calls.
Before the acquisition appointment
Value the owner's address with estimate_value, then search the same postcode and size band to see what the flat would compete with. You walk in with a price range, its confidence level and the live competition. That is a stronger opening than a gut feeling and a printed portal screenshot.
Example prompt
My client owns a 78 m² flat with 3 rooms, built in 1910, at Karl-Heine-Straße 40, 04229 Leipzig. Value it vacant and rented, then show me active listings in 04229 between 65 and 90 m².
{
"street": "Karl-Heine-Straße 40",
"postcode": "04229",
"city": "Leipzig",
"living_space_sqm": 78,
"rooms": 3,
"year_built": 1910,
"property": "wohnung",
"rented": false
}
The agent repeats the valuation with rented: true, then runs search_listings with q: "04229", size_min: 65 and size_max: 90. Because every competing listing carries price_vs_valuation_pct, you can see at once which ones are priced above valuation, and which are priced to sell.
Buyer briefs across every portal
The same works in the other direction. A buyer client hands you a brief, the agent searches across the portals in one go, and you send back a shortlist with links. Duplicates are already collapsed, so your client does not receive the same flat from three portals.
Two rules to keep in mind
First, estimate_value is a model output, not an appraisal (Verkehrswertgutachten). Somantic's terms ask you to label it as an automated estimate whenever a client sees it. Second, section 15.5a of the Somantic AGB allows AI assistants to show listings in answer to a request, with the portal named and linked. It does not allow turning results into a persistent, public or search-indexed listing directory. For client conversations and internal pricing checks, that is exactly the use case.
How do private buyers and renters use it?
Private buyers and renters gain the most from plain language. Every portal has its own search form, its own filter names and its own place to hide the balcony checkbox. Nobody should have to learn ten of them to find one flat. You describe the flat, and the agent sets the filters for one search across all of them.
Example prompt
I'm looking for a flat to rent in Köln: at least 3 rooms and 70 m², a balcony, no more than €1,300 cold.
{
"q": "Köln",
"transaction": "mieten",
"property": "wohnung",
"rooms_min": 3,
"size_min": 70,
"price_max": 1300,
"features": ["balcony"]
}
Note the detail in price_max. For rentals it means monthly cold rent (Kaltmiete), which is how German listings are priced. Ancillary costs (Nebenkosten) come on top, so leave room in your budget.
Is the asking price fair?
Pick a listing and ask. The agent calls get_listing and reads price_vs_valuation_pct: minus 8 means the asking price sits 8% below Somantic's valuation, plus 12 means 12% above. That is not a verdict, but it tells you whether to negotiate hard or move fast. How does Somantic arrive at its number? It compares the property with similar listings nearby, current ones and recent ones that are already offline, using the self-organizing map we described in our post on property valuation.
Thinking of selling?
estimate_value works for any German address, listed or not. If you own a flat and wonder what it would fetch, give the agent the street, postcode, city and living space, plus rooms and year of construction if you know them. Ask it to report the sample size along with the number. A valuation backed by forty comparables deserves more weight than one backed by six.
How do you connect the Somantic MCP server?
Connecting takes one API key and one config entry, and you can start on the free tier without a credit card. Every tool call needs the key and counts as one request (Somantic developer docs).
- Create a key at somantic.net/developers. It starts with
som_live_and is shown only once, so store it somewhere safe. - Add the server to your MCP client.
- Ask your question.
Claude Code
In Claude Code, one command registers the server:
claude mcp add --transport http somantic https://www.somantic.net/api/mcp/ \
--header "X-API-Key: som_live_YOUR_KEY"
Or commit it to a project's .mcp.json, which is the setup the Somantic docs show:
{
"mcpServers": {
"somantic": {
"type": "http",
"url": "https://www.somantic.net/api/mcp/",
"headers": { "X-API-Key": "som_live_YOUR_KEY" }
}
}
}
Other MCP clients
The endpoint is a stateless Streamable HTTP server. Any MCP client that connects to remote servers and can send either an X-API-Key header or an Authorization: Bearer token will work. The tool list is public, so a client can discover the three tools before you add a key. A tool call without one returns a plain "Missing API key" message instead of failing silently.
Test it without an AI client
To check your key from a terminal, call a tool directly:
curl -X POST https://www.somantic.net/api/mcp/ \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "X-API-Key: som_live_YOUR_KEY" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_listings",
"arguments": { "q": "Leipzig", "transaction": "kaufen", "price_max": 300000, "price_below_market": true }
}
}'
search_listings and get_listing count against the quota of the listings API, estimate_value against the quota of the valuation API. Current quotas and plans are on the developer portal.
Where the MCP server is the wrong tool
Offers that Somantic can no longer find online usually drop out of its results within three days, so what your assistant sees is close to what the portals show today. That freshness has a price in scope, and it is worth being clear about what the server does not do.
- Asking prices, not sold prices. Valuations come from comparable listings. Sold prices in Germany sit in the Kaufpreissammlung of the Gutachterausschüsse, which is access-restricted, so asking prices are what a public service can work from. We explain the trade-off in our post on self-organizing maps.
- No photos or descriptions. You read the exposé and look at the photos on the portal. That is by design, not an omission.
- Thin markets stay thin. When too few comparables exist,
estimate_valuereturns no point estimate, only the price-per-m² band and the sample size. A rural farmhouse may get a band and nothing more. - At most 50 results per page. A page holds 20 listings by default and up to 50 when the agent asks for more. A broad search across a big city can still need paging, and every page is a request. Tight filters are cheaper than wide ones.
Missing a filter, a tool or a use case? We take improvements, suggestions and feature requests for the MCP server at support@somantic.net.
The short version
Portals were built for people clicking through search forms. An MCP server lets an assistant do the clicking, across all of them, and come back with a shortlist, a valuation for each offer and a link to the original. Investors get yield and below-valuation screens across several cities in one conversation. Makler get a valuation and the live competition before an appointment. Private buyers and renters get to describe a flat in a sentence instead of learning ten search forms.
It will not replace reading the exposé or visiting the flat. It replaces the hour before that.
Frequently asked questions
What is the Somantic MCP server?
The Somantic MCP server is a Model Context Protocol endpoint at somantic.net/api/mcp/ that lets AI assistants search German real estate listings. It offers three tools: search_listings, get_listing and estimate_value. Results include Somantic's own valuation and a link to the original listing on the source portal.
Which AI assistants work with the Somantic MCP server?
The Somantic docs name Claude, ChatGPT and your own applications. Technically, any MCP client works that can connect to a remote Streamable HTTP server and send the API key, as an X-API-Key header or an Authorization: Bearer token. The docs show the setup for Claude Code.
Is the Somantic MCP server free?
There is a free tier with a monthly request quota and no credit card. Each tool call counts as one request: searches and listing lookups against the listings API quota, valuations against the valuation API quota. Paid plans raise the quotas and can be cancelled monthly. Current limits are on the developer portal.
Does the Somantic MCP server return photos and descriptions?
No. The advertiser's text and photos stay on the original portal, and street addresses and coordinates are left out to protect owners and residents. Each listing returns its facts, Somantic's valuation, the source portal and a source_url. Under section 15.5a of the Somantic terms, assistants must name the portal and link the original whenever they show a listing.
How reliable is the estimate_value tool?
estimate_value derives purchase and rental values from comparable listings around the address, including recent ones that are already offline, and returns a confidence level and sample size with every estimate. When too few comparables exist, it returns no point estimate, only the price-per-m² band. It is an automated model estimate based on asking prices, not a formal appraisal.
Try it on your own search
Get a free key at the Somantic developer portal, add the server to your assistant, and ask for the flat you are actually looking for. Prefer to write queries yourself? The same data is available through the Somantic GraphQL API.
Sources (retrieved 16 October 2026)
- Bitkom, Künstliche Intelligenz in Deutschland: Perspektiven aus Bevölkerung und Unternehmen, February 2026, bitkom.org
- Anthropic, Donating the Model Context Protocol and establishing the Agentic AI Foundation, 9 December 2025, anthropic.com
- Destatis, Preise für Wohnimmobilien im 2. Quartal 2026, press release no. 336, 24 September 2026, destatis.de
- Interhyp, Wohnimmobilienpreise bewegen sich seitwärts (vdp index Q2 2026), 20 August 2026, interhyp.de
- ImmoScout24, Maklerquote stabilisiert sich im vierten Quartal 2025 bei 65 Prozent, 15 January 2026, immobilienscout24.de
- Somantic, developer documentation and MCP tool definitions, somantic.net; terms of use, section 15, somantic.net/agb