Last updated
coords.zone runs a stateless streamable-HTTP MCP server at POST https://coords.zone/mcp, exposing three tools an agent
can call directly: get_zone
(USDA hardiness zone plus local zone), get_country
(name, ISO code, zone scale), and get_climate
(raw temperature extremes and frost dates) — each taking lat
and lng
in decimal degrees. No handshake is required: server/discover, tools/list,
and tools/call
all work on the first request, on protocol revision 2026-07-28. Authentication is the same
Authorization: Bearer czk_…
header as the REST API; omit it and the call rides a free, quota-limited anonymous tier, or
pass a key from the dashboard to bill against your own account instead. Any MCP client that
speaks streamable HTTP — Claude Code, Claude Desktop, Cursor, or a custom agent — can connect
with just that URL.
One command, no config file:
claude mcp add --transport http coords-zone https://coords.zone/mcp
With an API key, so the calls count against your account rather than the anonymous quota:
claude mcp add --transport http coords-zone https://coords.zone/mcp \
--header "Authorization: Bearer czk_your_key_here"
Check it connected with /mcp
inside Claude Code, or claude mcp list
from the shell.
Most clients take the same JSON. Drop it into the client's MCP config —
claude_desktop_config.json
for Claude Desktop, .cursor/mcp.json
for Cursor:
{
"mcpServers": {
"coords-zone": {
"type": "http",
"url": "https://coords.zone/mcp"
}
}
}
With an API key:
{
"mcpServers": {
"coords-zone": {
"type": "http",
"url": "https://coords.zone/mcp",
"headers": {
"Authorization": "Bearer czk_your_key_here"
}
}
}
}
All three take lat
and lng
as numbers in decimal degrees, and return the same fields as the REST endpoint of the same
name — see the API reference
for the response schemas.
| Name | Returns |
|---|---|
| get_zone | USDA hardiness zone, plus the local zone where the country has its own system |
| get_country | Country name, ISO code, and the zone scale used there |
| get_climate | Raw temperature extremes and first/last frost dates |
New to hardiness zones? See how zone numbers work , getting frost dates from a coordinate , and what other countries use instead of USDA zones .
Authentication is the same Authorization: Bearer czk_…
header as the REST API, and the server works without one — an unauthenticated agent rides
the anonymous free tier. Create a key on your dashboard.
Only tools/call
counts against your quota: connecting, discovering the server, and listing tools are all
free. A call that runs out of quota comes back as a tool error naming the page to sign up
or upgrade on, rather than as an HTTP error — MCP clients treat a non-200 as a transport
failure and drop the body, so the link would never reach the agent.
Origin
header, which an MCP client never sends — setting it will reject every call your agent
makes.
POST https://coords.zone/mcp.
2026-07-28. A client that declares no
revision is served rather than turned away; one that declares an older revision is
refused with -32022. The
initialize
handshake belonged to the earlier revision and is gone with it — use server/discover.
server/discover,
tools/list
and tools/call
all work without a prior handshake.
curl -s https://coords.zone/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
We can't find the internet
Attempting to reconnect
Something went wrong!
Attempting to reconnect
© 2026 coords.zone