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.
https://rentreboot.com/api/mcpWhat 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
- 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
{
"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.
Tools
13 advertised
search_guides — Search RentReboot guides
Search RentReboot public NYC renter guides by keyword and return canonical URLs.
{
"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"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_alerted_listings — List apartments sent in my alerts
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.
{
"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
}
}
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}update_alerted_listing — Save, hide, or track an apartment from my alerts
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.
{
"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}$"
}
}
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_account — Get my RentReboot account
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_search_preferences — Get my saved apartment search
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}find_search_neighborhoods — Find neighborhoods for my alerts
Look up neighborhood names and ids the connected renter can add to their alert search, in their own market. Returns names only, not listings.
{
"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\""
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}update_search_preferences — Change my apartment search
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.
{
"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"
}
}
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}set_apartment_alerts — Pause or resume my apartment alerts
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"enabled"
],
"properties": {
"enabled": {
"type": "boolean"
}
}
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_historical_matches — List historical apartments matching my search
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 25,
"minimum": 1
}
}
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_housing_lottery_applications — List my Housing Lottery applications
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
}
}
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_guide — Read a RentReboot guide
Retrieve a public RentReboot guide as Markdown using its slug.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"maxLength": 120
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_neighborhoods — List neighborhoods with rent data
List NYC neighborhoods that have published RentReboot asking-rent percentile data.
{
"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
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_rent_data — Get neighborhood asking-rent percentiles
Retrieve aggregate asking-rent percentiles and sample sizes for a published NYC neighborhood. Values are not individual listings or personal data.
{
"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"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
server-card — RentReboot MCP server card
Public discovery metadata for this MCP server.
mcp://server-card.jsonguide — RentReboot guide
A public renter guide in Markdown.
rentreboot://guide/{slug}rent-area — Neighborhood rent data
Published asking-rent percentile data in Markdown.
rentreboot://average/{slug}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.
Claude Code
claude mcp add --transport http rentreboot-mcp https://rentreboot.com/api/mcpCodex
codex mcp add rentreboot-mcp --url https://rentreboot.com/api/mcpCursor
{
"mcpServers": {
"rentreboot-mcp": {
"url": "https://rentreboot.com/api/mcp"
}
}
}Cline
{
"mcpServers": {
"rentreboot-mcp": {
"type": "streamableHttp",
"url": "https://rentreboot.com/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"rentreboot-mcp": {
"type": "http",
"url": "https://rentreboot.com/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http rentreboot-mcp https://rentreboot.com/api/mcpClaude Desktop
{
"mcpServers": {
"rentreboot-mcp": {
"url": "https://rentreboot.com/api/mcp"
}
}
}Windsurf
{
"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.