Server definition
- Hash
- sha256:b047b9be270dbb272a4463a51d97a403cc9a92069c0fd6b82ccd0bccb658051d
- What it is
- What a remote MCP server returned when asked what it offers: 10 tools
The blob, as servednamed by its sha256
{
"instructions": "Tools for walkability analysis over the Close travel-time database. Start with find_place. Metered tools charge tokens; pass a ck_ key as the Authorization bearer, or use request_sign_in / redeem_code to get the user a free key.",
"tools": [
{
"description": "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.",
"inputSchema": {
"properties": {
"lat": {
"description": "Circle centre latitude (with lon + radius_m).",
"type": "number"
},
"limit": {
"default": 100,
"description": "Max rows (first page).",
"type": "integer"
},
"lon": {
"description": "Circle centre longitude.",
"type": "number"
},
"mode": {
"description": "walk, bike, or transit.",
"type": "string"
},
"place_geoid": {
"description": "Census place GEOID (a whole city/town).",
"type": "string"
},
"radius_m": {
"description": "Circle radius in metres (<=28000).",
"type": "number"
},
"type": {
"description": "Destination type id (see get_catalog).",
"type": "integer"
}
},
"type": "object"
},
"name": "blocks_in_area",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"limit": {
"default": 5,
"description": "Max matches (1-20).",
"type": "integer"
},
"query": {
"description": "City or town name, e.g. 'Providence'.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "find_place",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_catalog",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_token_balance",
"outputSchema": null
},
{
"description": "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).",
"inputSchema": {
"properties": {
"block_geoid": {
"type": "string"
},
"contours": {
"description": "Up to four ascending thresholds, instead of minutes.",
"items": {
"type": "integer"
},
"type": "array"
},
"direction": {
"description": "'from' the origin (default) or 'to' it.",
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"minutes": {
"default": 30,
"description": "A single threshold (1-60).",
"type": "integer"
},
"mode": {
"default": "walk",
"description": "walk, bike, or transit.",
"type": "string"
}
},
"type": "object"
},
"name": "isochrone",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"code": {
"description": "The six-digit code from the email.",
"type": "string"
},
"email": {
"type": "string"
}
},
"required": [
"email",
"code"
],
"type": "object"
},
"name": "join_close_plus",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"block_geoid": {
"type": "string"
},
"block_geoids": {
"description": "Many block GEOIDs — one batch call.",
"items": {
"type": "string"
},
"type": "array"
},
"lat": {
"type": "number"
},
"limit": {
"default": 25,
"description": "Max rows (first page).",
"type": "integer"
},
"lon": {
"type": "number"
},
"max_minutes": {
"description": "Upper bound on travel time (<=30).",
"type": "integer"
},
"mode": {
"description": "walk, bike, or transit.",
"type": "string"
},
"points": {
"description": "Many lat/lon points — one batch call.",
"items": {
"properties": {
"lat": {
"type": "number"
},
"lon": {
"type": "number"
}
},
"required": [
"lat",
"lon"
],
"type": "object"
},
"type": "array"
},
"type": {
"description": "Destination type id (see get_catalog).",
"type": "integer"
}
},
"type": "object"
},
"name": "nearby_pois",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"code": {
"description": "The six-digit code from the email.",
"type": "string"
},
"email": {
"type": "string"
},
"label": {
"default": "mcp-agent",
"description": "Optional label for the key.",
"type": "string"
}
},
"required": [
"email",
"code"
],
"type": "object"
},
"name": "redeem_code",
"outputSchema": null
},
{
"description": "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).",
"inputSchema": {
"properties": {
"email": {
"description": "The user's email address.",
"type": "string"
}
},
"required": [
"email"
],
"type": "object"
},
"name": "request_sign_in",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"block_geoid": {
"description": "15-digit census block GEOID.",
"type": "string"
},
"block_geoids": {
"description": "Many block GEOIDs — one batch call.",
"items": {
"type": "string"
},
"type": "array"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"mode": {
"description": "walk, bike, or transit. Omit for all three.",
"type": "string"
},
"points": {
"description": "Many lat/lon points — one batch call.",
"items": {
"properties": {
"lat": {
"type": "number"
},
"lon": {
"type": "number"
}
},
"required": [
"lat",
"lon"
],
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"name": "walkability_summary",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:b047b9be270dbb272a4463a51d97a403cc9a92069c0fd6b82ccd0bccb658051d | sha256sum