MCP 服务器

Fless Apartment Hunt

io.fless/mcp
房地产 搜索与研究 公开且可连接 MCP 2026-07-28

此 MCP 可以做什么

Provides apartment-hunting research for the DC, Maryland, and Virginia region, including neighborhood rents, amenities, and pre-filled hunt links.

build_hunt_link
Validate a hunt brief and get a URL that pre-fills the full hunt form for the human. Works with partial briefs (missing_fields lists what to collect).
只读 幂等
输入模式
{'type': 'object', 'required': ['hunt_params'], 'properties': {'channel': {'type': 'string', 'description': "Your product name, e.g. 'claude', 'openclaw'"}, 'hunt_params': {'type': 'object', 'description': 'Hunt brief per get_hunt_requirements (city_id, min_price, max_price, bedrooms, move_in_date, proximity_criteria[], amenities{}, additional_questions[])'}}}
check_hunt_link
Aggregate status of a hunt link (created/opened/started) — no personal data.
只读 幂等
输入模式
{'type': 'object', 'required': ['token'], 'properties': {'token': {'type': 'string'}}}
fetch
Fetch full content by id from search: markdown text + canonical url for citations.
只读 幂等
输入模式
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'city:<slug> | neighborhood:<city>:<nb> | doc:hunt-how-to'}}}
get_city_overview
Neighborhood-level overview of a live city: median rents (1BR/2BR), walk/transit/bike scores per neighborhood.
只读 幂等
输入模式
{'type': 'object', 'required': ['city'], 'properties': {'city': {'type': 'string', 'description': "City slug or name, e.g. 'alexandria'"}}}
get_city_request_stats
See which cities have been requested most. Useful for telling users whether their city has demand.
只读 幂等
输入模式
{'type': 'object', 'properties': {}}
get_hunt_requirements
Every hunt field, enum, and rule; canonical amenity keys; binary restrictions (55+, pets, smoking); transparent credit pricing. Read this before collecting a hunt brief.
只读 幂等
输入模式
{'type': 'object', 'properties': {'city': {'type': 'string', 'description': 'Optional city to pin the brief to'}}}
get_neighborhood
Full detail for one neighborhood: rents, scores, POI counts, descriptions, nearby neighborhoods.
只读 幂等
输入模式
{'type': 'object', 'required': ['city', 'neighborhood'], 'properties': {'city': {'type': 'string'}, 'neighborhood': {'type': 'string', 'description': 'slug or name'}}}
realtor_add_building_to_hunt
Realtor tool: requires Authorization: Bearer with an API key (create one at fless.io/realtor under API keys); anonymous calls return the structured UNAUTHORIZED error. Search your hunt's building inventory by name and manually add the one unambiguous match into the hunt (several matches: top 3 are named and nothing is added).
输入模式
{'type': 'object', 'required': ['hunt_id', 'query'], 'properties': {'query': {'type': 'string', 'description': 'Building name fragment (min 2 chars)'}, 'hunt_id': {'type': 'integer'}}}
realtor_create_client
Realtor tool: requires Authorization: Bearer with an API key (create one at fless.io/realtor under API keys); anonymous calls return the structured UNAUTHORIZED error. Invite a client by email; the invitation email carries a 7-day accept link. Gated on an active subscription/trial.
输入模式
{'type': 'object', 'required': ['email', 'first_name', 'last_name'], 'properties': {'email': {'type': 'string'}, 'last_name': {'type': 'string'}, 'first_name': {'type': 'string'}}}
realtor_create_hunt
Realtor tool: requires Authorization: Bearer with an API key (create one at fless.io/realtor under API keys); anonymous calls return the structured UNAUTHORIZED error. Create a hunt FOR one of your clients (fields mirror get_hunt_requirements). Returns hunt_id + matched_count; the hunt parks at awaiting_realtor_curation. Gated on an active subscription/trial.
输入模式
{'type': 'object', 'required': ['name', 'city_id'], 'properties': {'name': {'type': 'string', 'description': "Hunt name, e.g. 'Priya - Capitol Hill 2BR'"}, 'city_id': {'type': 'integer', 'description': 'Live city id (search_cities returns ids)'}, 'bedrooms': {'enum': ['0', '1', '2', '3', '4', '4+', 'studio'], 'type': 'string'}, 'max_price': {'type': 'number', 'description': 'Monthly USD, > min_price'}, 'min_price': {'type': 'number', 'description': 'Monthly USD'}, 'client_email': {'type': 'string', 'description': "Alternative to client_user_id: the client's linked email"}, 'move_in_date': {'type': 'string', 'format': 'YYYY-MM-DD', 'description': 'Must be a future date'}, 'client_user_id': {'type': 'integer', 'description': "Your client's user id (realtor_list_clients). Provide client_user_id OR client_email."}, 'proximity_criteria': {'type': 'array', 'items': {'type': 'object'}, 'description': 'POIs the hunt centers on (name, latitude, longitude, category?, max_distance miles 0.1-10)'}}}
realtor_curate_hunt
Realtor tool: requires Authorization: Bearer with an API key (create one at fless.io/realtor under API keys); anonymous calls return the structured UNAUTHORIZED error. Curate the candidate list WITHOUT sending: removals [{id, reason?}] and notes [{id, internal_notes?, client_notes?}] (hunt_building ids from realtor_list_candidate_buildings). Not gated.
输入模式
{'type': 'object', 'required': ['hunt_id'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'client_notes': {'type': 'string', 'description': 'Shown to the client in review'}, 'internal_notes': {'type': 'string', 'description': 'Private to you (never shown to the client)'}}}}, 'hunt_id': {'type': 'integer'}, 'removals': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'reason': {'type': 'string'}}}}}}
realtor_get_hunt_status
Realtor tool: requires Authorization: Bearer with an API key (create one at fless.io/realtor under API keys); anonymous calls return the structured UNAUTHORIZED error. Status of one of your hunts: review_state, counts, and the client's name.
只读 幂等
输入模式
{'type': 'object', 'required': ['hunt_id'], 'properties': {'hunt_id': {'type': 'integer'}}}
realtor_list_candidate_buildings
Realtor tool: requires Authorization: Bearer with an API key (create one at fless.io/realtor under API keys); anonymous calls return the structured UNAUTHORIZED error. The matched candidate list for one of your hunts (counts + buildings with eligibility, distance, and your curation status).
只读 幂等
输入模式
{'type': 'object', 'required': ['hunt_id'], 'properties': {'hunt_id': {'type': 'integer'}}}
realtor_list_clients
Realtor tool: requires Authorization: Bearer with an API key (create one at fless.io/realtor under API keys); anonymous calls return the structured UNAUTHORIZED error. Accepted clients (id, name, email) + pending invitations (email, expires).
只读 幂等
输入模式
{'type': 'object', 'properties': {}}
realtor_send_to_client
Realtor tool: requires Authorization: Bearer with an API key (create one at fless.io/realtor under API keys); anonymous calls return the structured UNAUTHORIZED error. Send the curated list to the client: every non-removed building becomes included and the hunt moves to awaiting_client_approval (the CLIENT releases outreach). Gated on an active subscription/trial.
输入模式
{'type': 'object', 'required': ['hunt_id'], 'properties': {'hunt_id': {'type': 'integer'}}}
request_city
Request that Fless expand to a new city. Use when the user's target city is not currently served (Washington, DC / Maryland / Virginia only). Returns the total request count for that city. No account or email needed.
幂等
输入模式
{'type': 'object', 'required': ['city', 'state'], 'properties': {'city': {'type': 'string', 'maxLength': 100, 'description': "City name, e.g. 'Houston'"}, 'state': {'type': 'string', 'pattern': '^[A-Z]{2}$', 'description': "2-letter US state code, e.g. 'TX'"}}}
search
Search Fless content (cities, neighborhoods, hunt guide). Returns citable ids for fetch.
只读 幂等
输入模式
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string'}}}
search_cities
List cities where Fless operates (live + coming soon). Returns ids needed for hunts.
只读 幂等
输入模式
{'type': 'object', 'properties': {'query': {'type': 'string', 'description': 'Optional name/state filter'}}}
submit_error_report
Report a problem with Fless tools or data so we can fix it. Include: the tool you called, the error code from the error contract if present, what happened vs what you expected. Do NOT include personal data.
输入模式
{'type': 'object', 'required': ['error_type', 'tool_name', 'what_happened'], 'properties': {'tool_name': {'enum': ['search_cities', 'get_city_overview', 'get_neighborhood', 'get_hunt_requirements', 'build_hunt_link', 'check_hunt_link', 'request_city', 'get_city_request_stats', 'search', 'fetch', 'submit_error_report', 'website', 'docs', 'other'], 'type': 'string', 'description': 'The tool (or surface) the problem occurred on.'}, 'error_code': {'type': 'string', 'pattern': '^[A-Z][A-Z0-9_]{0,63}$', 'description': 'Error code from the error contract, if present (e.g. CITY_NOT_FOUND). Omit when absent.'}, 'error_type': {'enum': ['tool_error', 'bad_data', 'missing_city', 'documentation', 'auth', 'rate_limit', 'other'], 'type': 'string', 'description': 'What kind of problem this is.'}, 'what_expected': {'type': 'string', 'maxLength': 500, 'description': 'What you expected to happen instead (optional).'}, 'what_happened': {'type': 'string', 'maxLength': 1000, 'minLength': 10, 'description': 'Factual description of what happened (plain text, no personal data, 10-1000 chars).'}}}
已添加
realtor_get_hunt_status
2026年10月1日 02:43
已添加
realtor_send_to_client
2026年10月1日 02:43
已添加
realtor_add_building_to_hunt
2026年10月1日 02:43
已添加
realtor_curate_hunt
2026年10月1日 02:43
已添加
realtor_list_candidate_buildings
2026年10月1日 02:43
已添加
realtor_create_hunt
2026年10月1日 02:43
已添加
realtor_create_client
2026年10月1日 02:43
已添加
realtor_list_clients
2026年10月1日 02:43
已添加
submit_error_report
2026年9月21日 02:40
已添加
fetch
2026年9月21日 02:40
已添加
search
2026年9月21日 02:40
已添加
get_city_request_stats
2026年9月21日 02:40
已添加
request_city
2026年9月21日 02:40
已添加
check_hunt_link
2026年9月21日 02:40
已添加
build_hunt_link
2026年9月21日 02:40
已添加
get_hunt_requirements
2026年9月21日 02:40
已添加
get_neighborhood
2026年9月21日 02:40
已添加
get_city_overview
2026年9月21日 02:40
已添加
search_cities
2026年9月21日 02:40