此 MCP 可以做什么
Helps users search San Francisco rentals, compare listing requirements, manage move tasks, prepare drafts, and find relocation-related banking and phone options.
工具
输入模式
{'type': 'object', 'required': ['listing_url'], 'properties': {'listing_url': {'type': 'string', 'description': "The listing's url, exactly as returned by search_listings."}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['listing', 'price', 'source', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label', 'status', 'required', 'yours', 'detail'], 'properties': {'key': {'type': 'string'}, 'src': {'type': ['string', 'null'], 'description': "The landlord's own sentence this line was read from."}, 'label': {'type': 'string'}, 'yours': {'type': ['string', 'null'], 'description': 'What the renter filled in (null = not filled in).'}, 'detail': {'type': 'string'}, 'status': {'enum': ['meets', 'info', 'gap', 'unknown_user', 'unknown_landlord'], 'type': 'string'}, 'blocking': {'type': 'boolean'}, 'required': {'type': ['string', 'null'], 'description': 'What the landlord wrote (null = not stated).'}}}}, 'price': {'type': ['number', 'null']}, 'source': {'type': 'object', 'required': ['kind', 'from', 'fetched_at'], 'properties': {'from': {'type': 'string'}, 'kind': {'enum': ['landlord_rules', 'listing_text'], 'type': 'string'}, 'name': {'type': ['string', 'null']}, 'fetched_at': {'type': ['number', 'string', 'null'], 'description': 'Epoch ms for landlord rules; ISO date for listing text.'}, 'fetched_from': {'type': ['string', 'null']}}}, 'listing': {'type': 'string'}, 'summary': {'anyOf': [{'type': 'object', 'properties': {'met': {'type': 'integer'}, 'gaps': {'type': 'integer'}, 'info': {'type': 'integer'}, 'askYou': {'type': 'integer'}, 'askLandlord': {'type': 'integer'}}}, {'type': 'null'}]}, 'triage_tier': {'type': ['string', 'null']}}}
输入模式
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Most recent N of the matches (default 100, max 500).'}, 'since': {'type': 'integer', 'minimum': 0, 'description': 'Epoch milliseconds; 0 for everything.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['ok', 'since', 'events', 'more'], 'properties': {'ok': {'type': 'boolean'}, 'more': {'type': 'integer'}, 'since': {'type': 'integer'}, 'events': {'type': 'array', 'items': {'type': 'object', 'required': ['ts', 'type'], 'properties': {'ts': {'type': 'integer'}, 'type': {'type': 'string'}, 'detail': {'type': 'object'}}}}}}
输入模式
{'type': 'object', 'properties': {}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['ok', 'd0', 'days_to_d0', 'total', 'done', 'actionable', 'blocked', 'overdue', 'critical_path', 'health'], 'properties': {'d0': {'type': 'string'}, 'ok': {'type': 'boolean'}, 'done': {'type': 'integer', 'description': 'Settled: done, sent, called, replied or marked not applicable (full ruler).'}, 'total': {'type': 'integer', 'description': 'Every task in this move (full ruler).'}, 'health': {'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'line': {'type': 'string'}}}, 'blocked': {'type': 'integer', 'description': 'total - done - actionable: tasks missing an answer AND tasks not yet unlocked, together.'}, 'overdue': {'type': 'integer', 'description': 'Past due, not in flight, not blocked (unlocked ruler).'}, 'actionable': {'type': 'integer', 'description': 'Unlocked and not waiting on an answer (unlocked ruler).'}, 'days_to_d0': {'type': 'integer'}, 'critical_path': {'type': 'object', 'properties': {'ids': {'type': 'array', 'items': {'type': 'string'}}, 'first': {'type': ['string', 'null']}, 'blocks': {'type': 'integer'}, 'remaining': {'type': 'integer'}}}}}
输入模式
{'type': 'object', 'required': ['task_id'], 'properties': {'task_id': {'type': 'string', 'description': 'A task id exactly as move_tasks / move_plan returned it.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['ok', 'id', 'title', 'kind', 'actor', 'due', 'dlabel', 'due_day', 'state'], 'properties': {'id': {'type': 'string'}, 'ok': {'type': 'boolean'}, 'due': {'type': 'integer'}, 'kind': {'type': 'string'}, 'actor': {'type': 'string'}, 'draft': {'type': 'object', 'description': 'Prepared, never sent.'}, 'state': {'type': 'string'}, 'title': {'type': 'string'}, 'dlabel': {'type': 'string'}, 'due_day': {'type': 'string'}, 'missing': {'type': 'array', 'items': {'type': 'string'}}, 'missing_text': {'type': 'array', 'items': {'type': 'string'}}}}
输入模式
{'type': 'object', 'required': ['task_id', 'field', 'value'], 'properties': {'field': {'type': 'string', 'description': "A field name from the task's missing list."}, 'value': {'type': 'string', 'description': 'What the person said. Not inferred, not a placeholder.'}, 'task_id': {'type': 'string', 'description': 'A task id exactly as move_tasks / move_plan returned it.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['ok', 'id', 'field'], 'properties': {'id': {'type': 'string'}, 'ok': {'type': 'boolean'}, 'field': {'type': 'string'}, 'state': {'type': ['string', 'null']}, 'closeout': {'type': 'object'}}}
输入模式
{'type': 'object', 'required': ['task_id', 'mode'], 'properties': {'mode': {'enum': ['later', 'not_applicable', 'undo'], 'type': 'string'}, 'task_id': {'type': 'string', 'description': 'A task id exactly as move_tasks / move_plan returned it.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['ok', 'state'], 'properties': {'ok': {'type': 'boolean'}, 'state': {'type': 'string'}, 'later_until': {'type': 'integer'}}}
输入模式
{'type': 'object', 'required': ['task_id'], 'properties': {'to': {'type': 'string', 'description': 'Recipient, when the person supplies one: an email address for an email task, a phone number for a call task. Leave it out to use the recipient we already have.'}, 'task_id': {'type': 'string', 'description': 'A task id exactly as move_tasks / move_plan returned it.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['ok', 'state'], 'properties': {'ok': {'type': 'boolean'}, 'draft': {'type': 'object', 'description': 'to / subject / body, or the call script. Prepared, not sent.'}, 'state': {'type': 'string', 'description': 'drafted = ready for them to press send; blocked = waiting on an answer.'}, 'missing': {'type': 'array', 'items': {'type': 'string'}}, 'missing_text': {'type': 'array', 'items': {'type': 'string'}}}}
输入模式
{'type': 'object', 'properties': {}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['hero', 'rows', 'moreCount'], 'properties': {'hero': {'anyOf': [{'type': 'object', 'required': ['id', 'title', 'state', 'kind', 'actor', 'due', 'dlabel', 'due_day', 'unlocks'], 'properties': {'id': {'type': 'string'}, 'due': {'type': 'integer'}, 'kind': {'type': 'string', 'description': "How it gets done: email, call, walk (fill a form on someone's site), research (find candidates / book / fill an application), or user (only the person can)."}, 'actor': {'type': 'string', 'description': 'agent = we can do it for them; user = only they can.'}, 'state': {'type': 'string', 'description': 'todo / blocked / drafted / approved / sent / called / replied / done / skipped.'}, 'title': {'type': 'string'}, 'dlabel': {'type': 'string'}, 'due_day': {'type': 'string'}, 'missing': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Field names this task is waiting on — pass one to move_task_answer.'}, 'unlocks': {'type': 'integer', 'description': "How many tasks that don't exist yet would appear once this one is finished."}, 'in_flight': {'type': 'boolean', 'description': 'Evidence says they already started it, so it is not overdue and never the next thing to press.'}, 'overdue_days': {'type': 'integer'}}}, {'type': 'null'}], 'description': 'The single next thing, or null with blockedReason set.'}, 'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'state', 'kind', 'actor', 'due', 'dlabel', 'due_day', 'unlocks'], 'properties': {'id': {'type': 'string'}, 'due': {'type': 'integer'}, 'kind': {'type': 'string', 'description': "How it gets done: email, call, walk (fill a form on someone's site), research (find candidates / book / fill an application), or user (only the person can)."}, 'actor': {'type': 'string', 'description': 'agent = we can do it for them; user = only they can.'}, 'state': {'type': 'string', 'description': 'todo / blocked / drafted / approved / sent / called / replied / done / skipped.'}, 'title': {'type': 'string'}, 'dlabel': {'type': 'string'}, 'due_day': {'type': 'string'}, 'missing': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Field names this task is waiting on — pass one to move_task_answer.'}, 'unlocks': {'type': 'integer', 'description': "How many tasks that don't exist yet would appear once this one is finished."}, 'in_flight': {'type': 'boolean', 'description': 'Evidence says they already started it, so it is not overdue and never the next thing to press.'}, 'overdue_days': {'type': 'integer'}}}}, 'moreCount': {'type': 'integer'}, 'blockedReason': {'type': ['string', 'null'], 'description': 'no_move / nothing_open / all_in_flight — why there is no next thing.'}}}
输入模式
{'type': 'object', 'required': ['topic'], 'properties': {'topic': {'enum': ['bank', 'card', 'sim', 'ssn'], 'type': 'string', 'description': 'bank = checking account, card = credit card, sim = phone plan, ssn = the SSN itself.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['topic', 'places', 'places_total', 'options'], 'properties': {'topic': {'type': 'string'}, 'places': {'type': 'array', 'items': {'type': 'object', 'description': 'A branch / store: name, addr, tel, hours, the no-SSN line with its source.'}}, 'options': {'type': 'array', 'items': {'type': 'object', 'description': 'A no-branch option: name, stance (official page) and firsthand stance, facts, url, source.'}}, 'prefNote': {'type': ['string', 'null']}, 'prefScope': {'type': ['string', 'null']}, 'places_total': {'type': 'integer'}}}
输入模式
{'type': 'object', 'properties': {'beds': {'enum': ['room', 'studio', '1', '2', '3+'], 'type': 'string', 'description': 'Bedroom tier. "room" means a room in a shared place.'}, 'hood': {'type': 'string', 'description': 'Neighborhood name, matched loosely (e.g. "Mission", "Sunset").'}, 'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'How many to return (default 10, max 25). Newest first.'}, 'max_price': {'type': 'number', 'description': "Max monthly rent in USD. Listings with no stated price are excluded when you set this — we don't let unpriced posts through a price filter."}, 'min_price': {'type': 'number', 'description': 'Min monthly rent in USD.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['gated', 'total', 'searched', 'matched', 'listings'], 'properties': {'gated': {'type': 'boolean', 'description': 'true = free sample only (anonymous or partner key); total still tells the true index size.'}, 'total': {'type': 'integer'}, 'matched': {'type': 'integer'}, 'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'price', 'source', 'requirements_stated'], 'properties': {'url': {'type': 'string'}, 'beds': {'type': ['string', 'null']}, 'hood': {'type': ['string', 'null']}, 'price': {'type': ['number', 'null']}, 'title': {'type': ['string', 'null']}, 'posted': {'type': ['string', 'null']}, 'source': {'type': ['string', 'null']}, 'last_seen': {'type': ['string', 'null']}, 'requirements_stated': {'type': 'boolean'}, 'not_checked_vs_budget': {'type': 'boolean'}}}}, 'searched': {'type': 'integer'}, 'not_checked_vs_budget': {'type': 'integer'}, 'listings_with_no_stated_requirements': {'type': 'integer'}}}
输入模式
{'type': 'object', 'required': ['trigger'], 'properties': {'d0': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Move-in day, YYYY-MM-DD.'}, 'to': {'type': 'string', 'maxLength': 200, 'description': 'The new address, as one line.'}, 'stage': {'enum': ['pre_arrival', 'housing', 'move_planning', 'move_logistics', 'activate', 'settle', 'stabilize'], 'type': 'string', 'description': 'Which stage of the journey they are in right now, if you know it.'}, 'trigger': {'type': 'string', 'maxLength': 60, 'description': 'What set the move off: lease_signed, offer_accepted, relocation_approved, or your own short label.'}, 'profile_seed': {'type': 'object', 'description': 'Reserved. Accepted but not applied yet — the person fills their own profile after signing up.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['id', 'url', 'partner', 'trigger', 'dry_run'], 'properties': {'d0': {'type': ['string', 'null']}, 'id': {'type': 'string'}, 'to': {'type': ['string', 'null']}, 'url': {'type': 'string'}, 'stage': {'type': ['string', 'null']}, 'dry_run': {'type': 'boolean', 'description': 'true when called with a pr_test_ key.'}, 'partner': {'type': 'string'}, 'trigger': {'type': 'string'}}}
近期工具变更
类似的 MCP 服务器
Enel SP: Gestão Imobiliária
Supports Enel São Paulo utility account lookups for property management workflows.
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
Calcgrid
Runs general-purpose calculators for loans, dates, lunar and solar terms, time zones, units, and a larger catalog of specialized …
Local MCP
Connects AI assistants to Mac email, calendars, reminders, notes, tasks, files, Microsoft 365, Todoist, spreadsheets, and daily b…
Stable Baseline
Manages company documents, knowledge graphs, whiteboards, projects, plans, tasks, teams, and improvement workflows.
hopi
Provides read-only calculators, converters, validators, text utilities, encoders, and generators for everyday and technical tasks.
Microburbs Australian Property Data
Provides Australian property, suburb, valuation, sales, rental, zoning, school, risk, geospatial, and census statistics.
mu
Supports personal and collaborative tasks including web browsing, app creation, blogs, bookmarks, discussions, and contact manage…