Skip to main content
Glama
mzorz

bikerouter-mcp

by mzorz

bikerouter-mcp

Un servidor MCP que planifica rutas en bicicleta con bikerouter.de — la interfaz web de BRouter de Norbert Renner sobre el motor BRouter de Arndt Brenschede, que enruta sobre datos de OpenStreetMap.

Apunta cualquier cliente MCP (Claude Code, Claude Desktop, …) a él y pídele cosas como "planifica una ruta de gravel de Colonia a Bonn por el Rin y dame el GPX".

Qué puede hacer

Herramienta

Propósito

plan_route

Enruta a través de 2 o más waypoints (coordenadas o nombres de lugares) y devuelve distancia, ascenso/descenso, tiempo de pedaleo estimado, desglose de superficie y tipo de vía, instrucciones de giro, un enlace compartible de bikerouter.de y, opcionalmente, un archivo GPX/GeoJSON/KML/CSV guardado.

compare_profiles

Enruta los mismos waypoints con varios perfiles (p. ej. trekking vs gravel vs fastbike) y compara distancia, tiempo, desnivel y porcentaje de asfalto lado a lado.

geocode_place

Convierte un nombre de lugar, dirección o POI en coordenadas (a través de Photon, el geocodificador que usa bikerouter.de).

list_profiles

Lista los perfiles de enrutamiento conocidos, verificando opcionalmente cuáles sirve realmente el host de enrutamiento.

get_profile_options

Lee el código fuente .brf de un perfil y lista los parámetros que expone (avoid_unsafe, allow_ferries, totalMass, bikerPower, …) para usarlos con plan_route's profile_options.

Ejemplo de salida de plan_route:

**Route** (profile: `trekking`)
Alexanderplatz, Berlin → Brandenburger Tor, Berlin

- Distance: **5.2 km**
- Estimated riding time: **20 min** (⌀ 15.6 km/h, from the profile's physics model)
- Ascent: **80 m** / descent: **60 m**
- Elevation: 35–55 m (start 35 m, end 55 m)

- Surfaces: asphalt 76.9% (4 km), gravel 23.1% (1.2 km)
- Way types: cycleway 38.5% (2 km), residential 38.5% (2 km), track 23.1% (1.2 km)

Open in bikerouter.de: https://bikerouter.de/#map=14/52.518154/13.396327/standard&lonlats=…&profile=trekking

Related MCP server: Hiking MCP Server

Instalación

cd bikerouter-mcp
npm install     # also builds via the prepare script
npm test

Regístralo con Claude Code:

claude mcp add bikerouter -- node /absolute/path/to/bikerouter-mcp/dist/index.js

o añádelo a claude_desktop_config.json / cualquier otro cliente MCP:

{
  "mcpServers": {
    "bikerouter": {
      "command": "node",
      "args": ["/absolute/path/to/bikerouter-mcp/dist/index.js"]
    }
  }
}

No se necesita clave de API — el servicio es gratuito y sin autenticación.

Configuración

Todo opcional, se establece como variables de entorno:

Variable

Valor por defecto

Significado

BIKEROUTER_HOST

https://brouter.de

Host que sirve el endpoint de enrutamiento BRouter /brouter. bikerouter.de es solo la interfaz web y aquí devuelve 404, así que por defecto es brouter.de. Apúntalo a http://localhost:17777 para usar tu propio servidor BRouter.

BIKEROUTER_WEB_URL

https://bikerouter.de

Interfaz web usada para los enlaces de mapa compartibles.

BIKEROUTER_PROFILES_URL

<host>/brouter/profiles2/, luego <host>/profiles/, luego <web>/profiles/

Dónde viven las fuentes de perfil .brf (usado por get_profile_options).

BIKEROUTER_GEOCODER_URL

https://photon.komoot.io/api

Geocodificador compatible con Photon.

BIKEROUTER_DEFAULT_PROFILE

trekking

Perfil usado cuando el llamador no nombra uno.

BIKEROUTER_TIMEOUT_MS

60000

Tiempo de espera HTTP. Las rutas largas pueden tardar un rato.

BIKEROUTER_USER_AGENT

bikerouter-mcp/0.1.0

Se envía con cada petición.

Cómo se mapea sobre la API de BRouter

Las peticiones son llamadas GET /brouter simples, exactamente como se documenta en el ServerHandler.java de BRouter:

/brouter?lonlats=lon,lat|lon,lat&nogos=lon,lat,radius,weight|…&profile=trekking
        &alternativeidx=0&format=geojson&timode=1&straight=0&profile:avoid_unsafe=true
  • waypointslonlats (los nombres de lugares se geocodifican primero, sesgados hacia el waypoint anterior)

  • avoid_areasnogos (omite weight para un no-go duro)

  • straight_fromstraight (tramos en línea recta)

  • profile_optionsprofile:NAME=VALUE

  • alternative_indexalternativeidx (1–3 para rutas alternativas)

  • turn_instructionstimode (indicaciones de voz en la respuesta GeoJSON)

La respuesta GeoJSON se resume localmente: longitud de la pista, filtered ascend, total-time y total-energy vienen de las propiedades de la pista, el descenso se deriva del ascenso filtrado y del cambio neto de altura, y el desglose de superficie / tipo de vía / suavidad se agrega de la tabla messages (WayTags ponderado por Distance).

Limitaciones que conviene saber

  • La calidad del enrutamiento es la calidad de OpenStreetMap. Los tags de superficie o acceso faltantes producen desvíos extraños; siempre comprueba una ruta en el enlace del mapa devuelto antes de pedalearla.

  • BRouter no tiene nombres de calles, así que las instrucciones de giro dicen "en 1,2 km gira a la derecha" sin nombre de calle. Es una propiedad del motor, no de este servidor.

  • El tiempo de pedaleo estimado viene del modelo físico del perfil (masa del ciclista, potencia, resistencia). Sobrescribe totalMass, bikerPower, maxSpeed mediante profile_options para una cifra realista.

  • La elevación necesita cobertura SRTM; por encima de ~60°N/S la pista vuelve sin elevaciones y el resumen lo dice.

  • El servicio público es una instancia gratuita y comunitaria — mantén un volumen de peticiones moderado, o ejecuta tu propio servidor BRouter y establece BIKEROUTER_HOST.

  • Los perfiles difieren según el servidor. list_profiles incluye un catálogo de los perfiles estándar de BRouter/BRouter-Web; pasa verify: true para comprobar qué sirve realmente un host dado.

Pruebas

npm test construye el servidor y ejecuta node --test:

  • pruebas unitarias para la construcción de URLs, validación de waypoints, análisis de parámetros .brf y el resumidor de GeoJSON

  • una prueba de extremo a extremo que habla MCP sobre stdio con el binario del servidor real contra un host BRouter simulado, cubriendo enrutamiento, exportación GPX, listado de perfiles y las respuestas de error en texto plano de BRouter

Las pruebas nunca tocan el servicio público, así que se ejecutan sin conexión.

Créditos y licencia

Código del servidor: MIT. Es solo un cliente — el enrutamiento lo hace BRouter (MIT) a través de BRouter-Web / bikerouter.de, sobre datos de mapa © Colaboradores de OpenStreetMap (ODbL).

Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Routing, isochrones, matrix, snap, elevation, geocode via Openrouteservice.

  • Basque Country hyperlocal mobility: ES/EU semantic search, routing, open-data POIs, peak-bagging.

  • Geoapify MCP — wraps the Geoapify Location Platform (geoapify.com)

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mzorz/bikerouter-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server