Connection Issues
Tools not appearing in my AI client
- Restart your client after making configuration changes
- Check the endpoint is reachable:
A
401 Unauthorizedhere is expected and confirms the endpoint is up:/mcprequires authentication. Your MCP client supplies credentials automatically; this manual curl omits them. - Verify your config file syntax (JSON must be valid)
- Check mcp-remote is installed:
npx mcp-remote --version
”Authentication failed” error
- If you are using Claude or another OAuth-capable client, reconnect Borough and complete the Borough auth flow again
- If you are using direct bearer auth, verify your API key starts with
BOROUGH- - Check the key is active in the customer portal
- Ensure the
Authorizationheader format is exactlyBearer BOROUGH-<key>
”Rate limit exceeded” error
Your plan’s per-minute rate limit has been reached. Each MCP tool call consumes at least one API request. Searching by neighborhood or borough name also spends one extra request per name resolved (the server looks each name up via the areas endpoint). To avoid the extra lookups, pass numeric area IDs directly, or resolve them once withlist_areas.
Read the text after “Rate limit exceeded.” first. If it mentions a monthly quota, see the next section: waiting a minute will not help. Otherwise, wait 60 seconds before retrying.
”Monthly quota … exceeded” error
The MCP server reports this as “Rate limit exceeded. Monthly quota of … exceeded”, which means your monthly allowance is used up, not your per-minute limit.
On paid plans, requests past the included amount keep working and are billed as overage; they are refused only at the hard limit. Free-tier MCP sessions without an API key are counted per connecting IP address, so with a hosted client several free users can share one allowance.
Upgrade your plan for more requests.
Tool-Specific Issues
Property or building tools are missing
get_property, get_property_by_url, get_building, and get_building_listings are only exposed to Starter ($19/mo) and higher sessions, so a free-tier session does not list them at all. Reconnect Borough with a paid API key to get them. Free-tier users can use search_rentals, search_sales, list_areas, get_market_snapshot, get_market_trends, and compare_neighborhoods.
Empty search results
- Try broader filters (remove price or bedroom constraints)
- Try an exact borough or neighborhood name directly, or lock the area ID first with
list_areas - Borough IDs: Manhattan=100, Bronx=200, Brooklyn=300, Queens=400, Staten Island=500
Location name resolves to multiple areas
If Borough returns a short clarification list, choose one of the suggested IDs or provide a more specific location name. This usually happens with names that exist at multiple levels or in multiple contexts. Borough does not silently auto-pick in these cases because the MCP tools are optimized for certainty first.Photos do not render in my client
- Borough search results return
leadPhotoUrlandrenderHints.imageUrl, but this version does not send inline MCP image blocks - Some clients render the proxied image URLs automatically; others may only use the text and map fields
- The most render-friendly fields to look for are
price,displayPrice,geoPoint,leadPhotoUrl, andrenderHints
Amenity search returns few results
Amenities such asDISHWASHER and WASHER_DRYER are supported, but matches depend on listing-detail coverage. Listing amenities are read from the listing description and exist only for listings whose full detail Borough has loaded, and building amenities match only listings Borough has linked to their building. Listings without that detail cannot match an amenity filter, so results undercount. If your search is very narrow, try:
- widening the budget
- expanding to nearby neighborhoods
- reducing the required amenity set to one must-have amenity first