
Close API
Walk, bike, and transit travel times from every US census block to nearby amenities.
What it can do
What data it sees
Do you need an account
An API key from the service settings is required
Walk, bike, and transit travel times from every US census block to nearby amenities.
How to connect
How to connect Close API to Claude
The server address to paste into Claude settings:
https://mcp.close.city/mcp
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Close API to ChatGPT
The server address to paste into ChatGPT settings:
https://mcp.close.city/mcp
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Close API to Cursor
The server address to paste into Cursor settings:
https://mcp.close.city/mcp
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (10)
Raw names from tools/list. Only developers need these.
| find_place | Look 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. |
| get_catalog | List 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. |
| walkability_summary | Fastest 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. |
| nearby_pois | Nearby 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. |
| isochrone | The 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). |
| blocks_in_area | Per-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. |
| get_token_balance | Check the token balance of the API key in use, without spending any tokens. Works even at a zero balance. Requires the Authorization bearer key. |
| request_sign_in | Start 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). |
| redeem_code | Complete 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. |
| join_close_plus | Get 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. |