이 MCP로 할 수 있는 일
Searches and compares furnished Berlin housing listings and manages saved listings and search alerts.
도구
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['listingIds'], 'properties': {'listingIds': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'maxItems': 10, 'minItems': 2, 'description': 'Between 2 and 10 unique listing ids.'}}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['listings'], 'properties': {'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title'], 'properties': {'id': {'type': 'number'}, 'lat': {'type': 'number'}, 'lng': {'type': 'number'}, 'area': {'type': 'string'}, 'floor': {'type': 'string'}, 'price': {'type': 'number'}, 'rooms': {'type': ['number', 'string']}, 'saved': {'type': 'boolean'}, 'title': {'type': 'string'}, 'images': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'alt': {'type': 'string'}, 'url': {'type': 'string'}, 'width': {'type': 'number'}, 'height': {'type': 'number'}, 'thumbnailUrl': {'type': 'string'}}, 'additionalProperties': False}}, 'labels': {'type': 'array', 'items': {'type': 'string'}}, 'maxAge': {'type': 'number'}, 'minAge': {'type': 'number'}, 'address': {'type': 'string'}, 'deposit': {'type': 'number'}, 'bedrooms': {'type': 'number'}, 'location': {'type': 'string'}, 'postCode': {'type': 'string'}, 'provider': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'logoUrl': {'type': 'string'}}, 'additionalProperties': False}, 'roomType': {'enum': ['private', 'shared'], 'type': 'string'}, 'bathrooms': {'type': 'number'}, 'furnished': {'type': 'string'}, 'noDeposit': {'type': 'boolean'}, 'detailsUrl': {'type': 'string'}, 'personsMax': {'type': 'number'}, 'amenityTags': {'type': 'array', 'items': {'type': 'string'}}, 'availableTo': {'type': 'string'}, 'description': {'type': 'string'}, 'housingType': {'type': 'string'}, 'petsAllowed': {'type': 'boolean'}, 'trackingUrl': {'type': 'string'}, 'partyAllowed': {'type': 'boolean'}, 'availableFrom': {'type': 'string'}, 'maxStayMonths': {'type': 'number'}, 'minStayMonths': {'type': 'number'}, 'utilitiesCost': {'type': 'number'}, 'couplesAllowed': {'type': 'boolean'}, 'noSchufaLikely': {'type': 'boolean'}, 'priceFormatted': {'type': 'string'}, 'schufaRequired': {'type': 'boolean'}, 'smokingAllowed': {'type': 'boolean'}, 'virtualTourUrl': {'type': 'string'}, 'anmeldungLikely': {'type': 'boolean'}, 'childrenAllowed': {'type': 'boolean'}, 'nearbyDistances': {'type': 'array', 'items': {'type': 'object', 'required': ['place', 'distance'], 'properties': {'place': {'type': 'string'}, 'distance': {'type': 'string'}}, 'additionalProperties': False}}, 'preferredGender': {'type': 'string'}, 'propertySubtype': {'type': 'string'}, 'amenitiesUnknown': {'type': 'array', 'items': {'type': 'string'}}, 'areaSquareMeters': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'depositFormatted': {'type': 'string'}, 'noSchufaRequired': {'type': 'boolean'}, 'studentsFriendly': {'type': 'boolean'}, 'guarantorRequired': {'type': 'boolean'}, 'utilitiesIncluded': {'type': 'array', 'items': {'type': 'string'}}, 'buildingAmenityTags': {'type': 'array', 'items': {'type': 'string'}}, 'onlyStudentsAllowed': {'type': 'boolean'}, 'registrationPossible': {'type': 'boolean'}, 'buildingAmenitiesUnknown': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'lat': {'type': 'number', 'description': 'Latitude for nearby search; must be provided with lng (+ radiusKm). Do not mix with areas.'}, 'lng': {'type': 'number', 'description': 'Longitude for nearby search; must be provided with lat (+ radiusKm). Do not mix with areas.'}, 'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Optional short label for the saved search (max 120 characters). If omitted, FlatHunt derives a concise label from housing type, budget and location filters.'}, 'areas': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 20, 'description': '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.'}, 'rooms': {'type': 'array', 'items': {'enum': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'studio'], 'type': 'string'}, 'maxItems': 10, 'description': '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': ['rank', 'price', 'squareMeters', 'createdAt', 'availableFrom'], 'type': 'string', 'description': 'Sort field (default rank). sortOrder is ignored when sortBy=rank. Cheaper first → price+asc; larger area → squareMeters+desc.'}, 'postCode': {'type': 'string', 'description': 'Exact Berlin post code (PLZ), e.g. 10115.'}, 'priceMax': {'type': 'number', 'minimum': 0, 'description': 'Maximum monthly price in EUR.'}, 'priceMin': {'type': 'number', 'minimum': 0, 'description': 'Minimum monthly price in EUR.'}, 'radiusKm': {'type': 'number', 'maximum': 25, 'minimum': 0.1, 'description': 'Search radius in km around lat/lng (min 0.1, max 25). Nearby mode — do not mix with areas.'}, 'roomType': {'enum': ['private', 'shared'], 'type': 'string', 'description': '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.'}, 'roomsMax': {'type': 'number', 'minimum': 0, 'description': 'Maximum rooms. Prefer rooms[] for exact OR lists.'}, 'roomsMin': {'type': 'number', 'minimum': 0, 'description': 'Minimum rooms (studio = 0). Prefer rooms[] for exact OR lists.'}, 'providers': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'description': 'Restrict to specific housing providers (ids from the providers catalog).'}, 'sortOrder': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction (default desc). Ignored when sortBy=rank.'}, 'depositMax': {'type': 'number', 'minimum': 0, 'description': 'Maximum deposit (Kaution) in EUR.'}, 'amenityTags': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 10, 'description': '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': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Available until / not later than (YYYY-MM-DD).'}, 'bedroomsMin': {'type': 'number', 'minimum': 0, 'description': 'Minimum number of bedrooms (from provider extra data when available).'}, 'housingType': {'enum': ['room', 'apartment'], 'type': 'string', 'description': 'Type of housing. Studios map to apartment; room includes both private and shared rooms unless roomType narrows it.'}, 'petsAllowed': {'type': 'boolean', 'description': 'true = pets explicitly allowed.'}, 'availableFrom': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Available from / not earlier than (YYYY-MM-DD), e.g. "2026-08-01".'}, 'personsMaxMin': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Minimum capacity (personsMax). Use 2 for couples, 1 for solo — filters listings that can accommodate at least this many people.', 'exclusiveMinimum': 0}, 'noSchufaLikely': {'type': 'boolean', 'description': 'true = Schufa likely not required (broader). Prefer for "without Schufa".'}, 'schufaRequired': {'type': 'boolean', 'description': 'true = Schufa required.'}, 'smokingAllowed': {'type': 'boolean', 'description': 'false = non-smokers only / smoking not allowed.'}, 'anmeldungLikely': {'type': 'boolean', 'description': 'true = Anmeldung likely (broader). Prefer for "with Anmeldung" unless the user needs a hard guarantee.'}, 'squareMetersMax': {'type': 'number', 'minimum': 0, 'description': 'Maximum living area in m².'}, 'squareMetersMin': {'type': 'number', 'minimum': 0, 'description': 'Minimum living area in m². "from 40 m²" → 40. Filter on the backend — do not paginate to drop small listings.'}, 'noSchufaRequired': {'type': 'boolean', 'description': 'true = Schufa explicitly not required (strict).'}, 'studentsFriendly': {'type': 'boolean', 'description': 'true = student-oriented housing (broader).'}, 'onlyStudentsAllowed': {'type': 'boolean', 'description': 'true = students-only listings.'}, 'registrationPossible': {'type': 'boolean', 'description': 'true = Anmeldung / registration explicitly possible (strict).'}}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['alert'], 'properties': {'alert': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'number'}, 'name': {'type': 'string'}, 'createdAt': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'alertId': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Deprecated single-id form; use alertIds: [id] instead.', 'exclusiveMinimum': 0}, 'alertIds': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'maxItems': 10, 'minItems': 1, 'description': 'Between 1 and 10 alert ids to delete. Preferred for one or many.'}}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['deleted', 'alertIds'], 'properties': {'deleted': {'type': 'boolean'}, 'alertIds': {'type': 'array', 'items': {'type': 'number'}}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['listingId'], 'properties': {'listingId': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Numeric FlatHunt listing id.', 'exclusiveMinimum': 0}}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['listing'], 'properties': {'listing': {'type': 'object', 'required': ['id', 'title'], 'properties': {'id': {'type': 'number'}, 'lat': {'type': 'number'}, 'lng': {'type': 'number'}, 'area': {'type': 'string'}, 'floor': {'type': 'string'}, 'price': {'type': 'number'}, 'rooms': {'type': ['number', 'string']}, 'saved': {'type': 'boolean'}, 'title': {'type': 'string'}, 'images': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'alt': {'type': 'string'}, 'url': {'type': 'string'}, 'width': {'type': 'number'}, 'height': {'type': 'number'}, 'thumbnailUrl': {'type': 'string'}}, 'additionalProperties': False}}, 'labels': {'type': 'array', 'items': {'type': 'string'}}, 'maxAge': {'type': 'number'}, 'minAge': {'type': 'number'}, 'address': {'type': 'string'}, 'deposit': {'type': 'number'}, 'bedrooms': {'type': 'number'}, 'location': {'type': 'string'}, 'postCode': {'type': 'string'}, 'provider': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'logoUrl': {'type': 'string'}}, 'additionalProperties': False}, 'roomType': {'enum': ['private', 'shared'], 'type': 'string'}, 'bathrooms': {'type': 'number'}, 'furnished': {'type': 'string'}, 'noDeposit': {'type': 'boolean'}, 'detailsUrl': {'type': 'string'}, 'personsMax': {'type': 'number'}, 'amenityTags': {'type': 'array', 'items': {'type': 'string'}}, 'availableTo': {'type': 'string'}, 'description': {'type': 'string'}, 'housingType': {'type': 'string'}, 'petsAllowed': {'type': 'boolean'}, 'trackingUrl': {'type': 'string'}, 'partyAllowed': {'type': 'boolean'}, 'availableFrom': {'type': 'string'}, 'maxStayMonths': {'type': 'number'}, 'minStayMonths': {'type': 'number'}, 'utilitiesCost': {'type': 'number'}, 'couplesAllowed': {'type': 'boolean'}, 'noSchufaLikely': {'type': 'boolean'}, 'priceFormatted': {'type': 'string'}, 'schufaRequired': {'type': 'boolean'}, 'smokingAllowed': {'type': 'boolean'}, 'virtualTourUrl': {'type': 'string'}, 'anmeldungLikely': {'type': 'boolean'}, 'childrenAllowed': {'type': 'boolean'}, 'nearbyDistances': {'type': 'array', 'items': {'type': 'object', 'required': ['place', 'distance'], 'properties': {'place': {'type': 'string'}, 'distance': {'type': 'string'}}, 'additionalProperties': False}}, 'preferredGender': {'type': 'string'}, 'propertySubtype': {'type': 'string'}, 'amenitiesUnknown': {'type': 'array', 'items': {'type': 'string'}}, 'areaSquareMeters': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'depositFormatted': {'type': 'string'}, 'noSchufaRequired': {'type': 'boolean'}, 'studentsFriendly': {'type': 'boolean'}, 'guarantorRequired': {'type': 'boolean'}, 'utilitiesIncluded': {'type': 'array', 'items': {'type': 'string'}}, 'buildingAmenityTags': {'type': 'array', 'items': {'type': 'string'}}, 'onlyStudentsAllowed': {'type': 'boolean'}, 'registrationPossible': {'type': 'boolean'}, 'buildingAmenitiesUnknown': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['alerts'], 'properties': {'alerts': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'number'}, 'name': {'type': 'string'}, 'createdAt': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'type': {'enum': ['bezirk', 'ortsteil'], 'type': 'string', 'description': 'Optional filter by area type.'}, 'query': {'type': 'string', 'description': 'Optional case-insensitive substring filter on area name or slug. Omit to return the full catalog (109 areas).'}}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['areas', 'total', 'catalogVersion'], 'properties': {'areas': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'slug', 'type'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'type': {'enum': ['bezirk', 'ortsteil'], 'type': 'string'}, 'parentName': {'type': 'string'}, 'parentAreaId': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'catalogVersion': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['savedListings'], 'properties': {'savedListings': {'type': 'array', 'items': {'type': 'object', 'required': ['listingId'], 'properties': {'listing': {'type': 'object', 'required': ['id', 'title'], 'properties': {'id': {'type': 'number'}, 'area': {'type': 'string'}, 'floor': {'type': 'string'}, 'price': {'type': 'number'}, 'rooms': {'type': ['number', 'string']}, 'title': {'type': 'string'}, 'images': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'alt': {'type': 'string'}, 'url': {'type': 'string'}, 'width': {'type': 'number'}, 'height': {'type': 'number'}, 'thumbnailUrl': {'type': 'string'}}, 'additionalProperties': False}}, 'labels': {'type': 'array', 'items': {'type': 'string'}}, 'maxAge': {'type': 'number'}, 'minAge': {'type': 'number'}, 'deposit': {'type': 'number'}, 'bedrooms': {'type': 'number'}, 'location': {'type': 'string'}, 'postCode': {'type': 'string'}, 'provider': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'logoUrl': {'type': 'string'}}, 'additionalProperties': False}, 'roomType': {'enum': ['private', 'shared'], 'type': 'string'}, 'bathrooms': {'type': 'number'}, 'furnished': {'type': 'string'}, 'noDeposit': {'type': 'boolean'}, 'detailsUrl': {'type': 'string'}, 'personsMax': {'type': 'number'}, 'amenityTags': {'type': 'array', 'items': {'type': 'string'}}, 'availableTo': {'type': 'string'}, 'housingType': {'type': 'string'}, 'petsAllowed': {'type': 'boolean'}, 'trackingUrl': {'type': 'string'}, 'partyAllowed': {'type': 'boolean'}, 'availableFrom': {'type': 'string'}, 'maxStayMonths': {'type': 'number'}, 'minStayMonths': {'type': 'number'}, 'couplesAllowed': {'type': 'boolean'}, 'noSchufaLikely': {'type': 'boolean'}, 'priceFormatted': {'type': 'string'}, 'schufaRequired': {'type': 'boolean'}, 'smokingAllowed': {'type': 'boolean'}, 'anmeldungLikely': {'type': 'boolean'}, 'childrenAllowed': {'type': 'boolean'}, 'preferredGender': {'type': 'string'}, 'propertySubtype': {'type': 'string'}, 'amenitiesUnknown': {'type': 'array', 'items': {'type': 'string'}}, 'areaSquareMeters': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'depositFormatted': {'type': 'string'}, 'noSchufaRequired': {'type': 'boolean'}, 'studentsFriendly': {'type': 'boolean'}, 'guarantorRequired': {'type': 'boolean'}, 'buildingAmenityTags': {'type': 'array', 'items': {'type': 'string'}}, 'onlyStudentsAllowed': {'type': 'boolean'}, 'registrationPossible': {'type': 'boolean'}, 'buildingAmenitiesUnknown': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'savedAt': {'type': 'string'}, 'listingId': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['listingId'], 'properties': {'listingId': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Numeric id of the listing to remove.', 'exclusiveMinimum': 0}}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['removed', 'listingId'], 'properties': {'removed': {'type': 'boolean'}, 'listingId': {'type': 'number'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['listingIds'], 'properties': {'listingIds': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'maxItems': 10, 'minItems': 1, 'description': 'Between 1 and 10 unique FlatHunt listing ids.'}, 'alertCriteria': {'type': 'object', 'properties': {'lat': {'type': 'number', 'description': 'Optional. Nearby-search latitude (with lng).'}, 'lng': {'type': 'number', 'description': 'Optional. Nearby-search longitude (with lat).'}, 'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "Optional. Short saved-search label in the user's language so Save search uses a meaningful name (not a generic default)."}, 'areas': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional. Canonical area ids from list_areas used in the search.'}, 'rooms': {'type': 'array', 'items': {'enum': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'studio'], 'type': 'string'}, 'description': 'Optional. Exact room counts from the search. Allowed: "studio", "1"…"10" (strings only).'}, 'postCode': {'type': 'string', 'description': 'Optional. Exact Berlin PLZ from the search.'}, 'priceMax': {'type': 'number', 'minimum': 0, 'description': 'Optional. Maximum monthly price in EUR from the search.'}, 'priceMin': {'type': 'number', 'minimum': 0, 'description': 'Optional. Minimum monthly price in EUR from the search.'}, 'radiusKm': {'type': 'number', 'description': 'Optional. Nearby-search radius in km.', 'exclusiveMinimum': 0}, 'roomType': {'enum': ['private', 'shared'], 'type': 'string', 'description': 'Optional. Same roomType as the preceding search_listings call.'}, 'roomsMax': {'type': 'number', 'minimum': 0, 'description': 'Optional. Maximum rooms from the search.'}, 'roomsMin': {'type': 'number', 'minimum': 0, 'description': 'Optional. Minimum rooms from the search (studio = 0).'}, 'providers': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional. Provider ids from the search.'}, 'depositMax': {'type': 'number', 'minimum': 0, 'description': 'Optional. Maximum deposit EUR from the search.'}, 'amenityTags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional. Canonical amenity tags (AND) from the search, e.g. wifi, parking, washing_machine.'}, 'availableTo': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Optional. Available-to date (YYYY-MM-DD) from the search.'}, 'bedroomsMin': {'type': 'number', 'minimum': 0, 'description': 'Optional. Minimum bedrooms from the search.'}, 'housingType': {'enum': ['room', 'apartment'], 'type': 'string', 'description': 'Optional. Same housingType as the preceding search_listings call.'}, 'petsAllowed': {'type': 'boolean', 'description': 'Optional. Pets filter from the search.'}, 'availableFrom': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Optional. Available-from date (YYYY-MM-DD) from the search.'}, 'personsMaxMin': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Optional. Minimum capacity from the search.', 'exclusiveMinimum': 0}, 'noSchufaLikely': {'type': 'boolean', 'description': 'Optional. No-Schufa-likely filter from the search.'}, 'schufaRequired': {'type': 'boolean', 'description': 'Optional. Schufa-required filter from the search.'}, 'smokingAllowed': {'type': 'boolean', 'description': 'Optional. Smoking filter from the search.'}, 'anmeldungLikely': {'type': 'boolean', 'description': 'Optional. Anmeldung-likely filter from the search.'}, 'squareMetersMax': {'type': 'number', 'minimum': 0, 'description': 'Optional. Maximum living area m² from the search.'}, 'squareMetersMin': {'type': 'number', 'minimum': 0, 'description': 'Optional. Minimum living area m² from the search.'}, 'noSchufaRequired': {'type': 'boolean', 'description': 'Optional. No-Schufa-required filter from the search.'}, 'studentsFriendly': {'type': 'boolean', 'description': 'Optional. Students-friendly filter from the search.'}, 'onlyStudentsAllowed': {'type': 'boolean', 'description': 'Optional. Students-only filter from the search.'}, 'registrationPossible': {'type': 'boolean', 'description': 'Optional. Anmeldung/registration filter from the search.'}}, 'description': 'Optional saved-search criteria represented by this result set. Every nested field is optional. Pagination and sort fields are not accepted.'}}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['listings'], 'properties': {'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'available', 'images', 'amenities', 'amenitiesMoreCount'], 'properties': {'id': {'type': 'number'}, 'area': {'type': 'string'}, 'price': {'type': 'number'}, 'rooms': {'type': ['number', 'string']}, 'saved': {'type': 'boolean'}, 'title': {'type': 'string'}, 'images': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'alt': {'type': 'string'}, 'url': {'type': 'string'}, 'width': {'type': 'number'}, 'height': {'type': 'number'}, 'thumbnailUrl': {'type': 'string'}}, 'additionalProperties': False}}, 'labels': {'type': 'array', 'items': {'type': 'string'}}, 'address': {'type': 'string'}, 'deposit': {'type': 'number'}, 'bedrooms': {'type': 'number'}, 'provider': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'logoUrl': {'type': 'string'}}, 'additionalProperties': False}, 'roomType': {'enum': ['private', 'shared'], 'type': 'string'}, 'amenities': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'tone'], 'properties': {'id': {'type': 'string'}, 'icon': {'type': 'string'}, 'tone': {'enum': ['neutral', 'positive'], 'type': 'string'}, 'label': {'type': 'string'}}, 'additionalProperties': False}}, 'available': {'type': 'boolean'}, 'bathrooms': {'type': 'number'}, 'noDeposit': {'type': 'boolean'}, 'detailsUrl': {'type': 'string'}, 'personsMax': {'type': 'number'}, 'availableTo': {'type': 'string'}, 'housingType': {'type': 'string'}, 'petsAllowed': {'type': 'boolean'}, 'trackingUrl': {'type': 'string'}, 'availableFrom': {'type': 'string'}, 'priceFormatted': {'type': 'string'}, 'areaSquareMeters': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'depositFormatted': {'type': 'string'}, 'amenitiesMoreCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'registrationPossible': {'type': 'boolean'}, 'availableFromFormatted': {'type': 'string'}}, 'additionalProperties': False}}, 'alertCriteria': {'type': 'object', 'properties': {'lat': {'type': 'number', 'description': 'Optional. Nearby-search latitude (with lng).'}, 'lng': {'type': 'number', 'description': 'Optional. Nearby-search longitude (with lat).'}, 'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "Optional. Short saved-search label in the user's language so Save search uses a meaningful name (not a generic default)."}, 'areas': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional. Canonical area ids from list_areas used in the search.'}, 'rooms': {'type': 'array', 'items': {'enum': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'studio'], 'type': 'string'}, 'description': 'Optional. Exact room counts from the search. Allowed: "studio", "1"…"10" (strings only).'}, 'postCode': {'type': 'string', 'description': 'Optional. Exact Berlin PLZ from the search.'}, 'priceMax': {'type': 'number', 'minimum': 0, 'description': 'Optional. Maximum monthly price in EUR from the search.'}, 'priceMin': {'type': 'number', 'minimum': 0, 'description': 'Optional. Minimum monthly price in EUR from the search.'}, 'radiusKm': {'type': 'number', 'description': 'Optional. Nearby-search radius in km.', 'exclusiveMinimum': 0}, 'roomType': {'enum': ['private', 'shared'], 'type': 'string', 'description': 'Optional. Same roomType as the preceding search_listings call.'}, 'roomsMax': {'type': 'number', 'minimum': 0, 'description': 'Optional. Maximum rooms from the search.'}, 'roomsMin': {'type': 'number', 'minimum': 0, 'description': 'Optional. Minimum rooms from the search (studio = 0).'}, 'providers': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional. Provider ids from the search.'}, 'depositMax': {'type': 'number', 'minimum': 0, 'description': 'Optional. Maximum deposit EUR from the search.'}, 'amenityTags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional. Canonical amenity tags (AND) from the search, e.g. wifi, parking, washing_machine.'}, 'availableTo': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Optional. Available-to date (YYYY-MM-DD) from the search.'}, 'bedroomsMin': {'type': 'number', 'minimum': 0, 'description': 'Optional. Minimum bedrooms from the search.'}, 'housingType': {'enum': ['room', 'apartment'], 'type': 'string', 'description': 'Optional. Same housingType as the preceding search_listings call.'}, 'petsAllowed': {'type': 'boolean', 'description': 'Optional. Pets filter from the search.'}, 'availableFrom': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Optional. Available-from date (YYYY-MM-DD) from the search.'}, 'personsMaxMin': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Optional. Minimum capacity from the search.', 'exclusiveMinimum': 0}, 'noSchufaLikely': {'type': 'boolean', 'description': 'Optional. No-Schufa-likely filter from the search.'}, 'schufaRequired': {'type': 'boolean', 'description': 'Optional. Schufa-required filter from the search.'}, 'smokingAllowed': {'type': 'boolean', 'description': 'Optional. Smoking filter from the search.'}, 'anmeldungLikely': {'type': 'boolean', 'description': 'Optional. Anmeldung-likely filter from the search.'}, 'squareMetersMax': {'type': 'number', 'minimum': 0, 'description': 'Optional. Maximum living area m² from the search.'}, 'squareMetersMin': {'type': 'number', 'minimum': 0, 'description': 'Optional. Minimum living area m² from the search.'}, 'noSchufaRequired': {'type': 'boolean', 'description': 'Optional. No-Schufa-required filter from the search.'}, 'studentsFriendly': {'type': 'boolean', 'description': 'Optional. Students-friendly filter from the search.'}, 'onlyStudentsAllowed': {'type': 'boolean', 'description': 'Optional. Students-only filter from the search.'}, 'registrationPossible': {'type': 'boolean', 'description': 'Optional. Anmeldung/registration filter from the search.'}}, 'description': 'Optional object. If present, include only the filter keys used in the preceding search_listings call — every nested field is optional; omit unused keys. Never require all fields. Do not include page, limit, sortBy, or sortOrder.', 'additionalProperties': False}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['listingId'], 'properties': {'listingId': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Numeric id of the listing to save.', 'exclusiveMinimum': 0}}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['saved', 'listingId'], 'properties': {'saved': {'type': 'boolean'}, 'listingId': {'type': 'number'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'lat': {'type': 'number', 'description': 'Latitude for nearby search; must be provided with lng (+ radiusKm). Do not mix with areas.'}, 'lng': {'type': 'number', 'description': 'Longitude for nearby search; must be provided with lat (+ radiusKm). Do not mix with areas.'}, 'page': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Page number (default 1).', 'exclusiveMinimum': 0}, 'areas': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 20, 'description': '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': {'type': 'integer', 'maximum': 20, 'description': 'Results per page (default 10, max 20).', 'exclusiveMinimum': 0}, 'rooms': {'type': 'array', 'items': {'enum': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'studio'], 'type': 'string'}, 'maxItems': 10, 'description': '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': ['rank', 'price', 'squareMeters', 'createdAt', 'availableFrom'], 'type': 'string', 'description': 'Sort field (default rank). sortOrder is ignored when sortBy=rank. Cheaper first → price+asc; larger area → squareMeters+desc.'}, 'postCode': {'type': 'string', 'description': 'Exact Berlin post code (PLZ), e.g. 10115.'}, 'priceMax': {'type': 'number', 'minimum': 0, 'description': 'Maximum monthly price in EUR.'}, 'priceMin': {'type': 'number', 'minimum': 0, 'description': 'Minimum monthly price in EUR.'}, 'radiusKm': {'type': 'number', 'maximum': 25, 'minimum': 0.1, 'description': 'Search radius in km around lat/lng (min 0.1, max 25). Nearby mode — do not mix with areas.'}, 'roomType': {'enum': ['private', 'shared'], 'type': 'string', 'description': '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.'}, 'roomsMax': {'type': 'number', 'minimum': 0, 'description': 'Maximum rooms. Prefer rooms[] for exact OR lists.'}, 'roomsMin': {'type': 'number', 'minimum': 0, 'description': 'Minimum rooms (studio = 0). Prefer rooms[] for exact OR lists.'}, 'providers': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'description': 'Restrict to specific housing providers (ids from the providers catalog).'}, 'sortOrder': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction (default desc). Ignored when sortBy=rank.'}, 'depositMax': {'type': 'number', 'minimum': 0, 'description': 'Maximum deposit (Kaution) in EUR.'}, 'amenityTags': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 10, 'description': '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': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Available until / not later than (YYYY-MM-DD).'}, 'bedroomsMin': {'type': 'number', 'minimum': 0, 'description': 'Minimum number of bedrooms (from provider extra data when available).'}, 'housingType': {'enum': ['room', 'apartment'], 'type': 'string', 'description': 'Type of housing. Studios map to apartment; room includes both private and shared rooms unless roomType narrows it.'}, 'petsAllowed': {'type': 'boolean', 'description': 'true = pets explicitly allowed.'}, 'availableFrom': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Available from / not earlier than (YYYY-MM-DD), e.g. "2026-08-01".'}, 'personsMaxMin': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Minimum capacity (personsMax). Use 2 for couples, 1 for solo — filters listings that can accommodate at least this many people.', 'exclusiveMinimum': 0}, 'noSchufaLikely': {'type': 'boolean', 'description': 'true = Schufa likely not required (broader). Prefer for "without Schufa".'}, 'schufaRequired': {'type': 'boolean', 'description': 'true = Schufa required.'}, 'smokingAllowed': {'type': 'boolean', 'description': 'false = non-smokers only / smoking not allowed.'}, 'anmeldungLikely': {'type': 'boolean', 'description': 'true = Anmeldung likely (broader). Prefer for "with Anmeldung" unless the user needs a hard guarantee.'}, 'squareMetersMax': {'type': 'number', 'minimum': 0, 'description': 'Maximum living area in m².'}, 'squareMetersMin': {'type': 'number', 'minimum': 0, 'description': 'Minimum living area in m². "from 40 m²" → 40. Filter on the backend — do not paginate to drop small listings.'}, 'noSchufaRequired': {'type': 'boolean', 'description': 'true = Schufa explicitly not required (strict).'}, 'studentsFriendly': {'type': 'boolean', 'description': 'true = student-oriented housing (broader).'}, 'onlyStudentsAllowed': {'type': 'boolean', 'description': 'true = students-only listings.'}, 'registrationPossible': {'type': 'boolean', 'description': 'true = Anmeldung / registration explicitly possible (strict).'}}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['listings', 'pagination'], 'properties': {'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title'], 'properties': {'id': {'type': 'number'}, 'area': {'type': 'string'}, 'floor': {'type': 'string'}, 'price': {'type': 'number'}, 'rooms': {'type': ['number', 'string']}, 'title': {'type': 'string'}, 'images': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'alt': {'type': 'string'}, 'url': {'type': 'string'}, 'width': {'type': 'number'}, 'height': {'type': 'number'}, 'thumbnailUrl': {'type': 'string'}}, 'additionalProperties': False}}, 'labels': {'type': 'array', 'items': {'type': 'string'}}, 'maxAge': {'type': 'number'}, 'minAge': {'type': 'number'}, 'deposit': {'type': 'number'}, 'bedrooms': {'type': 'number'}, 'location': {'type': 'string'}, 'postCode': {'type': 'string'}, 'provider': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'logoUrl': {'type': 'string'}}, 'additionalProperties': False}, 'roomType': {'enum': ['private', 'shared'], 'type': 'string'}, 'bathrooms': {'type': 'number'}, 'furnished': {'type': 'string'}, 'noDeposit': {'type': 'boolean'}, 'detailsUrl': {'type': 'string'}, 'personsMax': {'type': 'number'}, 'amenityTags': {'type': 'array', 'items': {'type': 'string'}}, 'availableTo': {'type': 'string'}, 'housingType': {'type': 'string'}, 'petsAllowed': {'type': 'boolean'}, 'trackingUrl': {'type': 'string'}, 'partyAllowed': {'type': 'boolean'}, 'availableFrom': {'type': 'string'}, 'maxStayMonths': {'type': 'number'}, 'minStayMonths': {'type': 'number'}, 'couplesAllowed': {'type': 'boolean'}, 'noSchufaLikely': {'type': 'boolean'}, 'priceFormatted': {'type': 'string'}, 'schufaRequired': {'type': 'boolean'}, 'smokingAllowed': {'type': 'boolean'}, 'anmeldungLikely': {'type': 'boolean'}, 'childrenAllowed': {'type': 'boolean'}, 'preferredGender': {'type': 'string'}, 'propertySubtype': {'type': 'string'}, 'amenitiesUnknown': {'type': 'array', 'items': {'type': 'string'}}, 'areaSquareMeters': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'depositFormatted': {'type': 'string'}, 'noSchufaRequired': {'type': 'boolean'}, 'studentsFriendly': {'type': 'boolean'}, 'guarantorRequired': {'type': 'boolean'}, 'buildingAmenityTags': {'type': 'array', 'items': {'type': 'string'}}, 'onlyStudentsAllowed': {'type': 'boolean'}, 'registrationPossible': {'type': 'boolean'}, 'buildingAmenitiesUnknown': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'pagination': {'type': 'object', 'required': ['page', 'limit', 'total', 'totalPages'], 'properties': {'page': {'type': 'number'}, 'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'totalPages': {'type': 'number'}}, 'additionalProperties': False}}, 'additionalProperties': False}
최근 도구 변경
유사한 MCP 서버
US Company Intelligence for AI Agents (SEC EDGAR, x402)
Offers pay-per-call web extraction, search and LLM tools plus French company, property, procurement, marketplace and security dat…
The Mine Works
Aggregates web research tools for company intelligence, leads, recruiting, social and review data, public records, jobs, securiti…
Subastech — subastas judiciales de inmuebles (BOE)
Searches and analyzes Spanish BOE judicial real-estate auctions, with property details, viability reports, alerts, market statist…
Fless Apartment Hunt
Provides apartment-hunting research for the DC, Maryland, and Virginia region, including neighborhood rents, amenities, and pre-f…
Zoning Signal
Provides searchable and citable US municipal zoning intelligence covering places, corridors, meetings, entities, patterns, and fo…
SPACEXPLORATION
Searches and manages commercial real-estate listings, saved searches, property attributes, media, geocoding, and custom-domain li…
Jacob Campbell — Florida Real Estate (The Keyes Company)
Provides Florida real estate market figures, MLS search access, referral information, service areas and site content for a specif…
ONR: Mapa do Registro de Imóveis
Queries the official ONR map and property registry information sources in Brazil.