TomTom MCP
Location technology for developers
TomTom MCP Server
The TomTom MCP Server simplifies geospatial development by providing seamless access to TomTom’s location services, including search, routing, traffic and static maps data. It enables easy integration of precise and accurate geolocation data into AI workflows and development environments.
Demo

Table of Contents
- Demo
- Security Notice
- Remote MCP Server (No Installation Required)
- Quick Start
- Integration Guides
- Available Tools
- Debug UI
- Local Development
- Troubleshooting
- Contributing & Feedback
- Security
- License
Remote MCP Server (No Installation Required)
Public Preview — The TomTom Remote MCP Server is currently in public preview.
The easiest way to get started is to connect directly to TomTom's hosted MCP Server — no Node.js, Docker, or local setup needed.
Endpoint:
https://mcp.tomtom.com/maps
Prerequisites:
- A valid TomTom API key with MCP Server access enabled (see API Key Management)
Generic MCP Client Configuration
Add the following to your MCP client configuration:
{
"mcpServers": {
"tomtom-mcp": {
"type": "http",
"url": "https://mcp.tomtom.com/maps",
"headers": {
"tomtom-api-key": "your_api_key_here"
}
}
}
}
Selecting a Map Backend
Add the optional tomtom-maps-backend header to choose your backend:
TomTom Maps (default):
{
"mcpServers": {
"tomtom-mcp": {
"type": "http",
"url": "https://mcp.tomtom.com/maps",
"headers": {
"tomtom-api-key": "your_api_key_here",
"tomtom-maps-backend": "tomtom-maps"
}
}
}
}
TomTom Orbis Maps:
{
"mcpServers": {
"tomtom-mcp": {
"type": "http",
"url": "https://mcp.tomtom.com/maps",
"headers": {
"tomtom-api-key": "your_api_key_here",
"tomtom-maps-backend": "tomtom-orbis-maps"
}
}
}
}
If the tomtom-maps-backend header is omitted, the server defaults to TomTom Maps.
VS Code (GitHub Copilot)
Create or edit .vscode/mcp.json in your workspace:
{
"servers": {
"tomtom-mcp": {
"type": "http",
"url": "https://mcp.tomtom.com/maps",
"headers": {
"tomtom-api-key": "your_api_key_here"
}
}
}
}
Claude Desktop
The quickest option is to install the pre-built extension — see the Claude Desktop Setup guide for details.
Alternatively, configure Claude Desktop to use the remote server directly by editing your configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"tomtom-mcp": {
"type": "http",
"url": "https://mcp.tomtom.com/maps",
"headers": {
"tomtom-api-key": "your_api_key_here"
}
}
}
}
Note: If your MCP client does not support remote HTTP connections with custom headers, use the local setup instead.
Security Notice
Keeping local deployments of the TomTom MCP Server up-to-date is the responsibility of the MCP client/operator. TomTom publishes updates to address known vulnerabilities, but failing to apply updates, patches, or recommended security configurations to your local instance may expose it to known vulnerabilities.
Quick Start
Prerequisites
- Node.js 22.x
- TomTom API key
How to obtain a TomTom API key:
- Create a developer account on TomTom Developer Portal and Sign-in
- Go to API & SDK Keys in the left-hand menu.
- Click the red Create Key button.
- Select all available APIs to ensure full access, assign a name to your key, and click Create.
For more details, visit the TomTom API Key Management Documentation.
Installation
npm install @tomtom-org/tomtom-mcp@latest
# or run directly without installing
npx @tomtom-org/tomtom-mcp@latest
Configuration
Set your TomTom API key using one of the following methods:
# Option 1: Use a .env file (recommended)
echo "TOMTOM_API_KEY=your_api_key" > .env
# Option 2: Environment variable
export TOMTOM_API_KEY=your_api_key
# Option 3: Pass as CLI argument
TOMTOM_API_KEY=your_api_key npx @tomtom-org/tomtom-mcp@latest
Environment Variables
| Variable | Description | Default |
|---|---|---|
TOMTOM_API_KEY | Your TomTom API key | - |
MAPS | Backend to use: tomtom-maps (TomTom Maps) or tomtom-orbis-maps (TomTom Orbis Maps) | tomtom-maps |
PORT | Port for the HTTP server | 3000 |
LOG_LEVEL | Logging level: debug, info, warn, or error. Use debug for local development to see all logs | info |
Usage
Stdio Mode (Default - for AI assistants like Claude):
# Start MCP server via stdio
npx @tomtom-org/tomtom-mcp@latest
HTTP Mode (for web applications and API integration):
npm run build # Build first (required)
npm run start:http
# or run the built binary directly
node bin/tomtom-mcp-http.js
When running in HTTP mode, you need to include your API key in the tomtom-api-key header. You can also optionally set the maps backend per-request using the tomtom-maps-backend header:
tomtom-api-key: <API_KEY>
tomtom-maps-backend: tomtom-maps # or tomtom-orbis-maps
Note: The
tomtom-maps-backendheader is only used when the server is started without theMAPSenv var (dual-backend mode). IfMAPSis set at startup, the header is ignored and the server uses the fixed backend.
For example, to make a request using curl:
curl --location 'http://localhost:3000/mcp' \
--header 'Accept: application/json,text/event-stream' \
--header 'tomtom-api-key: <API KEY>' \
--header 'Content-Type: application/json' \
--data '{
"method": "tools/call",
"params": {
"name": "tomtom-geocode",
"arguments": {
"query": "Amsterdam Central Station"
}
},
"jsonrpc": "2.0",
"id": 24
}'
The Docker setup is also configured to use this HTTP mode with the same authentication method.
Docker Mode (recommended):
# Option 1: Using docker run directly
# Note: TomTom Maps is the default backend (same as npm package)
docker run -p 3000:3000 ghcr.io/tomtom-international/tomtom-mcp:latest
# To use TomTom Orbis Maps backend instead:
docker run -p 3000:3000 -e MAPS=tomtom-orbis-maps ghcr.io/tomtom-international/tomtom-mcp:latest
# Option 2: Using Docker Compose (recommended for development)
# Clone the repository first
git clone https://github.com/tomtom-international/tomtom-mcp.git
cd tomtom-mcp
# Start the service (uses TomTom Maps backend by default)
docker compose up
Both Docker options run the server in HTTP mode. Pass your API key via the tomtom-api-key header as shown in the HTTP Mode curl example above.
Integration Guides
TomTom MCP Server can be easily integrated into various AI development environments and tools.
These guides help you integrate the MCP server with your tools and environments:
- Claude Desktop Setup - Instructions for configuring Claude Desktop to work with TomTom MCP server
- VS Code Setup - Setting up a development environment in Visual Studio Code
- Cursor AI Integration - Guide for integrating TomTom MCP server with Cursor AI
- Windsurf Integration - Instructions for configuring Windsurf to use TomTom MCP server
- Smolagents Integration - Example showing how to connect Smolagents AI agents to TomTom MCP server.
Available Tools
TomTom Orbis Maps (optional backend)
By default the MCP tools use TomTom Maps APIs listed above. We also support using TomTom Orbis Maps for the same tools. To enable TomTom Orbis Maps for all tools set the environment variable MAPS=tomtom-orbis-maps.
Note: The Orbis Maps backend includes all the tools from TomTom Maps plus additional Orbis-exclusive tools:
tomtom-ev-routing,tomtom-search-along-route,tomtom-area-search,tomtom-ev-search, andtomtom-data-viz. Thetomtom-static-maptool is only available with the default TomTom Maps backend.
How dynamic map tool works
The dynamic map tool fetches raster tiles from TomTom (either TomTom Maps or TomTom Orbis Maps), then uses skia-canvas (server-side) to:
- stitch map tiles into a single canvas at the appropriate zoom level;
- add markers, routes, polygons, and other overlays;
- render the final composited image.
The server converts the rendered image to PNG and returns it as a Base64 string.
References:
- TomTom Map Tile API: https://developer.tomtom.com/map-display-api/documentation/raster/map-tile
- TomTom Orbis Maps Tile API: https://developer.tomtom.com/map-display-api/documentation/tomtom-orbis-maps/raster-tile
Debug UI
A built-in debug UI lets you visually test MCP tools and their interactive map widgets without needing an AI client.
Quick Start
npm run ui
This starts both the MCP HTTP server (port 3000) and the debug UI host (port 8080). Open http://localhost:8080 in your browser.
Features
- Tool browser — searchable sidebar listing all available tools, with icons distinguishing map-enabled tools from plain tools
- Pre-filled examples — each tool loads with example parameters (including
show_ui: truefor map widgets) - Live map widgets — tools with UI resources render interactive TomTom maps directly in the browser
- Response metadata — latency, payload size, estimated token count, content parts, and timestamps for every call
- Dark / light mode — toggle with the theme button or follows system preference
- Keyboard shortcuts —
Cmd+Enterto run,Cmd+Kto search tools
Requirements
- The MCP server must be running in HTTP mode (handled automatically by
npm run ui) - A valid
TOMTOM_API_KEYin your.envfile - To see map widgets, use the TomTom Orbis Maps backend (
MAPS=tomtom-orbis-mapsin.env)
Building the UI separately
npm run ui:build # Install deps + build the UI
cd ui && npm start # Start only the UI host (assumes MCP server is already running)
Local Development
Setup
git clone https://github.com/tomtom-international/tomtom-mcp.git
cd tomtom-mcp
npm install
cp .env.example .env # Add your API key in .env
npm run build # Build TypeScript files
node ./bin/tomtom-mcp.js # Start the MCP server
Testing
npm run build # Build TypeScript
npm test # Run all tests
npm run test:unit # Unit tests only
npm run test:all # All tests (unit + stdio + http)
Testing Requirements
⚠️ Important: All tests require a valid API key in .env as they make real API calls (not mocked). This will consume your API quota.
Project Structure
src/
├── apps/ # MCP App UI resources
├── handlers/ # Request handlers
├── schemas/ # Validation schemas
├── services/ # TomTom API wrappers
├── tools/ # MCP tool definitions
├── types/ # TypeScript type definitions
├── utils/ # Utilities
├── createServer.ts # MCP Server creation logic
├── index.ts # Main entry point (stdio)
└── indexHttp.ts # HTTP server entry point
Troubleshooting
API Key Issues
echo $TOMTOM_API_KEY # Check if set
Test Failures
ls -la .env # Verify .env exists
cat .env # Check API key
Build Issues
npm run build # Rebuild
npm cache clean --force # Clear cache
Contributing & Feedback
We welcome contributions to the TomTom MCP Server! Please see CONTRIBUTING.md for details on how to submit pull requests, report issues, and suggest improvements.
All contributions must adhere to our Code of Conduct and be signed-off according to the Developer Certificate of Origin (DCO).
Open issues on the GitHub repo
Security
Please see our Security Policy for information on reporting security vulnerabilities and our security practices.
License
This project is licensed under the Apache License 2.0 - see the LICENSE.md file for details.
Copyright (C) 2025 TomTom Navigation B.V.
Похожие серверы
Scout Monitoring MCP
спонсорPut performance and error data directly in the hands of your AI assistant.
Alpha Vantage MCP Server
спонсорAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
Authless Remote MCP Server
An authentication-free, remote MCP server designed for deployment on Cloudflare Workers.
UML-MCP-Server
Generate various UML diagrams from natural language or PlantUML code. Returns PlantUML code, image URLs, and saves diagrams locally.
Safe Local Python Executor
A tool for safely executing local Python code without requiring external data files.
Python MCP Server for Code Graph Extraction
Extracts and analyzes Python code structures, focusing on import/export relationships.
Claudeus WordPress MCP
A server for integrating with WordPress sites, enabling content management and interaction via the Model Context Protocol.
agentmem
Governed memory for coding agents with trust lifecycle, conflict detection, staleness tracking, and health scoring. SQLite + FTS5, zero infrastructure. Works with Claude Code, Cursor, Codex, Windsurf.
Clojure MCP
An MCP server providing a complete toolset for Clojure development, requiring a running nREPL server.
LLM API Benchmark MCP Server
Benchmark LLM APIs for throughput and Time To First Token (TTFT) under various concurrency levels.
Local Code Indexing for Cursor
A Python-based server that locally indexes codebases using ChromaDB to provide semantic search for tools like Cursor.
FLUX Image Generator
Generate images using Black Forest Lab's FLUX model.