About FlatHunt
Search and compare furnished apartments, studios and rooms in Berlin across multiple housing providers. FlatHunt supports filtering by budget, location, move-in date, rental duration, property type, size, amenities and r
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://mcp.flat-hunt.com/mcpclaude mcp add --transport http flathunt https://mcp.flat-hunt.com/mcp{"mcpServers":{"flathunt":{"type":"http","url":"https://mcp.flat-hunt.com/mcp"}}}Open in Cursor{"servers":{"flathunt":{"type":"http","url":"https://mcp.flat-hunt.com/mcp"}}}Open in VS Code{"mcpServers":{"flathunt":{"type":"http","url":"https://mcp.flat-hunt.com/mcp"}}}{"mcpServers":{"flathunt":{"serverUrl":"https://mcp.flat-hunt.com/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
11| Parameter | Type | Required | Description |
|---|---|---|---|
| lat | number | No | Latitude for nearby search; must be provided with lng (+ radiusKm). Do not mix with areas. |
| lng | number | No | Longitude for nearby search; must be provided with lat (+ radiusKm). Do not mix with areas. |
| page | integer | No | Page number (default 1). |
| areas | array | No | Canonical Berlin area IDs from list_areas (e.g. berlin:ortsteil:prenzlauer-berg). Up to 20 IDs; multiple IDs are combined with OR. District / Ortsteil mode — do not mix with lat/lng/radiusKm. When the user names an area, call list_areas first. Pass only canonical IDs returned by list_areas. Never construct, translate, normalize, or guess IDs. |
| limit | integer | No | Results per page (default 10, max 20). |
| rooms | array | No | Exact room counts (OR). Allowed values only: "studio", "1", "2", …, "10" (strings, not numbers). Prefer over roomsMin/roomsMax for "1–2 rooms": ["1","2"] or ["studio","1"]. |
| sortBy | enum | No | Sort field (default rank). sortOrder is ignored when sortBy=rank. Cheaper first → price+asc; larger area → squareMeters+desc.rank | price | squareMeters | createdAt | availableFrom |
| postCode | string | No | Exact Berlin post code (PLZ), e.g. 10115. |
| priceMax | number | No | Maximum monthly price in EUR. |
| priceMin | number | No | Minimum monthly price in EUR. |
| radiusKm | number | No | Search radius in km around lat/lng (min 0.1, max 25). Nearby mode — do not mix with areas. |
| roomType | enum | No | Room occupancy: private = one private bedroom in shared housing; shared = a bed in a shared bedroom. Omit to include both. housingType=room remains the broad backwards-compatible filter.private | shared |
| roomsMax | number | No | Maximum rooms. Prefer rooms[] for exact OR lists. |
| roomsMin | number | No | Minimum rooms (studio = 0). Prefer rooms[] for exact OR lists. |
| providers | array | No | Restrict to specific housing providers (ids from the providers catalog). |
| sortOrder | enum | No | Sort direction (default desc). Ignored when sortBy=rank.asc | desc |
| depositMax | number | No | Maximum deposit (Kaution) in EUR. |
| amenityTags | array | No | Canonical amenity tags (AND). Backend filters listings that have ALL of these tags. Catalog (snake_case only): wifi, parking, bike_parking, wheelchair, dishwasher, washing_machine, dryer, elevator, balcony, desk, tv, oven, heating, furnished, fridge, microwave, cooktop, coffee_machine, iron, hair_dryer, closet, wardrobe, bed, bathtub, shower, garden, basement, air_conditioning, parking_street, workspace, fitness, concierge, laundry, pets_friendly. Do not invent aliases (wiFi, hasWifi, Waschmaschine). |
| availableTo | string | No | Available until / not later than (YYYY-MM-DD). |
| bedroomsMin | number | No | Minimum number of bedrooms (from provider extra data when available). |
| housingType | enum | No | Type of housing. Studios map to apartment; room includes both private and shared rooms unless roomType narrows it.room | apartment |
| petsAllowed | boolean | No | true = pets explicitly allowed. |
| availableFrom | string | No | Available from / not earlier than (YYYY-MM-DD), e.g. "2026-08-01". |
| personsMaxMin | integer | No | Minimum capacity (personsMax). Use 2 for couples, 1 for solo — filters listings that can accommodate at least this many people. |
| noSchufaLikely | boolean | No | true = Schufa likely not required (broader). Prefer for "without Schufa". |
| schufaRequired | boolean | No | true = Schufa required. |
| smokingAllowed | boolean | No | false = non-smokers only / smoking not allowed. |
| anmeldungLikely | boolean | No | true = Anmeldung likely (broader). Prefer for "with Anmeldung" unless the user needs a hard guarantee. |
| squareMetersMax | number | No | Maximum living area in m². |
| squareMetersMin | number | No | Minimum living area in m². "from 40 m²" → 40. Filter on the backend — do not paginate to drop small listings. |
| noSchufaRequired | boolean | No | true = Schufa explicitly not required (strict). |
| studentsFriendly | boolean | No | true = student-oriented housing (broader). |
| onlyStudentsAllowed | boolean | No | true = students-only listings. |
| registrationPossible | boolean | No | true = Anmeldung / registration explicitly possible (strict). |
Details
The maintainer has not added details yet. Check the README in the repository.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.