Skip to content
CityHeart logo

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

← Back to CityHeart

Whose server it is
  • 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.

When we asked itchecked 2026-10-19
  • 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.

Should an agent connect itSkip it
  • 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.

Measured dailydaily checks: 10, the first on 2026-10-19
  • 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 →

Tools it offers7 tools · read 2026-10-19
  • find_heart_route_in_city

    Find 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_details

    Get 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_cities

    List 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_route

    Start 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_dedication

    Compose 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_cause

    Compose 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_gpx

    Return 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/mcp

Add to CursorAdd to VS Code

claude.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.