Koskamo

RentReboot MCP

Connects AI assistants to public NYC renter guides and neighborhood asking-rent data. With OAuth consent, it allows reading apartment alerts, managing saved searches, tracking alerted apartments, and viewing Housing Lottery application statuses.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

RentReboot MCP logo, by RentRebootCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by RentReboot
You need:No account for public tools.OAuth 2.1 with PKCE for personal tools.New renters can create a free account through the same verified-email flow.
MCP endpoint (Streamable HTTP)
https://rentreboot.com/api/mcp
Vendor documentation

What you can do with it

  • Find published renter guides by keyword
  • Read aggregate asking-rent percentiles by neighborhood
  • Read apartments already sent to the renter
  • View Housing Lottery application statuses

Source and maintenance

Community listingRegistry 1.2.0
Maintenance checked

Protocol and capabilities

Server
rentreboot 1.2.0
MCP protocol
2025-06-18
Tools
13 advertised
Resources
1 advertised
Resource templates
2 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  },
  "completions": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

RentReboot sends renters alerts for new apartments that match their saved search. Public guide and rent-data tools work anonymously. With the renter connected: get_account and get_search_preferences show their plan and search; list_alerted_listings shows apartments already sent to them (newest first, page with nextCursor); list_historical_matches shows historical apartment records matching their search, without promising current or future availability. Change things only when the renter asks: update_search_preferences edits budget, bedrooms, neighborhoods, move-in date, and alert delivery (call find_search_neighborhoods first to get valid neighborhood names); set_apartment_alerts pauses or resumes alerts; update_alerted_listing saves, hides, or tracks an alerted apartment. New renters create a free account on the sign-in page with their email code; then get_search_preferences shows configured=false and you set up their first search (city, neighborhoods, budget, bedrooms) with update_search_preferences. Summarize the change and confirm with the renter before you call a tool that changes their account. Account deletion, unsubscribing, and plan cancellation are not available here: send the renter to manageUrl from get_account.

Tools

13 advertised

search_guides — Search RentReboot guides
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search RentReboot public NYC renter guides by keyword and return canonical URLs.

search_guides input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 5,
      "maximum": 10,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "Keywords such as rent stabilization, guarantor, or security deposit"
    }
  }
}
search_guides annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_alerted_listings — List apartments sent in my alerts
Advertised by the server during the last successful anonymous check.
Advertised read-only

List apartments RentReboot already sent to the connected renter, newest first, with saved, hidden, and contacted/toured/applied state. Pass nextCursor to see older alerts (up to the latest 200). Hidden apartments are left out unless includeHidden is true. Links open the listing through RentReboot. Never returns account identifiers or broker contact details.

list_alerted_listings input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 25,
      "minimum": 1
    },
    "cursor": {
      "type": "string",
      "pattern": "^\\d{1,4}$",
      "description": "nextCursor from the previous page"
    },
    "includeHidden": {
      "type": "boolean",
      "default": false
    }
  }
}
list_alerted_listings output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "count",
    "results",
    "nextCursor"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": -9007199254740991
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "listingId",
          "address",
          "neighborhood",
          "bedrooms",
          "bathrooms",
          "price",
          "availableAt",
          "alertSentAt",
          "source",
          "noFee",
          "rentStabilized",
          "url",
          "saved",
          "hidden",
          "status"
        ],
        "properties": {
          "url": {
            "type": [
              "string",
              "null"
            ]
          },
          "noFee": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "price": {
            "type": [
              "number",
              "null"
            ]
          },
          "saved": {
            "type": "boolean"
          },
          "hidden": {
            "type": "boolean"
          },
          "source": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "enum": [
              "none",
              "contacted",
              "toured",
              "applied"
            ],
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "bedrooms": {
            "type": [
              "number",
              "null"
            ]
          },
          "bathrooms": {
            "type": [
              "number",
              "null"
            ]
          },
          "listingId": {
            "type": "string"
          },
          "alertSentAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "availableAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "neighborhood": {
            "type": [
              "string",
              "null"
            ]
          },
          "rentStabilized": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    },
    "nextCursor": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": false
}
list_alerted_listings annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
update_alerted_listing — Save, hide, or track an apartment from my alerts
Advertised by the server during the last successful anonymous check.

Change the connected renter's state for one apartment from their alerts: save it, hide it, or mark it contacted, toured, or applied (status "none" clears it). Same as the buttons on the RentReboot dashboard. Use a listingId from list_alerted_listings.

update_alerted_listing input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "listingId"
  ],
  "properties": {
    "saved": {
      "type": "boolean"
    },
    "hidden": {
      "type": "boolean"
    },
    "status": {
      "enum": [
        "none",
        "contacted",
        "toured",
        "applied"
      ],
      "type": "string"
    },
    "listingId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$"
    }
  }
}
update_alerted_listing annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_account — Get my RentReboot account
Advertised by the server during the last successful anonymous check.
Advertised read-only

Show the connected renter's plan (free or paid), whether apartment alerts are on or paused, market, alert frequency, and delivery channel, plus a link to manage the account.

get_account input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
get_account annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_search_preferences — Get my saved apartment search
Advertised by the server during the last successful anonymous check.
Advertised read-only

Show the connected renter's saved alert search: budget, bedrooms, bathrooms, neighborhoods, move-in date, no-fee and rent-stabilized filters, amenities, subway lines, alert frequency, and channel. Read this before changing the search.

get_search_preferences input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
get_search_preferences annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
find_search_neighborhoods — Find neighborhoods for my alerts
Advertised by the server during the last successful anonymous check.
Advertised read-only

Look up neighborhood names and ids the connected renter can add to their alert search, in their own market. Returns names only, not listings.

find_search_neighborhoods input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "maxLength": 60,
      "description": "Part of a name, for example \"williams\" or \"upper\""
    }
  }
}
find_search_neighborhoods annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
update_search_preferences — Change my apartment search
Advertised by the server during the last successful anonymous check.
Advertised destructive

Change the connected renter's saved alert search. Send only the fields to change; everything else stays. Saves exactly like the RentReboot preferences page, so its rules apply (for example a search always keeps at least one neighborhood). For a new account, set city together with neighborhoods once; after that the market cannot change here. Confirm the change with the renter first. Weekly recap pauses individual alerts.

update_search_preferences input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "city": {
      "enum": [
        "nyc",
        "sf",
        "la",
        "chicago",
        "dc",
        "miami",
        "boston",
        "seattle",
        "philadelphia",
        "london"
      ],
      "type": "string",
      "description": "Only for a new search with no neighborhoods yet; send neighborhoods with it"
    },
    "channel": {
      "enum": [
        "email",
        "sms",
        "both"
      ],
      "type": "string",
      "description": "Text alerts need a phone number already on the account"
    },
    "maxRent": {
      "type": "integer",
      "maximum": 100000,
      "minimum": 500
    },
    "minRent": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 100000,
          "minimum": 0
        },
        {
          "type": "null"
        }
      ],
      "description": "null removes the minimum"
    },
    "bedrooms": {
      "type": "array",
      "items": {
        "type": "integer",
        "maximum": 4,
        "minimum": 0
      },
      "maxItems": 5,
      "minItems": 1,
      "description": "0 is a studio, 4 means 4 or more"
    },
    "amenities": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "amenity",
          "required"
        ],
        "properties": {
          "amenity": {
            "enum": [
              "elevator",
              "pets",
              "dishwasher",
              "laundry",
              "central_ac",
              "doorman",
              "gym",
              "public_outdoor_space",
              "storage",
              "bike_room",
              "package_room",
              "roofdeck",
              "virtual_doorman",
              "washer_dryer",
              "parking",
              "furnished"
            ],
            "type": "string"
          },
          "required": {
            "type": "boolean"
          }
        }
      },
      "maxItems": 16,
      "description": "Replaces the whole amenity list"
    },
    "bathrooms": {
      "type": "array",
      "items": {
        "type": "integer",
        "maximum": 4,
        "minimum": 1
      },
      "maxItems": 4,
      "minItems": 1
    },
    "noFeeOnly": {
      "type": "boolean"
    },
    "moveInDate": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        {
          "type": "null"
        }
      ],
      "description": "YYYY-MM-DD, or null for no date"
    },
    "subwayLines": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "line",
          "required"
        ],
        "properties": {
          "line": {
            "type": "string",
            "pattern": "^[A-Za-z0-9]{1,2}$"
          },
          "required": {
            "type": "boolean"
          }
        }
      },
      "maxItems": 30,
      "description": "NYC only; replaces the whole list"
    },
    "neighborhoods": {
      "type": "object",
      "properties": {
        "add": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 80,
            "minLength": 1
          },
          "maxItems": 30
        },
        "set": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 80,
            "minLength": 1
          },
          "maxItems": 60,
          "minItems": 1
        },
        "remove": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 80,
            "minLength": 1
          },
          "maxItems": 30
        }
      },
      "description": "Names or ids from find_search_neighborhoods"
    },
    "alertFrequency": {
      "enum": [
        "minimal",
        "medium",
        "all",
        "weekly_recap"
      ],
      "type": "string",
      "description": "minimal (1-2/day), medium (3-4/day), all, or weekly_recap"
    },
    "rentStabilized": {
      "enum": [
        "all",
        "likely",
        "verified"
      ],
      "type": "string"
    },
    "weeklyRecapDay": {
      "enum": [
        "sunday",
        "monday",
        "tuesday",
        "wednesday",
        "thursday",
        "friday",
        "saturday"
      ],
      "type": "string"
    },
    "strictMoveInDate": {
      "type": "boolean",
      "description": "Only listings available within 31 days before the move-in date"
    },
    "includeNearbyBedroomCounts": {
      "type": "boolean"
    },
    "includeUndisclosedAddresses": {
      "type": "boolean"
    }
  }
}
update_search_preferences annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
set_apartment_alerts — Pause or resume my apartment alerts
Advertised by the server during the last successful anonymous check.

Pause (enabled=false) or resume (enabled=true) the connected renter's apartment alerts. Their search, plan, billing, and Housing Connect settings stay as they are. Confirm with the renter first.

set_apartment_alerts input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "enabled"
  ],
  "properties": {
    "enabled": {
      "type": "boolean"
    }
  }
}
set_apartment_alerts annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_historical_matches — List historical apartments matching my search
Advertised by the server during the last successful anonymous check.
Advertised read-only

List historical apartment records matching the connected renter’s saved requirements. These records do not establish current or future availability. Read-only and excludes broker contact details and account identifiers.

list_historical_matches input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 25,
      "minimum": 1
    }
  }
}
list_historical_matches output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "count",
    "results"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": -9007199254740991
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "address",
          "neighborhood",
          "bedrooms",
          "bathrooms",
          "price",
          "availableAt",
          "alertSentAt",
          "source",
          "noFee",
          "rentStabilized",
          "url"
        ],
        "properties": {
          "url": {
            "type": [
              "string",
              "null"
            ]
          },
          "noFee": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "price": {
            "type": [
              "number",
              "null"
            ]
          },
          "source": {
            "type": [
              "string",
              "null"
            ]
          },
          "address": {
            "type": "string"
          },
          "bedrooms": {
            "type": [
              "number",
              "null"
            ]
          },
          "bathrooms": {
            "type": [
              "number",
              "null"
            ]
          },
          "alertSentAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "availableAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "neighborhood": {
            "type": [
              "string",
              "null"
            ]
          },
          "rentStabilized": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_historical_matches annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_housing_lottery_applications — List my Housing Lottery applications
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the connected renter’s provider-confirmed NYC Housing Connect application statuses. Read-only. Excludes credentials, application numbers, income, household details, email, and internal identifiers.

list_housing_lottery_applications input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "minimum": 1
    }
  }
}
list_housing_lottery_applications output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "count",
    "results"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": -9007199254740991
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name",
          "area",
          "status",
          "submittedAt",
          "deadline"
        ],
        "properties": {
          "area": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "deadline": {
            "type": [
              "string",
              "null"
            ]
          },
          "submittedAt": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_housing_lottery_applications annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_guide — Read a RentReboot guide
Advertised by the server during the last successful anonymous check.
Advertised read-only

Retrieve a public RentReboot guide as Markdown using its slug.

get_guide input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "pattern": "^[a-z0-9-]+$",
      "maxLength": 120
    }
  }
}
get_guide annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_neighborhoods — List neighborhoods with rent data
Advertised by the server during the last successful anonymous check.
Advertised read-only

List NYC neighborhoods that have published RentReboot asking-rent percentile data.

list_neighborhoods input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 50,
      "maximum": 100,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "maxLength": 100
    }
  }
}
list_neighborhoods annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_rent_data — Get neighborhood asking-rent percentiles
Advertised by the server during the last successful anonymous check.
Advertised read-only

Retrieve aggregate asking-rent percentiles and sample sizes for a published NYC neighborhood. Values are not individual listings or personal data.

get_rent_data input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "area"
  ],
  "properties": {
    "area": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "Neighborhood name or URL slug, for example Chelsea or upper-west-side"
    },
    "bedrooms": {
      "type": "integer",
      "maximum": 6,
      "minimum": 0,
      "description": "0 means studio; omit to return all bedroom counts"
    },
    "category": {
      "enum": [
        "all",
        "likely",
        "verified"
      ],
      "type": "string",
      "default": "all"
    }
  }
}
get_rent_data annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

1 advertised

server-card — RentReboot MCP server card

Advertised by the server during the last successful anonymous check.

Public discovery metadata for this MCP server.

server-card URI
mcp://server-card.json

MIME type: application/json

guide — RentReboot guide

Advertised by the server during the last successful anonymous check.

A public renter guide in Markdown.

guide URI template
rentreboot://guide/{slug}

MIME type: text/markdown

rent-area — Neighborhood rent data

Advertised by the server during the last successful anonymous check.

Published asking-rent percentile data in Markdown.

rent-area URI template
rentreboot://average/{slug}

MIME type: text/markdown

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1980 ms
95th percentile latency
1980 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1980 ms · metadata changed · 13 tool(s), 1 resource(s), 2 resource template(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http rentreboot-mcp https://rentreboot.com/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add rentreboot-mcp --url https://rentreboot.com/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable rentreboot-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "rentreboot-mcp": {
      "url": "https://rentreboot.com/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "rentreboot-mcp": {
      "type": "streamableHttp",
      "url": "https://rentreboot.com/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start rentreboot-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "rentreboot-mcp": {
      "type": "http",
      "url": "https://rentreboot.com/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http rentreboot-mcp https://rentreboot.com/api/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "rentreboot-mcp": {
      "url": "https://rentreboot.com/api/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "rentreboot-mcp": {
      "serverUrl": "https://rentreboot.com/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like RentReboot MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.