# German Real Estate MCP (`rigelbytes/german-realestate-mcp`) Actor

MCP server for German real estate — 14 Rigel Bytes scrapers (ImmoScout24, Immowelt, Kleinanzeigen, RE/MAX, CBRE, Colliers, JLL, and more). Connect from Cursor, Claude, or VS Code.

- **URL**: https://apify.com/rigelbytes/german-realestate-mcp.md
- **Developed by:** [Rigel Bytes](https://apify.com/rigelbytes) (community)
- **Categories:** MCP servers, Integrations, Automation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $50.00 / 1,000 tool calls

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### What does German Real Estate MCP do?

**German Real Estate MCP** is a [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server by [Rigel Bytes](https://apify.com/rigelbytes) that connects AI assistants — Cursor, Claude Desktop, VS Code Copilot, and others — to **14 curated German property scrapers** through a single endpoint. Ask your AI agent for listings from **ImmoScout24**, **Immowelt**, **Kleinanzeigen**, **RE/MAX**, **CBRE**, **Colliers**, **JLL**, and more — without writing API code or switching between tools.

The server runs on Apify in **standby mode** and proxies each MCP tool call to the matching Rigel Bytes scraper on **your** Apify account. You pay **$0.05 per MCP tool call** plus the normal usage cost of each underlying scraper.

**MCP endpoint:** `https://rigelbytes--german-realestate-mcp.apify.actor/mcp`

***

### What can German Real Estate MCP do for you?

- 🏠 **Search residential rentals and sales** across Immowelt, ImmoScout24, Kleinanzeigen, and major broker networks
- 🏢 **Extract commercial property data** from CBRE, Colliers, JLL, Savills, BNP Paribas RE, and Aengevelt
- 📊 **Power market research and investment analysis** with structured JSON from 14 German real estate sources
- 🤖 **Let AI agents pick the right scraper** — one MCP server, automatic routing to the correct portal or broker
- ⚡ **Integrate with Cursor, Claude, or VS Code** — connect once, query in natural language
- 💰 **Control costs** — set `maxItems` on each scraper call; preview results before fetching full datasets

***

### Included MCP tools

| Tool | Source | Best for |
|------|--------|----------|
| `immobilienscout24-scraper` | [ImmoScout24](https://www.immobilienscout24.de) | Germany's largest portal — pass a search URL |
| `immowelt-property-scraper` | [Immowelt](https://www.immowelt.de) | City + price/room filters |
| `kleinanzeigen-scraper` | [Kleinanzeigen](https://www.kleinanzeigen.de) | Classified / private listings via keywords |
| `remax-scraper` | [RE/MAX Germany](https://www.remax.de) | Listings by Bundesland |
| `dahler-scraper` | [DAHLER Immobilien](https://www.dahler.de) | DAHLER network buy/rent listings |
| `grandcityproperty` | [GrandCityProperty](https://www.grandcityproperty.com) | Large rental portfolio |
| `wuestenrot-immobilien` | [Wüstenrot Immobilien](https://www.wuestenrot-immobilien.de) | Wüstenrot broker listings |
| `cbre-scraper` | [CBRE Germany](https://www.cbre.de) | Commercial office & industrial |
| `colliers-scraper` | [Colliers](https://www.colliers.de) | Office, logistics, retail |
| `jll-scraper` | [JLL Germany](https://property.jll.de) | Commercial & investment |
| `savills-scraper` | [Savills](https://www.savills.de) | Residential & commercial by city |
| `bnppre-scraper` | [BNP Paribas RE](https://www.bnppre.de) | Commercial property |
| `aengevelt-scraper` | [Aengevelt](https://www.aengevelt.com) | Broker network listings |
| `grossmann-berger-scraper` | [Grossmann & Berger](https://www.grossmann-berger.de) | Hamburg-based broker |

**Helper tools:** `list_scrapers` (routing guide), `get_actor_output` (full dataset after a run)

***

### Why use this MCP server?

- 🇩🇪 **Built for Germany** — portals, brokers, and commercial firms in one bundle
- 🎯 **Agent-ready routing** — each tool includes when-to-use guidance so AI picks the right source
- 🔒 **Runs on your Apify account** — your token, your data, your billing
- 📦 **One connection** — no need to configure 14 separate actors in your MCP client
- 🛠️ **Production standby server** — always-on endpoint, no cold-start batch jobs
- 📈 **Scalable** — schedule monitoring, compare markets, feed CRMs via Apify datasets

***

### Pricing

| Charge | Cost | Who receives it |
|--------|------|-----------------|
| MCP tool call | **$0.05** per invocation | Rigel Bytes (this Actor) |
| Underlying scraper runs | Per scraper pricing on [Rigel Bytes Store](https://apify.com/rigelbytes) | Rigel Bytes + Apify platform usage |

Example: one Immowelt search returning 100 listings might cost **$0.05** (MCP call) + scraper usage (e.g. **$1.00** per 1,000 listings on Immowelt) + Apify compute.

Apify plan discounts apply to platform usage. Check each scraper's Store page for current per-unit rates.

***

### How to use German Real Estate MCP

#### Step 1 — Create an Apify account

Sign up at [Apify Console](https://console.apify.com). Free tier available.

#### Step 2 — Get your API token

Open [API & Integrations](https://console.apify.com/settings/integrations) and copy your API token.

#### Step 3 — Add MCP config to your AI client

**Cursor** — create or edit `.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "rigel-german-real-estate": {
      "url": "https://rigelbytes--german-realestate-mcp.apify.actor/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_APIFY_TOKEN"
      }
    }
  }
}
```

Replace `YOUR_APIFY_TOKEN` with your token from Step 2.

**VS Code** — Command Palette → **MCP: Open User Configuration** → paste the same JSON.

**Claude Desktop** — add a custom connector with the URL above and `Authorization: Bearer YOUR_APIFY_TOKEN` header.

Or copy the ready-made config from `mcp-deployed.json` in this repository.

#### Step 4 — Restart your AI client

Reload Cursor / VS Code / Claude so the MCP server connects.

#### Step 5 — Ask in natural language

Examples:

- *"Find rental apartments in Berlin under €1,500 on Immowelt"*
- *"Scrape Kleinanzeigen for Wohnung mieten München, max 25 listings"*
- *"Get CBRE office listings in Frankfurt, max 20"*
- *"List all scrapers in the German Real Estate MCP bundle"*

The agent selects the right tool, runs the scraper on your account, and returns structured JSON. Use `get_actor_output` with the `datasetId` from the response for the full dataset.

***

### Alternative: Apify hosted MCP (no standby Actor)

You can also connect via Apify's global MCP server with the same 14 scrapers pre-selected:

```
https://mcp.apify.com?tools=rigelbytes/immobilienscout24-scraper,rigelbytes/immowelt-property-scraper,rigelbytes/kleinanzeigen-scraper,rigelbytes/remax-scraper,rigelbytes/dahler-scraper,rigelbytes/grandcityproperty,rigelbytes/wuestenrot-immobilien,rigelbytes/cbre-scraper,rigelbytes/colliers-scraper,rigelbytes/jll-scraper,rigelbytes/savills-scraper,rigelbytes/bnppre-scraper,rigelbytes/aengevelt-scraper,rigelbytes/grossmann-berger-scraper,search-actors,fetch-actor-details,get-actor-output,search-apify-docs,fetch-apify-docs&telemetry-enabled=false
```

OAuth login is supported on [mcp.apify.com](https://mcp.apify.com) — no token in config required.

***

### Example tool call

**Immowelt — rentals in Berlin:**

```json
{
  "location": "Berlin",
  "pages": 2,
  "priceMin": 500,
  "priceMax": 1500
}
```

**Kleinanzeigen — keyword search:**

```json
{
  "searchQueries": ["wohnung mieten berlin mitte"],
  "maxItems": 25
}
```

Always set `maxItems` or limit pages to control cost.

***

### Output

Each scraper returns property listings as JSON in your Apify dataset. A preview (up to 25 items) is returned immediately. Call `get_actor_output` with the `datasetId` for the complete result.

You can download datasets from Apify Console in **JSON, CSV, Excel, or HTML**.

***

### Tips and advanced options

- Call `list_scrapers` first if the agent is unsure which portal to use
- ImmoScout24 requires a **search results URL** — build the search on immobilienscout24.de, then pass the URL as `link`
- Kleinanzeigen supports **semantic `searchQueries`** — other tools mostly need URLs or structured filters
- For large runs, use `get_actor_output` with `limit` and `offset` to paginate
- Test your setup in the [Apify Tester MCP Client](https://apify.com/jiri.spilka/tester-mcp-client)

***

### FAQ, disclaimers, and support

**Do I need my own Apify account?**\
Yes. This MCP server runs scrapers on your account using your API token.

**Is web scraping legal?**\
Scrape only data you are permitted to access. Respect website Terms of Service, robots.txt, and applicable laws (including GDPR for personal data). This tool is for legitimate business research.

**Why do I pay twice?**\
The $0.05 MCP fee covers the gateway service. Scraper usage is billed separately per the underlying actor's pricing.

**Can I use this without Cursor?**\
Any MCP-compatible client works — VS Code Copilot, Claude Desktop, custom agents via Streamable HTTP.

**Need help or a custom integration?**

- Email: <contact@rigelbytes.com>
- Book a call: [cal.com/faizanali/appointments](https://cal.com/faizanali/appointments)
- More Rigel Bytes actors: [apify.com/rigelbytes](https://apify.com/rigelbytes)

***

### About Rigel Bytes

Rigel Bytes specializes in web scraping, automation, and data analytics. We help businesses extract and leverage valuable data for informed decision-making.

#### 🚀 Other real estate tools by Rigel Bytes

Browse our full catalog at [apify.com/rigelbytes](https://apify.com/rigelbytes?search=real+estate) — ImmoScout24, Immowelt, Kleinanzeigen, RE/MAX, CBRE, Colliers, JLL, Savills, and more.

# Actor input Schema

## Actor input object example

```json
{}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("rigelbytes/german-realestate-mcp").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("rigelbytes/german-realestate-mcp").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call rigelbytes/german-realestate-mcp --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=rigelbytes/german-realestate-mcp",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/EBcrcd84wFBeiEc2L/builds/vUe3X2aJU5JCcZccr/openapi.json
