TomTom MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MAPS | No | Optional backend to use. Set to 'ORBIS' to use Orbis APIs instead of Genesis APIs | |
| TOMTOM_API_KEY | Yes | Your TomTom API key obtained from the TomTom Developer Portal |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tomtom-get-api-keyA | Internal tool for apps to retrieve the TomTom API key |
| tomtom-get-app-configA | Internal tool for apps to retrieve client configuration such as the attribution user-agent |
| tomtom-get-app-dataA | Internal tool for the data-viz app to get data missing from the result, by running tomtom-data-viz again |
| tomtom-report-app-statusC | Internal tool for apps to report whether they drew their data |
| tomtom-geocodeC | Convert street addresses to coordinates. |
| tomtom-reverse-geocodeC | Convert coordinates to addresses. |
| tomtom-fuzzy-searchC | Typo-tolerant search for addresses, points of interest, and geographies. |
| tomtom-poi-searchA | Search for a specific business or POI by name, or browse an entire POI category. Best for finding a known place (e.g. 'Starbucks') or listing all businesses of a type (e.g. the 'ITALIAN_RESTAURANT' category code from tomtom-poi-categories). Supports optional location bias but does not constrain results to a strict geographic boundary — tomtom-area-search does that. |
| tomtom-nearbyA | Find places of a kind close to a specific point. Best for 'what's around here?' queries when you have exact coordinates (lat/lon). Needs poiCategories, or a brand, fuel, connector or charging-power filter. Returns results sorted by distance. Use tomtom-area-search instead when the search area is a polygon or bounding box rather than a simple radius. |
| tomtom-poi-categoriesA | Look up POI category codes from natural language. The poiCategories parameter of the search tools accepts only codes returned by this tool. Category codes are UPPER_SNAKE_CASE text strings (e.g. 'ITALIAN_RESTAURANT', 'PARKING_GARAGE'), not numeric IDs. Workflow: (1) extract the user's intent as keywords (e.g. 'italian restaurants in Amsterdam' → filters: ['italian restaurant']); (2) call this tool with those keywords in the filters parameter; (3) pass the returned category codes in the poiCategories parameter of search tools (fuzzy-search, poi-search, nearby, area-search). Guessed or hardcoded category codes are unreliable; this tool is the source of valid codes. |
| tomtom-area-searchA | Find all POIs within a strict geographic boundary — polygon, bounding box, or circle. Use this when the search must be confined to a specific region (e.g. 'restaurants inside Westminster', 'hotels within this polygon'). Unlike tomtom-nearby (radius from a point) or tomtom-poi-search (location bias), this tool guarantees results are inside the defined geometry. The search area outline is omitted unless response_detail is 'geometry'. |
| tomtom-ev-searchA | Find EV charging stations with their connector types and power levels. Results carry no real-time charger availability. |
| tomtom-search-along-routeA | Find points of interest (restaurants, gas stations, hotels, etc.) along a route corridor. Calculates the route between origin and destination, then searches for POIs within a configurable distance from the route. The route line is omitted unless response_detail is 'geometry'. |
| tomtom-routingA | Calculate optimal routes through an ordered list of locations [origin, ...stops, destination]. The primary tool for directions, routes, travel time, or distance between places — whether a simple A-to-B or a multi-stop itinerary (e.g. 'route from Amsterdam to Berlin', 'drive from A to B via C and D'). Returns distance, travel time and traffic delay, with a summary per leg. Turn-by-turn instructions are not available. Route polylines are omitted unless response_detail is 'geometry'. |
| tomtom-trafficA | Find traffic incidents in an area. The primary tool for questions about traffic, accidents, road closures, congestion, or dangerous road conditions. Returns severity, description, delay and affected roads for each incident. Incident locations are omitted unless response_detail is 'geometry'. |
| tomtom-dynamic-mapA | Render an interactive map with markers, drawn lines, polygons, and area overlays. The map is drawn by the MCP app, so the visual requires a client that supports MCP apps. The caller gets back only a summary (the view, marker positions, route distance and time), never route lines or area outlines; tools whose response_detail offers 'geometry' return those as GeoJSON. Intended for map visualization: showing locations on a map, highlighting areas, or combining multiple visual elements in one view. Not intended for route calculations (tomtom-routing), traffic incidents (tomtom-traffic), or large-dataset visualization like heatmaps/clusters/choropleth (tomtom-data-viz). The optional routePlans parameter can calculate and draw routes on the map; it is meant for routes combined with other map elements (markers, polygons) in a single view. |
| tomtom-data-vizA | Visualize custom GeoJSON data on a TomTom basemap. The map is drawn by the MCP app, so the visual requires a client that supports MCP apps; the caller gets back only a summary. Intended for large datasets, heatmaps, cluster maps, choropleth maps, or GeoJSON data (from a URL or inline) rendered on a map. Supports markers, heatmaps, clusters, lines, polygon fills, and choropleth maps. Provide data via HTTPS URL or inline GeoJSON. Multiple layers can be overlaid in a single call. Point features are automatically enriched with TomTom address data when clicked (reverse geocode). Placing a few specific markers, routes, or polygons is handled by tomtom-dynamic-map; route calculations (directions, travel time) are handled by tomtom-routing. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| ui://tomtom-map/places-and-routes/app.html | |
| ui://tomtom-traffic/incidents/app.html | |
| ui://tomtom-map/dynamic-map/app.html | |
| ui://tomtom-data-viz/byod/app.html |
TDQS
Scored across 17 tools
The five search tools (fuzzy-search, poi-search, nearby, area-search, ev-search) overlap conceptually, but their descriptions explicitly delimit each: location bias vs. radius vs. strict geometry vs. EV-specific, and poi-categories is clearly a code-lookup prerequisite. The map tools (dynamic-map vs. data-viz) are likewise explicitly contrasted (a few markers/polygons vs. heatmaps/clusters/large GeoJSON). A few internal app tools (get-app-data, report-app-status) are less clearly separated from the user-facing flow, keeping it from a 5.
All names share the uniform 'tomtom-' kebab-case prefix, giving a predictable family. However, the suffix style mixes bare nouns (routing, traffic) with verb-noun/verb-phrases (search-along-route, fuzzy-search, area-search, get-api-key), so the action isn't always encoded in the same position. Readable and consistent enough, with a minor stylistic deviation.
17 tools is on the heavy edge of the ideal band, but a mapping/traffic/geocoding domain genuinely needs multiple search modes, geocoding, routing, traffic, EV, and visualization. The four internal app-plumbing tools (get-api-key, get-app-config, get-app-data, report-app-status) add surface area that is irrelevant to most agent workflows, slightly bloating the set.
Core lifecycle is well covered: bidirectional geocoding, multiple constrained search modes plus category-code lookup, multi-stop routing, traffic incidents, EV search, and two visualization tools. Gaps exist for a mapping domain—no distance/time matrix, isochrone/reachable-range, or waypoint optimization—but these are minor relative to the stated live-traffic/navigation purpose.