Isochrone

io.github.capanPublished by GitHub account capanv0.1.4Updated Oct 24, 2026

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

VerifiedSTDIODesktop onlyLocation & LifestyleData & Analytics

Overview

AI-generated overview

Answers Berlin pedestrian reachability questions — which streets you can walk, push a stroller, or roll a wheelchair to within N minutes.

What you can do
Exposes a single tool, reachable_area, that takes an origin, a time budget in minutes, and a mobility profile (walk, stroller, or wheelchair), plus an optional target to check whether it can be reached in time. It queries a Berlin street-network isochrone API and returns a prose summary with a map link rather than raw coordinates. Reachability is computed over the street graph, so results follow actual walkable streets instead of a filled polygon.
When to use it
Useful when you want an assistant to answer everyday Berlin questions such as how far you can get on foot in 15 minutes from an address, or whether a specific destination is reachable with a stroller or wheelchair. It is city-specific, so it is only worth adding for Berlin locations.
Requirements
Runs locally over stdio, typically started with npx from the isochrone-mcp npm package, so Node.js and network access to the hosted API are needed. No accounts, API keys, environment variables, or headers are declared.
Before you install
The README states that the profile speed factors are estimates rather than measurements, that stroller and wheelchair profiles are unvalidated, and that some origins fall on disconnected graph fragments and return misleadingly small results. Treat answers as approximate, not as accessibility or routing guarantees.

Installation

In SourceWeft

  1. Open Isochrone in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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:

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

Source: README.md at commit 776e893

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.4LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts