Isochrone logo

Isochrone

Berlin pedestrian isochrones: streets reachable on foot in N minutes (walk/stroller/wheelchair).

Install Isochrone

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "isochrone": {
      "command": "npx",
      "args": [
        "-y",
        "isochrone-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passed— started and listed 2 tools correctly (6d ago).

Overview

Tools2

What Isochrone lets your agent do. Expand a tool for its parameters.

Verified live~767 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

8/8 checks healthy over the last 46d

What it can do

From the 2 tools this server returned when we ran it; 2 declare their own safety hints.

Makes network requests · 2Read-only tools · 2
Network at startup3 connections
Files written at startupNone
Install scriptsNone
npm provenanceNot published
Package age76 days
Maintainers1

Observed 2026-10-21 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 5d ago via OSV.dev · isochrone-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars2Stargazers on the source repository.
npm downloads171Package downloads in the last 30 days.
Last commit1mo agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed2Callable tools this server registers over MCP.
Directory activity2 viewsConfig copies, upvotes, and views on AllMCPs.

From the project README

isochrone

demo uptime

Live: iso.huseyincapan.dev

Click anywhere on the map and see the street network you can actually reach on foot within 15 minutes — coloured by arrival time, with mobility profiles that account for stairs and unpaved paths.

OSM data → PostGIS + pgRouting → Express → Leaflet.

Same corner, same 15 minutes, drawn two ways: the reachable street network against the hull drawn around it

Why not a polygon?

Every isochrone map I could find answers with a filled polygon. That is wrong unless you are a pigeon: a polygon claims you can reach the middle of a block, cross a rail cutting, walk through a building. On the corner above, the same 15 minutes gives you 107.6 km of reachable streets; the hull drawn around them covers 3.28 km² and claims 30.4 km of street the walk cannot actually reach. This map draws the network.

How it works

pgr_drivingDistance walks the street graph from the vertex nearest your click until the time budget runs out, and returns every reachable edge with its arrival time. Those edges are grouped into 10 equal time bands and drawn directly.

Edge cost is length / speed in seconds, computed per request from the selected profile, so a profile is a few numbers rather than a schema change:

profilespeedstairsunpaved
walk1.4 m/shalf speednormal
stroller1.2 m/simpassable0.6Ă—
wheelchair0.9 m/simpassableimpassable

These factors are estimates, not measurements — see Known gaps.

Where should I live?

Answer a short questionnaire weighting seven everyday layers (dining, green space, playgrounds, groceries, health, kindergartens, schools) and the whole Berlin map re-ranks to show where your weighted 15-minute city actually is, as walk, bike or wheelchair.

The trick is that nothing is routed at question time: 21 full-city reachability surfaces (7 layers Ă— 3 profiles, ~134,000 grid cells each) are precomputed offline, so re-ranking the city is one aggregate query. Stroller is deliberately absent here: its speed factors are uncalibrated estimates and must not be published as if measured.

Ask Claude about it (MCP)

The isochrone-mcp package lets any MCP client answer reachability questions against this API:

Terminal
claude mcp add isochrone -- npx -y isochrone-mcp
Claude answering a reachability question, then the isochrone drawn on the map

One tool, reachable_area: origin + minutes + profile, optional target ("can I get there in time?"). Returns a prose summary and a map link, not coordinate soup. Details in mcp/.

Known gaps

  • Graph islands. The vertex nearest a click can sit on a disconnected fragment — 52.515,13.400 reaches 13 nodes. Fix is a one-time pgr_connectedComponents table for the vertex lookup to join against.
  • Calibration. The speeds above are guesses. Google's Isochrones API (Preview) supports WALK and returns GeoJSON, so the walk profile could be calibrated against it. It has no stroller/wheelchair mode, so those stay unvalidated.
  • Stranded origins render as a tiny blob rather than saying "unreachable with this profile".

Running it yourself

Dev setup, deployment, city import and the ops notes live in docs/OPERATIONS.md.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Isochrone

isochrone is an MCP server that answers Berlin pedestrian reachability questions using a street network. Given an origin, time limit, and mobility profile, it returns a prose summary and map link showing streets reachable on foot. It supports walk, stroller, and wheelchair profiles, with optional target checks for whether a destination is reachable in time.

The reachable_area tool calculates streets reachable from an origin within a specified number of minutes. It accepts an origin, time limit, and profile, with an optional target for destination reachability checks, and returns a prose summary plus a map link rather than raw coordinate data.

isochrone supports walk, stroller, and wheelchair profiles. Walk uses 1.4 m/s with stairs at half speed; stroller uses 1.2 m/s, treats stairs as impassable, and slows on unpaved paths; wheelchair uses 0.9 m/s and treats both stairs and unpaved paths as impassable. These factors are estimates.

Add isochrone with the npm package command `claude mcp add isochrone -- npx -y isochrone-mcp`. The package provides the `reachable_area` tool for MCP clients, querying the live isochrone API for Berlin pedestrian reachability.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewIsochrone AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/isochrone?style=directory)](https://allmcps.com/mcp/isochrone)
HTML Embed
<a href="https://allmcps.com/mcp/isochrone"><img src="https://allmcps.com/api/badge/isochrone?style=directory" alt="Isochrone on AllMCPs" /></a>