MCP server
A remote MCP server (Streamable HTTP) whose tools are the API's ops, with descriptions written for a model choosing a tool.
Endpoint: https://geo-coder-service.vercel.app/mcp. Authenticate with an API key header, or with OAuth at https://geo-coder-service.vercel.app/mcp?auth=required for apps that sign you in. Without either, the public tools still work.
Claude Code
claude mcp add --transport http geocode https://geo-coder-service.vercel.app/mcp \ --header "Authorization: Bearer $GEOCODE_API_KEY"Or install the plugin, which adds the server plus skills, and signs you in in the browser on first use.
Claude.ai and ChatGPT connectors
Add a custom connector with the URL https://geo-coder-service.vercel.app/mcp?auth=required. The app opens a sign-in page; approve access and the tools appear in the chat.
Cursor, Windsurf and JSON configs
{ "mcpServers": { "geocode": { "url": "https://geo-coder-service.vercel.app/mcp", "headers": { "Authorization": "Bearer ${GEOCODE_API_KEY}" } } }}Codex
[mcp_servers.geocode]
url = "https://geo-coder-service.vercel.app/mcp"
http_headers = { "Authorization" = "Bearer geo_…" }Or run npx @meterapp/geocode install to write the config for Claude Code, Codex and Cursor in one go.
stdio (any host)
For hosts that only launch a command, the CLI is also a stdio MCP server with the same tools:
{ "mcpServers": { "geocode": { "command": "npx", "args": [ "-y", "@meterapp/geocode", "mcp" ], "env": { "GEOCODE_API_KEY": "geo_…" } } }}Tools
One tool per op, same name and input as the REST API. Read-only tools carry readOnlyHint, so hosts can run them without asking.
| Tool | Cost |
|---|---|
search_boundaries | Free |
get_boundary | 1 unit |
export_boundary | 1 unit |
reverse_boundaries | 1 unit |
list_children | Free |
contains_points | 1 unit per 1,000 points (up to 10,000 per call) |
union_boundaries | 1 unit per boundary (up to 50) |
create_area | 50 units |
get_account | Free |
update_profile | Free |
get_usage | Free |
list_api_keys | Free |
create_api_key | Free |
revoke_api_key | Free |
get_email_preferences | Free |
update_email_preferences | Free |
list_feedback | Free |
get_feedback | Free |
request_feature | Free |
report_issue | Free |
upvote_feedback | Free |
remove_feedback_vote | Free |
comment_on_feedback | Free |
get_pricing | Free |
Things to ask
- “Get the boundary of Kreuzberg as GeoJSON and save it to kreuzberg.geojson.”
- “Which county and city is 37.80, −122.27 in?”
- “List the counties of Colorado with their populations.”
- “Build one polygon for Alameda and Contra Costa counties minus Oakland.”
- “Which of the stores in stores.csv are inside Berlin?”
The server's instructions tell the model the workflow (search, then get; never guess an id; batch points) and what each call costs. A machine-readable server card is at /.well-known/mcp.json.