{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_fnnjuz79jamw","handle":"putroots","url":"https://wellknown.network/agents/putroots","links":{"self":"https://wellknown.network/agents/putroots/record.json","html":"https://wellknown.network/agents/putroots","markdown":"https://wellknown.network/agents/putroots/record.md","api":"https://wellknown.network/api/v1/agents/putroots","status":"https://wellknown.network/api/v1/agents/putroots/status","claim":"https://wellknown.network/agents/putroots/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/putroots/claim.json","badge":"https://wellknown.network/agents/putroots/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/putroots/history","tools":"https://wellknown.network/api/v1/agents/putroots/tools"},"ard":{"identifier":"urn:air:www.putroots.com:server:putroots","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"PutRoots","summary":"SF move agent: rentals with sources, no-SSN banking routes, and your move plan and drafts.","description":"SF move agent: rentals with sources, no-SSN banking routes, and your move plan and drafts.","publisher":{"name":"com.putroots","url":null},"homepage":"https://www.putroots.com/connect","repository":null,"version":"1.0.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://www.putroots.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-25T06:51:51.690711Z","publishedAt":"2026-09-25T06:51:51.690711Z","registryName":"com.putroots/putroots"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"geo.maps","name":"Maps & Places","confidence":0.885,"provenance":"derived"},{"slug":"finance.banking","name":"Banking","confidence":0.868,"provenance":"derived"}],"categories":["finance","geo"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 6h ago.","lastOkAt":"2026-10-09T19:26:14.610Z","lastProbedAt":"2026-10-09T19:26:14.610Z","statusComputedAt":"2026-10-09T19:28:15.365Z","reliability30d":{"probes":53,"successRate":1,"p50Ms":91,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":53,"ok":53,"authBoundaryOk":0,"serviceOk":53,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-09T19:26:14.610Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":85,"error":null,"detail":{"tools":[{"name":"search_listings","description":"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"},{"name":"listing_requirements","description":"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, "},{"name":"newcomer_options","description":"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"},{"name":"start_move","description":"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 "},{"name":"move_plan","description":"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 "},{"name":"move_tasks","description":"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 deliberate"},{"name":"move_task","description":"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 "},{"name":"move_task_draft","description":"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 M"},{"name":"move_task_answer","description":"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 actual"},{"name":"move_task_defer","description":"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 mo"},{"name":"move_events","description":"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 c"}],"toolCount":11,"toolsHash":"6087c2e563f2ae4ce04007674c3cd6ecf663190712f19648fca41b5864daf448","serverName":"putroots","capabilities":["tools"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T12:28:37.433Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":88,"error":null,"detail":{"tools":[{"name":"search_listings","description":"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"},{"name":"listing_requirements","description":"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, "},{"name":"newcomer_options","description":"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"},{"name":"start_move","description":"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 "},{"name":"move_plan","description":"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 "},{"name":"move_tasks","description":"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 deliberate"},{"name":"move_task","description":"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 "},{"name":"move_task_draft","description":"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 M"},{"name":"move_task_answer","description":"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 actual"},{"name":"move_task_defer","description":"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 mo"},{"name":"move_events","description":"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 c"}],"toolCount":11,"toolsHash":"6087c2e563f2ae4ce04007674c3cd6ecf663190712f19648fca41b5864daf448","serverName":"putroots","capabilities":["tools"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T05:27:03.105Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":85,"error":null,"detail":{"tools":[{"name":"search_listings","description":"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"},{"name":"listing_requirements","description":"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, "},{"name":"newcomer_options","description":"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"},{"name":"start_move","description":"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 "},{"name":"move_plan","description":"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 "},{"name":"move_tasks","description":"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 deliberate"},{"name":"move_task","description":"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 "},{"name":"move_task_draft","description":"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 M"},{"name":"move_task_answer","description":"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 actual"},{"name":"move_task_defer","description":"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 mo"},{"name":"move_events","description":"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 c"}],"toolCount":11,"toolsHash":"6087c2e563f2ae4ce04007674c3cd6ecf663190712f19648fca41b5864daf448","serverName":"putroots","capabilities":["tools"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T23:23:17.559Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":94,"error":null,"detail":{"tools":[{"name":"search_listings","description":"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"},{"name":"listing_requirements","description":"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, "},{"name":"newcomer_options","description":"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"},{"name":"start_move","description":"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 "},{"name":"move_plan","description":"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 "},{"name":"move_tasks","description":"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 deliberate"},{"name":"move_task","description":"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 "},{"name":"move_task_draft","description":"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 M"},{"name":"move_task_answer","description":"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 actual"},{"name":"move_task_defer","description":"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 mo"},{"name":"move_events","description":"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 c"}],"toolCount":11,"toolsHash":"6087c2e563f2ae4ce04007674c3cd6ecf663190712f19648fca41b5864daf448","serverName":"putroots","capabilities":["tools"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T16:27:25.384Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":85,"error":null,"detail":{"tools":[{"name":"search_listings","description":"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"},{"name":"listing_requirements","description":"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, "},{"name":"newcomer_options","description":"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"},{"name":"start_move","description":"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 "},{"name":"move_plan","description":"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 "},{"name":"move_tasks","description":"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 deliberate"},{"name":"move_task","description":"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 "},{"name":"move_task_draft","description":"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 M"},{"name":"move_task_answer","description":"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 actual"},{"name":"move_task_defer","description":"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 mo"},{"name":"move_events","description":"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 c"}],"toolCount":11,"toolsHash":"6087c2e563f2ae4ce04007674c3cd6ecf663190712f19648fca41b5864daf448","serverName":"putroots","capabilities":["tools"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T09:23:50.442Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":88,"error":null,"detail":{"tools":[{"name":"search_listings","description":"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"},{"name":"listing_requirements","description":"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, "},{"name":"newcomer_options","description":"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"},{"name":"start_move","description":"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 "},{"name":"move_plan","description":"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 "},{"name":"move_tasks","description":"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 deliberate"},{"name":"move_task","description":"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 "},{"name":"move_task_draft","description":"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 M"},{"name":"move_task_answer","description":"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 actual"},{"name":"move_task_defer","description":"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 mo"},{"name":"move_events","description":"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 c"}],"toolCount":11,"toolsHash":"6087c2e563f2ae4ce04007674c3cd6ecf663190712f19648fca41b5864daf448","serverName":"putroots","capabilities":["tools"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T03:24:00.155Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":87,"error":null,"detail":{"tools":[{"name":"search_listings","description":"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"},{"name":"listing_requirements","description":"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, "},{"name":"newcomer_options","description":"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"},{"name":"start_move","description":"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 "},{"name":"move_plan","description":"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 "},{"name":"move_tasks","description":"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 deliberate"},{"name":"move_task","description":"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 "},{"name":"move_task_draft","description":"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 M"},{"name":"move_task_answer","description":"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 actual"},{"name":"move_task_defer","description":"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 mo"},{"name":"move_events","description":"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 c"}],"toolCount":11,"toolsHash":"6087c2e563f2ae4ce04007674c3cd6ecf663190712f19648fca41b5864daf448","serverName":"putroots","capabilities":["tools"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T20:29:41.924Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":86,"error":null,"detail":{"tools":[{"name":"search_listings","description":"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"},{"name":"listing_requirements","description":"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, "},{"name":"newcomer_options","description":"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"},{"name":"start_move","description":"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 "},{"name":"move_plan","description":"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 "},{"name":"move_tasks","description":"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 deliberate"},{"name":"move_task","description":"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 "},{"name":"move_task_draft","description":"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 M"},{"name":"move_task_answer","description":"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 actual"},{"name":"move_task_defer","description":"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 mo"},{"name":"move_events","description":"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 c"}],"toolCount":11,"toolsHash":"6087c2e563f2ae4ce04007674c3cd6ecf663190712f19648fca41b5864daf448","serverName":"putroots","capabilities":["tools"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T13:25:58.857Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":107,"error":null,"detail":{"tools":[{"name":"search_listings","description":"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"},{"name":"listing_requirements","description":"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, "},{"name":"newcomer_options","description":"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"},{"name":"start_move","description":"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 "},{"name":"move_plan","description":"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 "},{"name":"move_tasks","description":"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 deliberate"},{"name":"move_task","description":"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 "},{"name":"move_task_draft","description":"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 M"},{"name":"move_task_answer","description":"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 actual"},{"name":"move_task_defer","description":"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 mo"},{"name":"move_events","description":"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 c"}],"toolCount":11,"toolsHash":"6087c2e563f2ae4ce04007674c3cd6ecf663190712f19648fca41b5864daf448","serverName":"putroots","capabilities":["tools"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T06:29:49.229Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":89,"error":null,"detail":{"tools":[{"name":"search_listings","description":"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"},{"name":"listing_requirements","description":"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, "},{"name":"newcomer_options","description":"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"},{"name":"start_move","description":"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 "},{"name":"move_plan","description":"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 "},{"name":"move_tasks","description":"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 deliberate"},{"name":"move_task","description":"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 "},{"name":"move_task_draft","description":"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 M"},{"name":"move_task_answer","description":"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 actual"},{"name":"move_task_defer","description":"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 mo"},{"name":"move_events","description":"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 c"}],"toolCount":11,"toolsHash":"6087c2e563f2ae4ce04007674c3cd6ecf663190712f19648fca41b5864daf448","serverName":"putroots","capabilities":["tools"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}}],"tools":[{"name":"search_listings","description":"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"},{"name":"listing_requirements","description":"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, "},{"name":"newcomer_options","description":"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"},{"name":"start_move","description":"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 "},{"name":"move_plan","description":"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 "},{"name":"move_tasks","description":"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 deliberate"},{"name":"move_task","description":"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 "},{"name":"move_task_draft","description":"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 M"},{"name":"move_task_answer","description":"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 actual"},{"name":"move_task_defer","description":"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 mo"},{"name":"move_events","description":"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 c"}],"package":null,"toolSurface":{"id":"ts_tyvbxvhxzspq","endpointId":"ep_a9jumbdwgke3","hash":"6087c2e563f2ae4ce04007674c3cd6ecf663190712f19648fca41b5864daf448","toolCount":11,"serverName":"putroots","serverVersion":"1.0.1","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-25T13:26:14.769Z","lastSeenAt":"2026-10-09T19:26:14.606Z","observations":53,"toolNames":["search_listings","listing_requirements","newcomer_options","start_move","move_plan","move_tasks","move_task","move_task_draft","move_task_answer","move_task_defer","move_events"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_a9jumbdwgke3","url":"https://www.putroots.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-08T16:27:25.397Z","auth":{"observedAt":"2026-10-08T16:27:25.564Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://www.putroots.com/.well-known/oauth-protected-resource/mcp","resource":"https://www.putroots.com/mcp","authorizationServers":["https://www.putroots.com"],"scopesSupported":["mcp.read"]},"authorizationServer":{"url":"https://www.putroots.com/.well-known/oauth-authorization-server","issuer":"https://www.putroots.com","grantTypesSupported":["authorization_code"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":null},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":false,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-08T16:27:25.742Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"putroots.com","issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validFrom":"2026-08-29T22:50:57.000Z","validTo":"2026-11-27T22:50:56.000Z","daysToExpiry":48,"sanCount":2,"fingerprint256":"AA:CA:A6:18:CA:88:DC:23:E7:A1:4A:FF:DD:A8:A8:32:55:2E:7C:88:D2:96:04:38:A6:22:47:28:D0:1A:62:7D"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.putroots/putroots","url":"https://registry.modelcontextprotocol.io/v0/servers/com.putroots%2Fputroots","firstSeenAt":"2026-09-25T13:19:47.385Z","fetchedAt":"2026-10-09T10:19:04.175Z","normalizedAt":"2026-10-09T10:19:04.175Z"}]},"firstSeenAt":"2026-09-25T13:19:47.385Z","updatedAt":"2026-10-09T19:29:02.895Z"}