PutRoots

com.putroots由 putroots.com 发布官方发布者v1.0.1更新于 Oct 24, 2026

SF move agent: rentals with sources, no-SSN banking routes, and your move plan and drafts.

已验证Streamable HTTP可网页运行位置与生活效率与工作流

概览

AI 生成的概览

PutRoots 是一个面向旧金山租房者的远程 MCP 服务器:可搜索带来源的房源,并跟踪已登录用户的搬家计划、任务和草稿。

可以做什么
按价格、卧室数或街区搜索旧金山房源,每行标注来源和最后查看日期;查看单个房源的房东要求,并与租客已填写内容逐项对照,附原文句子。查找新来者在没有 SSN 或美国信用记录时开设银行账户、办信用卡、办手机套餐和办理 SSN 的可行途径,含真实网点和门店。生成预填搬家日期的注册链接,读取已登录用户的搬家计划、下一项任务、任务详情和近期搬家事件。为任务准备邮件或电话草稿,填写任务等待的字段,并推迟、排除或恢复任务。
适用场景
适合帮助他人在旧金山找房、比较房东要求、规划搬家的实际步骤,或借助已备好的草稿推进搬家任务。也适合需要不依赖 SSN 或美国信用记录途径的新来者。
运行要求
远程 streamable HTTP 端点 putroots.com,无需安装包或本地运行时。部分工具需要已登录的 PutRoots 账户,未登录时搜索受限。未声明环境变量或请求头。
安装前请注意
多个工具会改动已登录用户的搬家数据:move_task_answer 写入字段值,move_task_defer 排除或恢复任务,move_task_draft 生成草稿。任何工具都不会发送、拨号、提交或付款,草稿需本人在 PutRoots 中发送。start_move 返回归因于调用者的链接,不会代用户创建任何内容。房源与要求数据来自第三方,并标注来源和日期。

安装

在 SourceWeft 中

  1. 打开 控制台中的 PutRoots,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.putroots%2Fputroots/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "putroots": {
      "type": "http",
      "url": "https://www.putroots.com/mcp"
    }
  }
}

工具

11

search_listings

Search SF rentals, with provenance

Search PutRoots' San Francisco rental index. Every row carries its source, the date we last saw it, and whether the landlord stated any requirements at all. Use this when someone asks what's available in SF at a price / bedroom count / neighborhood. Without a signed-in PutRoots account this searches the free sample only (3 listings per bedroom tier) and says so, with the true total.

输入参数bedshoodlimitmax_pricemin_price

listing_requirements

This listing's requirements vs. the renter, line by line

For one listing URL from search_listings: what the landlord requires, what the renter filled in, and the gap on each line — income, credit, SSN, deposit, pets, co-signer, documents. Each line carries the landlord's own sentence it was read from, plus where the rule came from and when we fetched it. Requires the renter's own PutRoots account (the comparison is against qualifications they filled in). It returns no overall verdict, by design.

输入参数listing_url必填

newcomer_options

Bank account / phone plan / SSN, for someone with no SSN yet

The doors a newcomer has to walk through besides the apartment: opening a bank account, a credit card, a phone plan, or getting an SSN — specifically the routes that work without an SSN or US credit history. Returns real branches and stores (address, hours, phone) plus the no-branch options, each with its source and the date it was checked, and our firsthand account where we did it ourselves.

输入参数topic必填

start_move

Hand a mover over to PutRoots (a link, nothing created)

When someone has just signed a lease, accepted an offer, or otherwise has a move coming: returns a PutRoots link that pre-fills their move date and new address and attributes them to you. Nothing is created on their behalf — they sign up themselves by opening the link. Use the returned id with GET /v1/handoffs/{id} to see which stage of the move they are in.

输入参数d0tostagetrigger必填profile_seed

move_plan

Where this move stands, in five numbers

The whole move at a glance for the signed-in person: days to move day, how many tasks there are, how many are settled, how many can be done right now, how many are blocked and how many are overdue, plus the critical path. Two rulers share that answer and they are not interchangeable: total and done count every task in the move, while actionable, blocked and overdue count only tasks that have been unlocked so far. Blocked therefore mixes two things — tasks missing an answer from the person, and tasks whose prerequisites aren't finished so they haven't been generated yet. Report the numbers as given; don't subtract one from another.

无需输入参数。

move_tasks

The one thing to do next, and the few after it

What the signed-in person should do next on their move: one task to press, a few short lines after it, and a count of everything folded away. This is deliberately one screen, not the task list — picking which one matters is our job, not the caller's, and a task whose prerequisites aren't done doesn't appear at all (its prerequisite does). Use move_plan for totals. This is also the only place a task is marked in flight (we have evidence they already started it); move_task does not carry that flag.

无需输入参数。

move_task

One task's current state

One task on the signed-in person's move: what it is, when it is due, what state it is in, any draft already prepared, and which fields it is waiting on them to answer. Read-only — opening a task leaves no trace. It does not tell you whether the task is in flight: that needs evidence lookups this cheap read skips on purpose. move_tasks is the only place "in progress" appears.

输入参数task_id必填

move_task_draft

Prepare a task (draft only — never sends)

Prepares one task for the signed-in person and stops. It writes the email or the call script and hands it back; it never sends, dials, submits or pays, and no MCP tool can. The person presses send themselves in PutRoots. It covers email and call tasks, plus a form-filling task that has already been tried and given up on (that falls back to a letter or a call). It cannot start the other two kinds: walk tasks (filling a form on a provider's own site) and research tasks (finding candidates, booking a viewing, filling a rental application) have no execution path here yet and will come back saying the task is neither an email nor a call. Those are done in the PutRoots web app; say so rather than retrying. If it comes back blocked, the task is waiting on a field only the person can answer — use move_task_answer, then call this again.

输入参数totask_id必填

move_task_answer

Answer one field a task is waiting on

Fills in one field the signed-in person's task is waiting on (the names come back in missing from move_task or move_task_draft). Only fields that task is actually asking for are accepted, and only values we can store — anything else is refused rather than silently dropped. Pass what the person actually said; never a guess or a plausible default.

输入参数field必填value必填task_id必填

move_task_defer

Put a task off, or rule it out

later = push it out; it comes back on its own in three days. not_applicable = it doesn't apply to this person; it leaves the list, stops counting against the move, and anything waiting on it can go ahead. undo = put a ruled-out task back. Only on the person's say-so: ruling a task out changes what the rest of the move waits on.

输入参数mode必填task_id必填

move_events

What has happened on this move since a given moment

The signed-in person's move events after an epoch-millisecond timestamp, oldest first — drafted, sent, called, answered, done, skipped. Use it to answer "what changed since we last spoke" without re-reading the whole plan. Capped; more says how many were left out.

输入参数limitsince

版本历史

1
  1. v1.0.1最新Sep 25, 2026

评分

已满足适用检查项的 83%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分

    请声明包含 README 的 GitHub 仓库,或在 OAuth 受保护资源元数据中提供 resource_documentation。

  • 许可证不适用

    托管服务按其提供方的条款使用,因此这里不要求许可证。此检查项不计入百分比。