Skip to content

run.cityheart/heart-routes

by cityheart.run · remote · no sign-in to list tools · v1.0.0 · published by run.cityheart

Heart-shaped GPS running routes in 200+ cities — charity, gift, memorial, anniversary.

Changes · 3

7 tools: 3 change things and 4 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http heart-routes https://zhenwiaphfwetckfysod.supabase.co/functions/v1/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

7 tools

Changes things 3Claude Code: ask
  • 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 th…No findings

    Why it is in this group

    • The name "add_cause" says "add": a word for a change.
    Description, as the server wrote it
    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 runner's donors click straight through to JustGiving / GoFundMe / Leetchi / etc.
  • 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.No findings

    Why it is in this group

    • The name "add_dedication" says "add": a word for a change.
    Description, as the server wrote it
    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 server-side state.
  • generate_heart_routeStart a new heart-shaped route for a given city.No findings

    Why it is in this group

    • The name "generate_heart_route" says "generate": a word for a change.
    Description, as the server wrote it
    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 explicitly wants a NEW heart, or when an existing match is "close enough but not personal yet". Optional dedication / cause_url pre-fill the builder fields, so the URL deep-link arrives configured.
Only reads 4Claude Code: allow
  • export_gpxReturn the GPX download / checkout URL for a specific public route.No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    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 route (find / get_details) and confirms they want it.
  • find_heart_route_in_cityFind an existing heart-shaped running route in a given city.No findings

    Why it is in this group

    • The name "find_heart_route_in_city" says "find": a word for reading.
    Description, as the server wrote it
    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 heart-shaped route in Paris" or "I want to run a heart in Tokyo for my mum's birthday".
  • get_route_detailsGet full details for a specific heart route by its slug.No findings

    Why it is in this group

    • The name "get_route_details" says "get": a word for reading.
    Description, as the server wrote it
    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_citiesList cities that have at least one heart route available.No findings

    Why it is in this group

    • The name "list_supported_cities" says "list": a word for reading.
    Description, as the server wrote it
    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.

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http heart-routes https://zhenwiaphfwetckfysod.supabase.co/functions/v1/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__heart-routes__find_heart_route_in_city",
      "mcp__heart-routes__get_route_details",
      "mcp__heart-routes__list_supported_cities",
      "mcp__heart-routes__export_gpx"
    ],
    "ask": [
      "mcp__heart-routes__generate_heart_route",
      "mcp__heart-routes__add_dedication",
      "mcp__heart-routes__add_cause"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as heart-routes. Review it before you use it.