mcpField
N
nycrentals

nycrentals

Local
github.com/CloudCorpRecordsBusiness & Marketing0Updated 1w ago

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

  1. 01Search rentals and homes for sale
  2. 02Retrieve property and building details
  3. 03Browse borough and neighborhood areas
  4. 04View and compare neighborhood market data

Use cases

  1. 01Filter NYC listings by price and features
  2. 02Review a listing or building before a viewing
  3. 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.

mcp.json · Universal config
{
"mcpServers": {
"cloudcorprecords-nycrentals": {
"command": "npx",
"args": [
"-y",
"@reneturcios/nycrentals"
]
}
}
}
Run commandnpx -y @reneturcios/nycrentals

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@reneturcios/nycrentals0.1.0
ocighcr.io/cloudcorprecords/nycrentals:0.1.0

Tools

10

Saved tool list · updated 1w ago

ParameterTypeRequiredDescription
pagenumberNoPage number; defaults to 1 upstream.
sortenumNoSort field.PRICE | LISTED_AT | RECOMMENDED
areasanyNoArea IDs (comma-separated string or array, at most 10). Borough IDs: Manhattan=100, Bronx=200, Brooklyn=300, Queens=400, Staten Island=500.
noFeebooleanNoOnly no-fee rentals. Accepts true or must be omitted.
maxBedsintegerNoMaximum bedrooms, 0-50.
maxSqftnumberNoMaximum square footage.
minBedsintegerNoMinimum bedrooms, 0-50; 0 = studio.
minSqftnumberNoMinimum square footage.
perPagenumberNoResults per page; default 3, max 5 upstream.
sortDirenumNoSort direction.ASC | DESC
locationstringNoA single borough or neighborhood name.
maxBathsintegerNoMaximum bathrooms, 1-4.
maxPricenumberNoMaximum price.
minBathsintegerNoMinimum bathrooms, 1-4.
minPricenumberNoMinimum price.
amenitiesanyNoAmenity enums such as DISHWASHER, WASHER_DRYER, ELEVATOR, DOORMAN, LAUNDRY, GYM, POOL, PARKING.
fiberOnlybooleanNoOnly fiber-internet buildings.
has3dTourbooleanNoOnly listings with a 3D tour. Accepts true or must be omitted.
locationsanyNoBorough or neighborhood names.
petsAllowedbooleanNoOnly pet-friendly listings.
buildingTypestringNoComma-separated: RENTAL, CONDO, CO_OP, CONDOP, HOUSE, SINGLEFAMILY, TOWNHOUSE, TWOFAMILY, THREEFAMILY, FOURFAMILY, MULTI_FAMILY, MIXED_USE, HYBRID, COMMERCIAL, UNKNOWN.
hasOpenHousebooleanNoOnly listings with an open house. Accepts true or must be omitted.
maxMonthlyCostnumberNoMaximum total monthly cost.
minDownloadMbpsnumberNoMinimum download speed in Mbps.
minTransitScorenumberNoMinimum transit score, 0-100.

Details

From the project README

nycrentals

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

Markdown supported

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.