
CityHeart MCP server
Which MCP servers are CityHeart's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-19
- Registry namerun.cityheart/heart-routesverified in the MCP registry
The registry name sits under cityheart.run. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-19
- Tools7
- Server calls itselfcityheart
- Server version1.0.0
- Protocol version2024-11-05
On 2026-10-19 the server answered initialize and tools/list without a sign-in. First answer in 489 ms.
- Answered on only 4 of 10 daily checks.
- Whether its tools do the product's job has not been judged yet.
Once connected
- add_dedication, add_cause change data without a sign-in: anyone with the address can call them.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP score57 of 100answers 40 · definitions 83 · context 100 · connects 100 · lowered by the warning signs below
- Answered40% of days4 of 10 daily checks
- Median first answer411 ms
- Space in an agent's context≈ 1,226 tokensthe definitions of all its tools (7), which an agent carries on every turn
- Tool definitionsB · 83 of 100
- Typed results0 of 7 toolsdeclared outputSchema: results come typed, read once
- Not saying whether it only reads or can destroy: 7 of 7
What an agent can do with it
- not sure · draw a heart-shaped running route around a chosen address
- not sure · import a heart route into a GPX-compatible watch or app
- cannot · share a recorded heart route outing on Strava
Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?
Worth a look
- Tools that change data, on a server that answers without a sign-in: add_dedication, add_cause
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
find_heart_route_in_cityFind an existing heart-shaped running route in a given city. Returns up to 5 AI-validated routes matching the city (and optionally a target distance). Use this when a user mentions a city and wants a heart route — e.g. "find me a…
get_route_detailsGet full details for a specific heart route by its slug. Use after find_heart_route_in_city when the user picks one. Returns: city, distance, image URL, share URL, dedication (if any), and the GPX download deep-link.
list_supported_citiesList cities that have at least one heart route available. Use when the user asks "where can I run a heart?" or hasn't picked a city yet. Returns city names + route counts, sorted by inventory size.
generate_heart_routeStart a new heart-shaped route for a given city. Returns existing AI-validated matches from inventory PLUS a deep-link to the live builder for an on-demand fresh generation with the user's exact dedication and cause. Use when the user…
add_dedicationCompose a builder URL with a dedication pre-filled — the name shows on the runner's GPS watch and in the Strava activity title. Use after the user picks a route (find/generate) and decides who the heart is for. Pure URL builder, no…
add_causeCompose a builder URL with a fundraising link pre-filled — the URL is embedded into the GPX metadata (description, filename) so it surfaces in the runner's Strava activity after they sync. CityHeart never collects the donation; the…
export_gpxReturn the GPX download / checkout URL for a specific public route. The download itself happens on cityheart.run after a one-time €7.99 payment (Stripe — CityHeart never charges through the chat). Use after the user has picked a final…
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"heart-routes": {
"type": "http",
"url": "https://zhenwiaphfwetckfysod.supabase.co/functions/v1/mcp"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http cityheart https://zhenwiaphfwetckfysod.supabase.co/functions/v1/mcpclaude.ai, ChatGPT and other clients: add https://zhenwiaphfwetckfysod.supabase.co/functions/v1/mcp as a custom connector in the settings.
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Cookies
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.