komoot-mcp
komoot-mcp is an MCP server for Komoot that lets you manage tours, plan routes, access highlights and tour streams, export/upload activity files, and read profiles.
List and filter tours by type, sport, visibility, name, date, sorting, and pagination.
Get tour details, update metadata, and delete tours.
Download GPX/FIT files and upload GPX/FIT activities.
Plan routes from waypoints, import/match GPX routes, and create planned tours.
Retrieve coordinates, surfaces, way types, and turn-by-turn directions for tours.
Work with highlights: details, community tips, and tour photos.
View the authenticated user's profile.
README extensions also include Smart Tours/discovery, geocoding, sharing, bookmarks, collections, and bulk export.
Provides tools for interacting with Komoot, an outdoor route planning and sharing platform. Includes capabilities for managing tours, downloading GPX/FIT exports, uploading tours, querying highlights, route planning, and retrieving user profile and tour streams.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@komoot-mcp list my recent tours"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
komoot-mcp
MCP server for Komoot — the most comprehensive Komoot API wrapper available. Tours, highlights, route planning, exports, and more.
Built with Python + FastMCP. Combines capabilities from kompy, KomootGPX, komPYoot, export-komoot, Eric-AI-M/komoot-mcp-server and Filip-Kin/komoot-mcp into a single MCP server.
Features
Tours
List tours — filter by type (planned/recorded), sport, visibility, name, date range, with sorting and pagination
Get tour detail — distance, elevation, duration, sport, difficulty, surfaces (also via share token)
Get full tour — metadata, surfaces, way types, directions, participants, timeline highlights and photos in one call
Update tour — name, sport, visibility, description
Delete tour
Exports
Download GPX — full GPS trace, inline or saved to a file
Download FIT — Garmin/ANT+ format (planned tours only), saved to a file
Export all tours — bulk backup to a folder, skipping files already present
Upload
Upload tour — GPX text, or a local
.gpx/.fit/.tcxfile; sets sport, name and visibility; flags duplicates
Route planning & geocoding
Plan route — Komoot route planner between waypoints (fitness level, round trip)
Plan and save tour — plan and save as a planned tour in one call (no GPX round-trip through the chat)
Import GPX route / Create planned tour — match an external GPX on Komoot's network and save it
Tour line — lightweight simplified geometry
Geocode / reverse geocode — place name ↔ coordinates via Komoot's Photon service
Discovery
Find Smart Tours — Komoot's suggested routes around a point, filterable by route attributes (forests, lakes, mountain huts…) or by a highlight they pass through
List route attributes — attributes available around a point
Smart Tour detail / GPX
Discover near — editorial collections around a point
Collections — collection metadata and its tours
Highlights
Get highlight — community points of interest, optionally with tips and recommenders
Highlight tips / photos — paginated
Highlights nearby — community highlights within a radius, filterable by sport
User highlights — highlights recommended by a user
Bookmarks — list, add and remove saved highlights
Tour images — photos attached to a tour
Sharing
Create / revoke share link for a tour
Read shared tour from a Komoot URL (with or without share token)
Streams
Coordinates — lat, lng, altitude, timestamp sequence
Surfaces — surface types per segment (asphalt, gravel, dirt...)
Way types — road, bike path, trail, etc.
Directions — turn-by-turn navigation
Profile
User profile — full profile for yourself, public profile for another user
40 tools total
Discovery tools return a compact summary per tour by default (compact=False for the raw JSON, which can reach several hundred kilobytes).
Related MCP server: Garmin Workouts MCP Server
Setup
1. Configure credentials
cd komoot-mcp
cp .env.example .env
# Edit .env with your Komoot email and passwordKOMOOT_EMAIL=your.email@example.com
KOMOOT_PASSWORD=your_komoot_password2. Install and run
uv sync
uv run python -m komoot_mcp.server3. Add to Claude Desktop
{
"mcpServers": {
"komoot": {
"command": "uv",
"args": ["--directory", "/path/to/komoot-mcp", "run", "python", "-m", "komoot_mcp.server"]
}
}
}Authentication
Basic Auth via Komoot's internal API (/v006/account/email/{email}/). Session token persisted in ~/.config/komoot-mcp/session.json with automatic re-auth on 401. GET requests are retried on 429/502/503/504 with backoff (honouring Retry-After).
Note: Komoot does not have an official public API. This server uses the same undocumented v007 REST API that the web frontend and all major third-party tools use. It could break if Komoot changes their internal API.
Logging
JSON-lines logs in ~/.config/komoot-mcp/logs/komoot-mcp.log. Set KOMOOT_MCP_LOG_LEVEL=DEBUG in .env.
License
MIT
Available Tools
18 toolscreate_planned_tourB
Creer un tour planifie sur Komoot a partir d'un resultat de plan_route ou import_gpx_route.
Args: route_data: resultat JSON de plan_route() ou import_gpx_route(). name: nom du tour planifie. sport: type de sport.
Inputs: route_data (required), name, sport. Returns: object
delete_tourC
Supprimer un tour.
Args: tour_id: ID du tour a supprimer.
Inputs: tour_id (required). Returns: object
download_tour_fitA
Telecharger un tour au format FIT (format Garmin/ANT+).
Args: tour_id: ID du tour.
Returns: Indication que le fichier FIT a ete recupere (binaire, non affichable).
Inputs: tour_id (required). Returns: result
download_tour_gpxA
Telecharger un tour au format GPX (trace GPS complete).
Args: tour_id: ID du tour.
Returns: Contenu GPX en texte XML.
Inputs: tour_id (required). Returns: result
get_highlightC
Detail d'un highlight Komoot (point d'interet communautaire).
Args: highlight_id: ID du highlight.
Inputs: highlight_id (required). Returns: object
get_highlight_tipsC
Conseils/tips de la communaute pour un highlight.
Args: highlight_id: ID du highlight.
Inputs: highlight_id (required). Returns: object
get_tourB
Detail complet d'un tour (distance, denivele, duree, sport, difficulte, surfaces, etc.).
Args: tour_id: ID du tour Komoot.
Inputs: tour_id (required). Returns: object
get_tour_coordinatesC
Sequence de coordonnees d'un tour (lat, lng, alt, timestamp).
Args: tour_id: ID du tour.
Inputs: tour_id (required). Returns: object
get_tour_directionsB
Instructions de navigation turn-by-turn d'un tour planifie.
Args: tour_id: ID du tour.
Inputs: tour_id (required). Returns: object
get_tour_imagesB
Lister les images/photos d'un tour.
Args: tour_id: ID du tour.
Inputs: tour_id (required). Returns: object
get_tour_surfacesA
Types de surface par segment d'un tour (asphalte, gravier, terre, etc.).
Args: tour_id: ID du tour.
Inputs: tour_id (required). Returns: object
get_tour_way_typesB
Types de voie par segment d'un tour (route, piste cyclable, sentier, etc.).
Args: tour_id: ID du tour.
Inputs: tour_id (required). Returns: object
get_user_profileA
Profil de l'utilisateur Komoot connecte (nom, avatar, stats).
Inputs: no named parameters. Returns: object
import_gpx_routeA
Importer un fichier GPX et le matcher sur le reseau routier Komoot.
Etape 1/2 pour creer un tour planifie a partir d'un GPX externe. Utiliser ensuite create_planned_tour() avec le resultat.
Args: gpx_content: contenu GPX (texte XML). sport: type de sport pour le matching.
Inputs: gpx_content (required), sport. Returns: object
list_toursB
Lister tes tours Komoot (planifies et enregistres).
Args: tour_type: 'tour_planned', 'tour_recorded', ou None pour tous. sport_types: types de sport separes par virgule (ex: 'hike,touringbicycle,mtb,racebicycle,jogging'). status: 'public', 'private', ou None pour tous. sort_field: champ de tri ('date', 'name', 'distance', 'duration'). sort_direction: 'asc' ou 'desc'. name: filtrer par nom (recherche partielle). page: pagination (0-indexee). limit: nb max (defaut 30, max 100).
Inputs: tour_type, sport_types, status, sort_field, +4 more. Returns: object
plan_routeB
Planifier un itineraire Komoot a partir de waypoints.
Args: coordinates: liste de [lat, lng] pour les points de passage (ex: [[48.5734, 7.7521], [48.5801, 7.7612]]). sport: type de sport ('hike', 'touringbicycle', 'mtb', 'racebicycle', 'jogging').
Inputs: coordinates (required), sport. Returns: object
update_tourC
Modifier les metadonnees d'un tour.
Args: tour_id: ID du tour. name: nouveau nom. sport: type de sport ('hike', 'touringbicycle', 'mtb', 'racebicycle', 'jogging', 'mountaineering', 'running', 'e_touringbicycle', 'e_mtb', 'nordic_walking', 'skitour', 'snowshoe'). status: 'public' ou 'private'.
Inputs: tour_id (required), name, sport, status. Returns: object
upload_tourB
Uploader un fichier GPX comme activite enregistree sur Komoot.
Args: gpx_content: contenu du fichier GPX (texte XML). sport: type de sport ('hike', 'touringbicycle', 'mtb', 'racebicycle', 'jogging', 'mountaineering', 'running'). tour_name: nom du tour (optionnel). data_type: 'gpx' ou 'fit'.
Inputs: gpx_content (required), sport, tour_name, data_type. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 18 tools
Each tool targets a distinct aspect of Komoot (tours, highlights, planning, user profile) with clear scope. Tools like get_tour, download_tour_gpx, and get_tour_coordinates all relate to tours but return different data types, preventing confusion.
All tools follow a consistent verb_noun pattern (e.g., create_planned_tour, delete_tour, get_highlight). Snake_case is used uniformly, and verbs clearly indicate the action.
18 tools is slightly above the typical 3-15 range but well-justified for the complexity of a mapping and outdoor activity service. No tool feels redundant or out of place.
The tool set covers core workflows: planning, uploading, managing, and downloading tours, plus highlights and user profile. Minor gaps exist (e.g., no search for highlights by location) but do not hinder primary use cases.
Maintenance
Related MCP Connectors
Access COROS activity, training and health data, and manage training plans and workouts.
Your own cycling data for your AI assistant: rides, power, climbs and routes. Read-only.
Convert, validate, and inspect workout files (FIT, TCX, ZWO, Garmin Connect) for AI agents.
Garmin Connect MCP server for ChatGPT, Claude and any AI agent: list activities, download FIT file, read sleep and HRV, get training status, create workout and schedule workout in your own Garmin Connect account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Garmin Connect yourself; Cotlet does not store your password and you need no Garmin Connect API key. About the official Garmin Connect API: Yes, in part (checked 27 Oct 2026). Garmin reopened its Connect Developer Program on 21 Oct 2026. Setup and FAQ: https://cotlet.dev/integrations/garmin-api-mcp-server
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables interaction with Strava's API to access and manage activities, athlete data, routes, segments, clubs, and gear through natural language.2210 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to access Garmin Connect activities, workouts, and workout templates for querying and creating workout plans.6MIT
- AlicenseBqualityCmaintenanceEnables triathlon coaches and athletes to interact with Garmin Connect, including retrieving health/activity data, building and uploading structured workouts (cycling, running, swimming, brick), and accessing coaching analytics like readiness, load, and performance trends.172MIT
- AlicenseAqualityCmaintenanceEnables Claude to search your Komoot tours by distance, start point, surface and scenery, and to assemble new gravel routes from the best sections of tours you already saved, exporting the result as a GPX track plus waypoints for the Komoot planner.9MIT