About nycrentals
nycrentals is a validating bridge to the hosted Borough MCP service for searching New York City rentals and homes for sale. Its tools also retrieve property and building details and provide neighborhood market data and comparisons.
Key features
- 01Search rentals and homes for sale
- 02Retrieve property and building details
- 03Browse borough and neighborhood areas
- 04View and compare neighborhood market data
Use cases
- 01Filter NYC listings by price and features
- 02Review a listing or building before a viewing
- 03Compare neighborhood market conditions
MCP support
Exposes ten real-estate search, detail, area, and market-data tools to MCP clients, forwarding validated calls to the hosted Borough service.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
10Saved tool list · updated 1w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | number | No | Page number; defaults to 1 upstream. |
| sort | enum | No | Sort field.PRICE | LISTED_AT | RECOMMENDED |
| areas | any | No | Area IDs (comma-separated string or array, at most 10). Borough IDs: Manhattan=100, Bronx=200, Brooklyn=300, Queens=400, Staten Island=500. |
| noFee | boolean | No | Only no-fee rentals. Accepts true or must be omitted. |
| maxBeds | integer | No | Maximum bedrooms, 0-50. |
| maxSqft | number | No | Maximum square footage. |
| minBeds | integer | No | Minimum bedrooms, 0-50; 0 = studio. |
| minSqft | number | No | Minimum square footage. |
| perPage | number | No | Results per page; default 3, max 5 upstream. |
| sortDir | enum | No | Sort direction.ASC | DESC |
| location | string | No | A single borough or neighborhood name. |
| maxBaths | integer | No | Maximum bathrooms, 1-4. |
| maxPrice | number | No | Maximum price. |
| minBaths | integer | No | Minimum bathrooms, 1-4. |
| minPrice | number | No | Minimum price. |
| amenities | any | No | Amenity enums such as DISHWASHER, WASHER_DRYER, ELEVATOR, DOORMAN, LAUNDRY, GYM, POOL, PARKING. |
| fiberOnly | boolean | No | Only fiber-internet buildings. |
| has3dTour | boolean | No | Only listings with a 3D tour. Accepts true or must be omitted. |
| locations | any | No | Borough or neighborhood names. |
| petsAllowed | boolean | No | Only pet-friendly listings. |
| buildingType | string | No | Comma-separated: RENTAL, CONDO, CO_OP, CONDOP, HOUSE, SINGLEFAMILY, TOWNHOUSE, TWOFAMILY, THREEFAMILY, FOURFAMILY, MULTI_FAMILY, MIXED_USE, HYBRID, COMMERCIAL, UNKNOWN. |
| hasOpenHouse | boolean | No | Only listings with an open house. Accepts true or must be omitted. |
| maxMonthlyCost | number | No | Maximum total monthly cost. |
| minDownloadMbps | number | No | Minimum download speed in Mbps. |
| minTransitScore | number | No | Minimum transit score, 0-100. |
Details
From the project READMEnycrentals
New York City homes, searched the way the city is actually organised: by borough and neighborhood. nycrentals is a thin, validating bridge to the hosted Borough MCP service — it exposes ten tools for finding rentals and homes for sale across Manhattan, Brooklyn, Queens, the Bronx and Staten Island, opening the listing or building behind a search result, and reading the market around a neighborhood before you commit to a viewing.
The bridge does two jobs. It serves the tool list locally,
and it checks every call before anything leaves the machine:
argument types, required fields, and the service's own
house rules — pick one way of naming a place (areas,
location or locations, never a mix), fee and tour flags
that only ever switch on, no broker-fee flag on a sale
search, at most ten area IDs in one search, and comparisons
that stay between one and five neighborhoods. Calls that
pass are forwarded over a single upstream session that is
opened once and reused, and whatever the service answers —
listings with prices, photos and freshness markers — comes
back untouched.
The ten tools:
search_rentals— active rentals across all five boroughs, filterable by price, beds and baths, square footage, amenities, building type, pet policy, transit score and internet speed, with no-fee, open-house and 3D-tour switches.search_sales— active for-sale listings with the same filters plus a sale-type selector.get_property— one listing in full: price, address, beds and baths, amenities, pet policy and building scores, in a compact form suited to chat clients.get_property_by_url— the same detail reached from a listing's URL path instead of its ID.get_building— a building's profile: type, year built, floors and units, amenities, policies, management and tax-abatement status.get_building_listings— the listings tied to one building, cheapest first.list_areas— the area directory itself: 316 neighborhoods and sub-areas, the five boroughs, and Northern New Jersey coverage, paginated.get_market_snapshot— current market statistics for a neighborhood.get_market_trends— recent price movement for a neighborhood, one row per date and event type.compare_neighborhoods— one to five neighborhoods side by side.
Area IDs follow the borough hundreds: Manhattan is 100, the Bronx 200, Brooklyn 300, Queens 400 and Staten Island 500, with neighborhoods numbered inside their borough.
Configuration
One credential, read from the environment:
export BOROUGH_API_KEY="..."
Every tool needs the key. Without it, calls fail
immediately with BOROUGH_API_KEY is not set and nothing
is sent anywhere. Access tiers are enforced by the hosted
service, not by this bridge.
CLI
Each tool is a subcommand taking one JSON argument string:
npx @reneturcios/nycrentals search_rentals '{"location":"Brooklyn","maxPrice":3500,"noFee":true}'
npx @reneturcios/nycrentals get_property '{"id":"..."}'
npx @reneturcios/nycrentals compare_neighborhoods '{"locations":["Astoria","Jackson Heights"]}'
npx @reneturcios/nycrentals --version
Output is the forwarded result content as JSON. Exit
codes: 0 on success, 1 on an error result (including a
validation or upstream failure), 2 on a usage error.
MCP server
npx -y @reneturcios/nycrentals mcp
MCP client config:
{
"mcpServers": {
"nycrentals": {
"command": "npx",
"args": ["-y", "@reneturcios/nycrentals", "mcp"],
"env": { "BOROUGH_API_KEY": "..." }
}
}
}
Docker
docker run -i -e BOROUGH_API_KEY="..." ghcr.io/cloudcorprecords/nycrentals
docker run --rm -e BOROUGH_API_KEY="..." ghcr.io/cloudcorprecords/nycrentals list_areas '{"level":1}'
Development
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (fake MCP upstream, no network)
npm run dev # run the CLI from source
License
MIT — Copyright (c) 2026 Rene Turcios
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.