Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,542Letters: 14Defects: 1,324counted 4 min ago
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:b047b9be270dbb272a4463a51d97a403cc9a92069c0fd6b82ccd0bccb658051d | sha256sum