MCP 서버

Close API

city.close/close-api
데이터 및 분석 지도 및 위치 공개 · 연결 가능 MCP 2026-07-28

이 MCP로 할 수 있는 일

Provides US census-block travel times, walkability summaries, nearby amenities, and isochrone maps for walking, biking, and transit.

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.
입력 스키마
{'type': 'object', 'properties': {'lat': {'type': 'number', 'description': 'Circle centre latitude (with lon + radius_m).'}, 'lon': {'type': 'number', 'description': 'Circle centre longitude.'}, 'mode': {'type': 'string', 'description': 'walk, bike, or transit.'}, 'type': {'type': 'integer', 'description': 'Destination type id (see get_catalog).'}, 'limit': {'type': 'integer', 'default': 100, 'description': 'Max rows (first page).'}, 'radius_m': {'type': 'number', 'description': 'Circle radius in metres (<=28000).'}, 'place_geoid': {'type': 'string', 'description': 'Census place GEOID (a whole city/town).'}}}
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.
입력 스키마
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 5, 'description': 'Max matches (1-20).'}, 'query': {'type': 'string', 'description': "City or town name, e.g. 'Providence'."}}}
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.
입력 스키마
{'type': 'object', 'properties': {}}
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.
입력 스키마
{'type': 'object', 'properties': {}}
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).
입력 스키마
{'type': 'object', 'properties': {'lat': {'type': 'number'}, 'lon': {'type': 'number'}, 'mode': {'type': 'string', 'default': 'walk', 'description': 'walk, bike, or transit.'}, 'minutes': {'type': 'integer', 'default': 30, 'description': 'A single threshold (1-60).'}, 'contours': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Up to four ascending thresholds, instead of minutes.'}, 'direction': {'type': 'string', 'description': "'from' the origin (default) or 'to' it."}, 'block_geoid': {'type': 'string'}}}
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.
입력 스키마
{'type': 'object', 'required': ['email', 'code'], 'properties': {'code': {'type': 'string', 'description': 'The six-digit code from the email.'}, 'email': {'type': 'string'}}}
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.
입력 스키마
{'type': 'object', 'properties': {'lat': {'type': 'number'}, 'lon': {'type': 'number'}, 'mode': {'type': 'string', 'description': 'walk, bike, or transit.'}, 'type': {'type': 'integer', 'description': 'Destination type id (see get_catalog).'}, 'limit': {'type': 'integer', 'default': 25, 'description': 'Max rows (first page).'}, 'points': {'type': 'array', 'items': {'type': 'object', 'required': ['lat', 'lon'], 'properties': {'lat': {'type': 'number'}, 'lon': {'type': 'number'}}}, 'description': 'Many lat/lon points — one batch call.'}, 'block_geoid': {'type': 'string'}, 'max_minutes': {'type': 'integer', 'description': 'Upper bound on travel time (<=30).'}, 'block_geoids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Many block GEOIDs — one batch call.'}}}
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.
입력 스키마
{'type': 'object', 'required': ['email', 'code'], 'properties': {'code': {'type': 'string', 'description': 'The six-digit code from the email.'}, 'email': {'type': 'string'}, 'label': {'type': 'string', 'default': 'mcp-agent', 'description': 'Optional label for the 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).
입력 스키마
{'type': 'object', 'required': ['email'], 'properties': {'email': {'type': 'string', 'description': "The user's email address."}}}
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.
입력 스키마
{'type': 'object', 'properties': {'lat': {'type': 'number'}, 'lon': {'type': 'number'}, 'mode': {'type': 'string', 'description': 'walk, bike, or transit. Omit for all three.'}, 'points': {'type': 'array', 'items': {'type': 'object', 'required': ['lat', 'lon'], 'properties': {'lat': {'type': 'number'}, 'lon': {'type': 'number'}}}, 'description': 'Many lat/lon points — one batch call.'}, 'block_geoid': {'type': 'string', 'description': '15-digit census block GEOID.'}, 'block_geoids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Many block GEOIDs — one batch call.'}}}
추가됨
join_close_plus
2026년 9월 17일 7:58 AM
추가됨
redeem_code
2026년 9월 17일 7:58 AM
추가됨
request_sign_in
2026년 9월 17일 7:58 AM
추가됨
get_token_balance
2026년 9월 17일 7:58 AM
추가됨
blocks_in_area
2026년 9월 17일 7:58 AM
추가됨
isochrone
2026년 9월 17일 7:58 AM
추가됨
nearby_pois
2026년 9월 17일 7:58 AM
추가됨
walkability_summary
2026년 9월 17일 7:58 AM
추가됨
get_catalog
2026년 9월 17일 7:58 AM
추가됨
find_place
2026년 9월 17일 7:58 AM