Close API
Measured conclusion: Alive, not deep-tested. L2 outcome: not_attempted.
Walk, bike, and transit travel times from every US census block to nearby amenities.
| Author | city.close |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Alive, not deep-tested |
| L1 liveness | alive |
| L1 latency | 90 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Close API": {
"url": "https://mcp.close.city/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (10)
find_placeLook up a US city or town by name (free, no key). Returns matches with their census place GEOID and centre point (lon/lat). The entry point: feed a GEOID to blocks_in_area, or a centre to walkability_summary.
Parameters:
query(required) — string — City or town name, e.g. 'Providence'.limit— integer — Max matches (1-20).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_catalogList the travel modes and the destination-type taxonomy (free, no key). Use it to resolve type names to the numeric ids the other tools take. Modes are walk, bike, transit — there is no drive mode.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
walkability_summaryFastest travel time from a location to each destination category, by mode (metered: 1 token per returned row). One origin: block_geoid or lat+lon. Many origins (up to 250): block_geoids or points — one batch call and one rate-limit request, with rows tagged by origin. Batching saves requests and context, not tokens: it still charges per row. A non-empty truncated (+ truncated_reason) means the balance or row budget cut the batch short. A missing category means it is not reachable within 30 minutes.
Parameters:
lat— numberlon— numbermode— string — walk, bike, or transit. Omit for all three.points— array — Many lat/lon points — one batch call.block_geoid— string — 15-digit census block GEOID.block_geoids— array — Many block GEOIDs — one batch call.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
nearby_poisNearby points of interest and the travel time to each, from a location (metered: 1 token per returned row). One origin: block_geoid or lat+lon; keep limit small to control spend and context size. Many origins (up to 250): block_geoids or points — one batch call and one rate-limit request, rows tagged by origin, no limit/pagination, so filter with type/mode/max_minutes. Batching saves requests and context, not tokens: it still charges per row. A non-empty truncated (+ truncated_reason) means the balance or row budget cut the batch short.
Parameters:
lat— numberlon— numbermode— string — walk, bike, or transit.type— integer — Destination type id (see get_catalog).limit— integer — Max rows (first page).points— array — Many lat/lon points — one batch call.block_geoid— stringmax_minutes— integer — Upper bound on travel time (<=30).block_geoids— array — Many block GEOIDs — one batch call.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
isochroneThe area reachable from a location within a time budget, as GeoJSON contours (metered: 10 tokens per contour). Give block_geoid or lat+lon. Defaults to a single 30-minute contour; ask for more only when needed (bodies can be large).
Parameters:
lat— numberlon— numbermode— string — walk, bike, or transit.minutes— integer — A single threshold (1-60).contours— array — Up to four ascending thresholds, instead of minutes.direction— string — 'from' the origin (default) or 'to' it.block_geoid— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
blocks_in_areaPer-block travel times for every census block in an area (metered: 1 token per returned row). Give place_geoid (from find_place) for a whole city, or center {lat, lon} + radius_m. Rows carry a numeric mode_id.
Parameters:
lat— number — Circle centre latitude (with lon + radius_m).lon— number — Circle centre longitude.mode— string — walk, bike, or transit.type— integer — Destination type id (see get_catalog).limit— integer — Max rows (first page).radius_m— number — Circle radius in metres (<=28000).place_geoid— string — Census place GEOID (a whole city/town).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_token_balanceCheck the token balance of the API key in use, without spending any tokens. Works even at a zero balance. Requires the Authorization bearer key.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
request_sign_inStart free sign-up for the user: email them a six-digit code. The user must read the code from their own inbox and give it to you, then call redeem_code. This is how an agent gets the user an API key (5,000 free tokens, no card).
Parameters:
email(required) — string — The user's email address.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
redeem_codeComplete sign-up with the six-digit code the user received, and return a new API key (shown once). Call request_sign_in first. The key grants 5,000 free tokens; store it and pass it as the Authorization bearer on future calls.
Parameters:
email(required) — stringcode(required) — string — The six-digit code from the email.label— string — Optional label for the key.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
join_close_plusGet a Stripe Checkout URL for the Close+ membership ($10/month: 5,000 API tokens granted monthly plus member features on the close.city map). The user pays in their own browser: give them the returned URL and stop. Needs a fresh six-digit code from request_sign_in, read by the user from their own inbox.
Parameters:
email(required) — stringcode(required) — string — The six-digit code from the email.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.