Skip to main content
Glama
magiclane

Magic Lane MCP Server

Official
by magiclane

Magic Lane MCP Server

Introduction

The Magic Lane Model Context Protocol (MCP) Server enables any AI agent or application to become a geospatially intelligent assistant, capable of acting as a reliable companion for pedestrians, cyclists, and drivers alike.

Built on top of Magic Lane's advanced mapping and routing technology, this TypeScript-based MCP server empowers AI agents to:

  • Understand and process geospatial data,

  • Interpret user intent in a spatial context,

  • Deliver accurate, contextually relevant navigation guidance.

By leveraging Magic Lane's global map data and real-time geospatial intelligence, the MCP Server enables deeply personalized navigation and trip-planning experiences through core tools:

  • Intelligent Search - Find addresses, points of interest (POIs), or coordinates with intelligent search capabilities and POI category filtering.

  • Smart Routing - Generate optimized routes between multiple waypoints with support for various transport modes, route preferences, and dynamic POI integration.

  • Round Trip Planning - Create circular routes that start and end at the same location, perfect for jogging routes, cycling loops, or delivery runs.

  • Reverse Geocoding - Convert geographic coordinates into detailed address information including street name, city, state, country, and postal code.

  • Isochrone Analysis - Calculate reachability polygons showing areas accessible within specific time or distance constraints.

  • Route Visualization - Create visual map images of calculated routes, isochrones, and round trips for immediate geographical context and presentation.

  • Geofence Management - Create, manage, and query geographic boundaries for asset monitoring, location-based alerts, and spatial analysis with support for polygons, circles, and rectangles.

  • Interactive Map - Display an interactive vector tile map directly inside the conversation using MapLibre GL JS and MagicLane vector tiles. Supports location views, route visualization, isochrone overlays, round trip routes, search result markers, geofence areas, and custom coordinate paths — with one or many overlays per map and pan/zoom interactions.

The map functionalities can be visualized as high-quality map images through our new beta feature:

  • Static Map Rendering - Generate custom map views with markers, bounding boxes, or location-centered areas without route calculation, complementing route visualization for routes, isochrones, and round trips.

Together, these capabilities enable AI agents to act as true geospatial copilots - understanding spatial context, anticipating user needs, and optimizing every journey with precision and ease.

Transport Options: The server supports both stdio (for MCP-native clients like Claude Desktop) and HTTP (for web applications, serverless deployments, and custom integrations).

Magic Lane MCP Server Demo

Related MCP server: Mapbox MCP Server

Getting Started

Prerequisites

The Magic Lane MCP Server integrates seamlessly with any AI application or agent, providing access to geospatial data and navigation functionality. Before setup, ensure you have the following:

System Requirements:

  1. Node.js 22+ installed (Download here)

  2. npm (comes with Node.js)

  3. A valid Magic Lane API Key (for access to map data)

  4. An MCP-compatible AI client, such as:

Verify Prerequisites:

# Check Node.js version (should be 22+)
node --version

# Check npm version
npm --version

Quick Start

For immediate testing, use npx to run the server without installation:

# Set your API key as environment variable
export MAGICLANE_API_KEY="your_api_key"

# Run the server directly
npx @magiclane/mcp-server

API Key Setup

To obtain a Magic Lane API token, follow our step-by-step guide. The detailed steps are:

  1. Create a Magic Lane Account

  2. Generate an API Key

    • Log in to your account

    • Navigate to the Projects Dashboard

    • Follow the instructions to generate your unique API key, which will serve as your access token for the MCP Server

Installation

To explore and integrate the MCP Server locally, follow these steps to install dependencies and build the project:

# Clone or navigate to the Magic Lane MCP Server directory
cd path/to/magiclane-mcp

# Install dependencies
npm install

# Build the TypeScript project
npm run build

# Verify the build was successful
ls dist/  # Should show map-server.esm.js and other compiled files

Note: Ensure Node.js 22+ and npm are properly installed before running these commands.

Running the Server

Standard MCP Server (stdio transport):

# Option 1: Using .env file (recommended)
cp .env.example .env
# Edit .env with your actual API key
npm start

# Option 2: Using Node's built-in env file support
node --env-file=.env dist/map-server.esm.js

# Option 3: Using environment variable directly
MAGICLANE_API_KEY=your_api_key npm start

HTTP Server (for web and custom clients):

# Development mode (with auto-reload)
npm run dev:http

# Production mode (after build)
npm run start:http

For complete HTTP server documentation including endpoints, JSON-RPC examples, and client integration, see the HTTP Server Setup Guide.

Configuration

Configure your MCP client to connect to the Magic Lane server. Follow the detailed setup guide for your specific AI client:

Each guide includes:

  • Client-specific configuration file locations

  • Multiple installation options (local build, NPM, Docker)

  • Platform-specific instructions (Windows, macOS, Linux)

Docker

Build and run the server using Docker:

# Build the Docker image
docker build -t magiclane-mcp-server .

# Run the container (pass API key via environment variable)
docker run --rm -e MAGICLANE_API_KEY=your_api_key magiclane-mcp-server

# Or use an env file
docker run --rm --env-file .env magiclane-mcp-server

Environment Variables:

Variable

Required

Description

MAGICLANE_API_KEY

Yes

Your Magic Lane API key for authentication

VERBOSE

No

Set to true to print informational/debug/warning logs. Errors are always logged. Defaults to false.

HTTP_TIMEOUT_SECONDS

No

Timeout (in seconds) for outgoing Magic Lane API requests. Positive integer. Defaults to 30.

The container runs with --enable-source-maps for better stack traces in production.


Available Tools

The Magic Lane MCP Server provides several integrated geospatial tools that enable AI systems to search, plan, analyze, and visualize routes and locations.

Looking for rendered map images and live interactive map demos? See Visual Examples.

The Location Search Tool uses the Magic Lane Search REST API to find:

  • Coordinates, addresses, or administrative areas.

  • Points of Interest (POIs) around a reference location (restaurants, gas stations, pharmacies, etc.).

Input Parameters

Parameter

Type

Default

Description

text

string

-

Free-text query (e.g., POI name, address, or city)

target

string

-

Result type: pois (POIs), addresses (street addresses), or cities. Required.

poi_categories

array

-

POI category filters. Required when target is pois. Valid values: gas_stations, parking, food&drink, accommodation, medical_services, shopping, car_services, public_transport, sightseeing, etc.

reference_location

object

-

Geographic context: { coordinates: { longitude, latitude } } (preferred) and/or { location_text } (city/region/country name). At least one is required.

locale

string

"en"

Response language (ISO 639-2 / ISO 639-3 language code)

limit

number

5

Maximum number of results, ranked by relevance

Example Prompts

  • Urban Exploration & Tourism

    • "Search for authentic Italian restaurants in downtown Chicago within walking distance of Millennium Park."

    • "Where are the ATMs near Brandenburg Gate, Berlin?"

  • Business & Logistics

    • "Locate the closest 'DHL Service Point' near Berlin Central Station."

    • "Find all Starbucks locations within 1km of our office at 1 Market Street, San Francisco."

    • "Where are the parking garages near Amsterdam Central Station?"

  • Real Estate & Property

    • "Show all elementary schools near 456 Maple Avenue, Portland, Oregon with their exact distances from the property."

    • "Locate pharmacies, grocery stores, and public transport stops near the property at Baker Street 221B, London."

2. Routing Planner

The Routing Planner Tool generates optimized routes between multiple points using the Magic Lane Routing REST API and the Magic Lane Fleet Management Rest API. This tool supports the following capabilities:

  • Point-to-point and multi-stop routing (A -> B -> C).

  • Inclusion of POIs (e.g., gas stations, restaurants).

  • Advanced VRP optimization for multi-delivery routes.

  • Traffic, restriction, and terrain considerations.

  • Multilingual route instructions.

Input Parameters

Parameter

Type

Default

Description

transport

string

"car"

Transport type (car, lorry, truck, pedestrian, bike, public)

type

string

"fastest"

Optimization objective. fastest/shortest work for all transport modes. economic is eBike-only — requires transport: "bike" and a pedelec/spedelec vehicle.profile. scenic is not valid for transport: "bike".

origin

string

-

Start location (name or coordinates)

destination

string

-

End location (name or coordinates)

intermediate_waypoints

array

[]

List of stops between start and end. Order determines route generation. Each waypoint defines specific preferences and constraints

avoid

array

[]

Elements to avoid (highway, toll, ferry, unpaved, turnaround, traffic, roadblocks)

vehicle

object

null

Vehicle characteristics including dimensions, weight, fuel type, EV parameters and profile preference. See Vehicle Specification for complete details.

details

string

"full"

Response detail level: full (geometry + turn-by-turn), path (geometry only), timedistance (totals only)

number_of_routes

number

1

Number of routes (1-3 for car/truck/bike/pedestrian; 1-11 for public transport)

fitness_factor

number

0.5

Bike / pedestrian terrain effort tolerance, 0.0 (easy) to 1.0 (strenuous)

emergency

boolean

false

Enable emergency-vehicle routing (relaxes certain traffic restrictions)

locale

string

"en"

Turn-by-turn instruction language (ISO 639-2 / ISO 639-3 language code)

Intermediate Waypoint Structure

Each entry in intermediate_waypoints represents one stop. The type discriminator determines the shape of waypoint and which fields apply:

Parameter

Type

Default

Description

type

string

-

Stop shape discriminator. One of: coordinates (fixed point), address (resolved from a free-text place/address), reference_poi (POI resolved near a reference location), along_route_poi (POI category search along the route corridor).

waypoint

object

-

Location data. Shape must match type: for coordinates, provide coordinates: { longitude, latitude }; for address/reference_poi/along_route_poi, provide location with search parameters (text, target, reference_location, and poi_categories when the target is pois).

max_poi_deviation

number

1000

Maximum perpendicular distance from the route polyline (in meters) to consider POI candidates. Applies only to along_route_poi.

location_poi_preference

string

"no matter"

Placement hint for along_route_poi stops. One of: based on reference location, midpoint of the route, after some distance from departure, no matter.

location_poi_distance

number

-

Numeric placement hint. When location_poi_preference is after some distance from departure and represent number of meters from departure. Ignored otherwise.

Example Prompts

  • International Travel & Tourism

    • "Generate a scenic bike route from Vienna to Bratislava, avoiding highways."

    • "Plan a road trip from Munich to Venice with stops at Innsbruck and Bolzano, optimized for scenic views."

  • Public Transit & Commuting

    • "Find a public transport route from London to Oxford with minimal transfers."

    • "What's the quickest way to get from JFK Airport to Manhattan using public transport?"

  • Multi-Stop Sightseeing & Events

    • "Create a walking tour from the Colosseum to the Trevi Fountain, stopping at the Pantheon and a gelato shop."

    • "I'm at the Eiffel Tower and need to visit Notre-Dame, Louvre Museum, and return to my hotel near Gare du Nord. Plan the best route by car."

  • Emergency & Priority Routing

    • "Find the fastest route from St. John Ambulance Station, Westminster to General Hospital, avoiding traffic and roadblocks."

    • "Calculate the quickest route for emergency services from Fire Station 23 to the reported incident at Pike Place Market."

  • Electric Vehicle Routing

    • "I'm driving a Tesla Model 3 with 60% battery from San Francisco to Los Angeles. Find the optimal route with necessary charging stops, ensuring I arrive with at least 20% charge."

    • "Calculate a route for my electric van (80 kWh battery, 250km range) from Berlin to Prague with fast-charging stops along the way."

3. Isochrone Calculator

The Isochrone Calculator Tool provides spatial analysis to determine all areas reachable from a reference point within specific travel time or distance constraints using the Magic Lane Isochrones REST API. This enables AI systems to analyze accessibility zones, service coverage areas, and reachability studies.

Key Features:

  • Calculate reachability polygons based on time or distance constraints

  • Support for multiple transport modes (walking, cycling, driving, public transport)

  • Departure location resolution through coordinates or geocoding

  • Multi-range analysis for complex accessibility studies

Input Parameters

Parameter

Type

Default

Description

transport

string

"car"

Transport mode (car, lorry, truck, pedestrian, bike, public)

type

string

"fastest"

Cost model and units for ranges. fastest/shortest work for all transport modes. economic is eBike-only — requires transport: "bike" AND a pedelec/spedelec vehicle.profile. scenic is NOT valid for transport: "bike".

departure

object

-

Origin point: { coordinates: { longitude, latitude } } or { location: { text, ... } }

ranges

array

-

One or more thresholds. Seconds when type is fastest/economic/scenic; meters when type is shortest. All values positive.

avoid

array

[]

Elements to avoid (highway, toll, ferry, unpaved, turnaround, traffic, roadblocks)

vehicle

object

null

Vehicle characteristics including dimensions, weight, fuel type, EV parameters and profile preference. See Vehicle Specification for complete details.

locale

string

"en"

Result language (ISO 639-2 / ISO 639-3 language code)

Example Prompts

  • "Where can I cycle to in 45 minutes from Amsterdam Central Station?"

  • "Display all areas within a 10-minute walk from Atlantic Avenue-Barclays Center Station in Brooklyn."

  • "Display the 1-hour driving catchment area from the proposed warehouse location in Frankfurt."

4. Round Trip Planner

The Round Trip Planner Tool generates circular routes that start and end at the same location. This tool is perfect for creating exploration routes, cycling loops, jogging paths, and delivery runs.

Key Features:

  • Circular routes with guaranteed return to starting point

  • Time-based or distance-based route generation

  • Support for multiple transport modes (walking, cycling, driving)

  • Terrain and hill skip preferences for cyclists

  • Customizable route length and complexity

Input Parameters

Parameter

Type

Default

Description

transport

string

"car"

Transport mode (car, lorry, truck, pedestrian, bike, public)

type

string

"fastest"

Optimization objective and units for range. fastest/shortest work for all transport modes. economic is eBike-only — requires transport: "bike" AND a pedelec/spedelec vehicle.profile. scenic is NOT valid for transport: "bike".

departure

object

-

Loop start AND end point: { coordinates: { longitude, latitude } } or { location: { text, ... } }

range

number

-

Target loop size. Seconds when type is fastest/economic/scenic; meters when type is shortest. Must be positive.

avoid

array

[]

Elements to avoid (highway, toll, ferry, unpaved, turnaround, traffic, roadblocks)

terrain

boolean

false

Include elevation/terrain profile in the response

departure_time

number

0

Departure time as Unix epoch seconds; 0 uses the server-side current time

profile

string

-

Top-level sub-profile shortcut for bike (city, road, cross, mountain, optionally suffixed _pedelec/_spedelec) or pedestrian (walk, hike). If vehicle.profile is also set, vehicle.profile wins.

vehicle

object

null

Vehicle characteristics including dimensions, weight, fuel type, EV parameters and profile preference. See Vehicle Specification for complete details.

random_seed

number

0

Integer seed for reproducible loop generation

locale

string

"en"

Response language (ISO 639-2 / ISO 639-3 language code)

Example Prompts

  • Fitness & Recreation

    • "Create a 10km jogging loop starting from Central Park."

    • "Design a 90-minute bike ride loop from Stephansplatz."

  • Tourism & Exploration

    • "Generate a 45-minute walking loop from the Eiffel Tower."

    • "Plan a 2-hour walking loop starting from Times Square."

  • Cycling Routes

    • "Create a 25km bike loop from Whistler Village, avoiding highways."

    • "Design a 1-hour cycling loop from Golden Gate Park using the shortest route."

5. Reverse Geocoding

The Reverse Geocoding Tool converts geographic coordinates or areas into detailed address information using the Magic Lane Reverse Geocoding REST API. This tool provides comprehensive address components for various spatial queries.

Key Features:

  • Point-to-address conversion for specific coordinates

  • Search around a point, within an area, or along a path

  • Returns multiple address results with distance ranking

  • Includes administrative hierarchy (settlement, city, county, state, country)

  • Identifies nearby points of interest

Input Parameters

Parameter

Type

Default

Description

coordinates

object

-

Specific coordinate point { longitude, latitude } for address lookup

insideArea

object

-

Area definition: bounding box (bbox) with east, west, north, south boundaries; circular area with center and radius meters; or polygon from polyline string or coordinate array (minimum 3 points)

along

object

-

Path definition (encoded polyline or coordinates) with radius in meters to find addresses along

limit

number

5

Maximum number of results to return

locale

string

"en"

Result language (ISO 639-2 / ISO 639-3 language code)

Example Prompts

  • "What's the address at coordinates 51.5074, -0.1278?"

  • "Find all addresses within a 500-meter radius of the Brandenburg Gate."

6. Geofence Manager

The Geofence Manager Tool provides comprehensive geofence operations for defining and managing geographic boundaries, enabling location-based services and asset monitoring. This tool supports creating, retrieving, updating, deleting geofences, and checking if points fall within defined boundaries.

Key Features:

  • Create geofences with polygon, circle, or rectangle geometries

  • Query geofences by ID, within bounding boxes, or by proximity to a point

  • Update geofence properties (name, keywords)

  • Delete geofences by ID

  • Check if specific coordinates fall inside geofences

  • Support for custom metadata and tags

Operations & Parameters

Create Operation - Create one or more geofences with the following parameters:

Parameter

Type

Default

Description

id

string

-

Custom identifier (auto-generated if not provided)

name

string

-

Human-readable name

keywords

array

[]

Tags for search and filtering

properties

object

-

Additional custom metadata

geojson_type

string

-

Geometry type: polygon, circle, or rectangle

geojson_area

object

-

Area definition (polygon coordinates, circle center/radius, or bbox)

Read Operation - Retrieve one or more geofences with the following parameters:

Parameter

Type

Default

Description

geofence_ids

array

-

Array of geofence IDs to retrieve

box_limited

object

-

Bounding box filter (north, south, east, west)

proximity_area

object

-

Search geofences near a point (reference_point, distance, limit)

Update Operation - Modify properties of an existing geofence with the following parameters:

Parameter

Type

Default

Description

geofence_id

string

-

ID of geofence to update

name

string

-

Human-readable name to update the geofence

keywords

array

[]

Updated keywords/tags for geofence area

Delete Operation - Remove one or more geofences with the following parameters:

Parameter

Type

Default

Description

geofence_ids

array

-

Array of geofence IDs to delete

Check Point Operation - Determine if coordinates fall within geofences with the following parameters:

Parameter

Type

Default

Description

geofence_ids

array

-

Array of geofence IDs to check against

points

array

-

Array of locations to test; each entry uses coordinates: { longitude, latitude } or location (search parameters)

Example Prompts

  • Asset Monitoring & Tracking

    • "Create a circular geofence with 500m radius around our warehouse at 123 Main Street, Chicago."

    • "Is the delivery vehicle at coordinates 40.7589, -73.9851 inside of Main Street zone geofence?"

  • Restricted Area Management

    • "Create a rectangular 'construction-zone-1' geofence covering downtown Seattle bounded by these coordinates: north 47.6205, south 47.5990, east -122.3250, west -122.3450."

    • "Update the 'construction-zone-1' geofence to include 'temporary' and 'high-priority' keywords."

  • Service Area & Delivery Zones

    • "Create three circular delivery zone geofences: 'berlin-warehouse-1' at coordinates 13.3777, 52.5163 with 2km radius, 'berlin-warehouse-2' at 13.4050, 52.5200 with 1.5km radius, and 'berlin-warehouse-3' at 13.3888, 52.5170 with 2.5km radius."

    • "Show me all geofences within 2km of Brandenburg Gate at coordinates 13.3777, 52.5163."

    • "Retrieve all geofences with IDs: 'zone-premium-01', 'zone-premium-02', and 'zone-premium-03' that are tagged with 'premium-service'."

  • Location-Based Alerts

    • "Delete the temporary event geofences with IDs: 'summer-festival-2025-main', 'summer-festival-2025-parking', and 'summer-festival-2025-stage' now that the event is over."

    • "List all geofences within the bounding box covering Manhattan: north 40.8820, south 40.7006, east -73.9070, west -74.0479."

    • "Find all geofences near Times Square within 1000 meters and show their names and keywords."

7. Static Map Renderer

The Renderer Tool generates static map images of calculated routes, isochrones, round trips, and custom map views using the Magic Lane rendering service. It delivers immediate visual context by overlaying geographic data on a map and returning the result as an embedded image.

Key Features:

  • Renders routes, isochrones, and round trips as PNG, JPEG, or WebP images

  • Automatically calculates the optimal viewport to frame all relevant data

  • Generates static map views centered on a location or bounded by custom coordinates

  • Delivers images directly to the MCP client as base64-encoded data; for routing, isochrone, and round_trip a JSON text block with the underlying route details accompanies the image, so no separate calculation call is needed

Input Parameters

Parameter

Type

Default

Description

render_type

string

-

Visualization type: routing, isochrone, round_trip, or map_location

output_format

string

"image/png"

Output image format: image/png (default), image/jpeg, or image/webp

parameters

object

-

Parameters matching the selected render_type. For routing, isochrone, and round_trip, accepts the same parameters as the respective calculation tool. For map_location: width (px, default 800), height (px, default 600), corners ([minLon, minLat, maxLon, maxLat]) to fit a bounding box, or around_location (referenceLocation + distance radius in meters, default 500) to center on a point.

Example Prompts

  • Route representation

    • "I'm at 10 Downing Street, London - please show a driving route to St Paul's Cathedral."

  • Round Trip representation

    • "Visualize a 5.5km jogging route starting from the Rijksmuseum in Amsterdam."

  • Isochrone representation

    • "Please display a map of Paris with a 15-minute walking isochrone."

  • Static Map representation

    • "Display a wide view of Miami, including beach and the Art Deco Historic District."

See Visual Examples for rendered output of these prompts.

8. Interactive Map

The Interactive Map Tool renders MagicLane vector tiles in a fully interactive map directly inside the conversation using MapLibre GL JS and MCP Apps. Unlike the static renderer, users can pan, zoom, and explore the map widget without leaving the chat client.

Key Features:

  • Streams live vector tiles from MagicLane's global map service

  • Automatically fits the viewport to the displayed data: location, route, isochrone, round trip, search results, geofence areas, or a custom coordinate path

  • Draws one or many overlays on the same map (routes, isochrones, geofences, paths) - each shape in its own color

  • Supports pan and zoom interactions within MCP Apps-compatible clients

Input Parameters

Parameter

Type

Default

Description

zoom

number

12

Map zoom level (0 = world view, 16 = street level). Ignored for routing, isochrone, round_trip, and path (and whenever multiple overlays are drawn) - viewport is auto-fitted to the data.

overlayParameters

array

-

Overlays to draw (at least one entry). Each entry is an object { display_type, parameters }. Pass a single entry for one overlay, or several to draw them all on the same map - entries may repeat a type (e.g. two routing entries for two routes) or mix types (e.g. a route plus an isochrone plus geofences). Every drawn shape is automatically given a distinct color.

Each overlayParameters entry has:

Field

Type

Description

display_type

string

Display mode: location, routing, isochrone, round_trip, search_results, geofence, or path

parameters

object

Accepts the same parameters as the corresponding calculation tool, and must match this entry's display_type. Renders routes with full path visualization, reachability polygons as shaded areas, or circular routes with marked start/end points, depending on the selected display_type. For display_type: path, pass coordinates as an array of [longitude, latitude] points (at least 2) plus an optional label to draw the polyline as-is.

Example Prompts

  • Location View

    • "Show me an interactive map centered on the Eiffel Tower"

    • "Display an interactive map of downtown Tokyo."

  • Route Visualization

    • "Show an interactive map of the driving route from Amsterdam to Brussels."

    • "Display a bike route from Central Park to Brooklyn Bridge on an interactive map, including a stop to pharmacy."

  • Isochrone Overlay

    • "Show on an interactive map everywhere I can reach by car in 30 minutes from Berlin Central Station."

    • "Display a walking isochrone of 20 minutes from Trafalgar Square on an interactive map."

  • Round Trip

    • "Show a 10 km jogging loop from Vondelpark on an interactive map."

  • Search Results

    • "Show all coffee shops near the Louvre on an interactive map."

    • "Display restaurants within 1 km of Notre-Dame on an interactive map."

  • Custom Path

    • "Draw this GPS track on an interactive map: [[2.35, 48.85], [2.34, 48.86], [2.33, 48.87]]."

    • "Plot a line on an interactive map, label it 'Delivery run', using [[11.8793, 46.4372], [11.8694, 46.4329], [11.8597, 46.4339], [11.8504, 46.4341], [11.8406, 46.4187], [11.8378, 46.4149], [11.8437, 46.4103]] coordinates."

Browse runnable HTML demos for each display_type in Visual Examples.


Troubleshooting

Common Issues

Server Won't Start

# Check if Node.js version is 22+
node --version

# Verify API key is set
echo $MAGICLANE_API_KEY

# Check for build errors
npm run build

API Key Issues

  • Ensure your API key is valid and active in the Magic Lane Dashboard

  • Verify the environment variable is correctly set: MAGICLANE_API_KEY=your_key

  • Check for extra spaces or quotes in the API key

Connection Problems

  • Verify your MCP client configuration matches the server path

  • Ensure the server is running before connecting the client

  • Check firewall settings if using remote connections

Rate Limiting

  • Magic Lane API has rate limits; check your dashboard for current usage

  • Implement request caching for frequently accessed routes

  • Consider upgrading your API plan if limits are exceeded

Common Error Messages

  • Unauthorized access (401): Invalid API key. Check your configuration.

  • No results found (404): The location could not be found. Try a different query.

  • Too many requests (429): Rate limit exceeded. Check your usage dashboard.

  • Bad request (400): Invalid parameters. Check your input format.

Privacy Policy

Magic Lane is committed to protecting your privacy and handling your data responsibly. For complete privacy information, see our full privacy policy: https://www.magiclane.com/web/terms-and-conditions#privacy

Data Collection

  • Query data: Location search terms, route origins/destinations, and coordinates submitted through the MCP server are transmitted to Magic Lane's API for processing. They are not stored or logged by Magic Lane after the response is delivered.

  • API key: Your API key is transmitted with every request solely for authentication and rate limiting. It is never shared with third parties.

  • No user profiling: Magic Lane does not build user profiles, track usage patterns across sessions, or correlate individual requests.

How Data Is Used

  • All requests are processed in real-time to generate the requested geospatial response (route, search result, isochrone, etc.).

  • Processed data is immediately discarded after the response is delivered.

  • Map rendering is performed dynamically; generated images are not retained after transmission.

Data Storage & Retention

  • Magic Lane does not persistently store the content of routing requests, location queries, search parameters, or reverse geocode inputs.

  • No session data or request history is retained on Magic Lane servers.

Third-Party Data

  • Magic Lane uses OpenStreetMap data and other publicly available geographic datasets

  • No personal or proprietary location data is shared with third parties

  • Traffic and routing data is aggregated and anonymized at the source

For detailed information, review our Terms of Service and Privacy Policy.


Support

Available Tools

8 tools
geofence_managerGeofence ManagerA
Destructive

Manage geofences and perform spatial queries for asset monitoring and location-based services.

Supports operations:

  • check_point: Test if locations are inside geofence(s) (uses CheckPointsInGeofencesSchema)

  • create: Define new geofence(s) with polygon, circle, or rectangle geometries (uses CreateGeofenceParametersSchema)

  • read: Retrieve geofences by IDs or within a bounding box (uses GetGeofencesParametersSchema)

  • update: Modify existing geofence properties (uses UpdateGeofenceParametersSchema)

  • delete: Remove geofence(s) by ID(s) (uses DeleteGeofenceParametersSchema)

ParametersJSON Schema
NameRequiredDescriptionDefault
operationYesGeofence operation to perform. Exactly one of: "create": define new geofence(s); use CreateGeofenceParametersSchema. "read": fetch existing geofences by ID or area; use GetGeofencesParametersSchema. "update": modify metadata of an existing geofence; use UpdateGeofenceParametersSchema. "delete": remove geofence(s) by ID; use DeleteGeofenceParametersSchema. "check_point": test whether one or more points lie inside the given geofence(s); use CheckPointsInGeofencesSchema.
parametersNoOperation-specific parameters. MUST match `operation`: "create": CreateGeofenceParametersSchema; "read": GetGeofencesParametersSchema; "update": UpdateGeofenceParametersSchema; "delete": DeleteGeofenceParametersSchema; "check_point": CheckPointsInGeofencesSchema.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as destructive (destructiveHint: true) and not idempotent. The description adds operational details like 'delete' but does not elaborate on behavioral nuances (e.g., what happens on failure, rate limits, or side effects). It aligns with annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two introductory sentences followed by a clear bullet list of operations. It front-loads the core purpose and uses efficient, scannable formatting. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multiple operations, no output schema), the description is adequate but not exhaustive. It explains what the tool does and lists operations, but does not describe the return format or success/failure behavior. The rich input schema partially compensates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters. The description adds high-level operation names but no deeper semantic meaning beyond what the schema already provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: managing geofences and performing spatial queries. It lists five specific operations (check_point, create, read, update, delete), each with a direct verb and resource. This distinguishes it from sibling tools like interactive_map or route_planner, which serve different functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly indicates usage through the listed operations, but it does not explicitly say when to use this tool versus alternatives. No comparison to siblings or exclusion criteria are provided. The agent must infer from the tool's name and operation list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

interactive_mapInteractive MapC

Display an interactive map using MagicLane vector tiles and MapLibre GL JS directly in the conversation. Supports multiple display types: location view, route visualization with stops, isochrone reachability areas, round trip routes, and search result markers. The map supports pan, zoom, and click interactions.

ParametersJSON Schema
NameRequiredDescriptionDefault
display_typeYesWhat to show on the interactive map. Exactly one of: "location": single point with optional label (default; use LocationDisplayParametersSchema). "routing": calculated route with origin/destination/stops (use RoutingParametersSchema). "isochrone": reachability polygon from a departure point (use IsochroneParametersSchema). "round_trip": circular loop from a departure point (use RoundTripParametersSchema). "search_results": POI/address search results as markers (use SearchParametersSchema).
zoomNoInitial map zoom level in [0, 16]. 0 = whole world, 8 = country, 12 = city (default), 14 = neighborhood, 16 = street. IGNORED when display_type is "routing", "isochrone", or "round_trip" - those auto-fit to data bounds.
parametersYesParameters for the chosen `display_type`. Shape MUST match `display_type`: "location": LocationDisplayParametersSchema; "routing": RoutingParametersSchema; "isochrone": IsochroneParametersSchema; "round_trip": RoundTripParametersSchema; "search_results": SearchParametersSchema.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden. It only mentions interactivity (pan, zoom, click) but does not disclose read-only nature, data requirements, or any side effects. This is insufficient for an agent to understand system impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with only two sentences that front-load the main purpose and capabilities. Every word adds value, making it efficient for agent comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high complexity (multiple display types, nested parameters) and no output schema, the description is insufficient. It does not explain return format, rendering behavior, or how results are presented to the user.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already provides detailed parameter descriptions. The tool description adds minimal extra meaning beyond listing display types. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool displays an interactive map using specific technologies (MagicLane, MapLibre GL JS) and lists supported display types. However, it does not differentiate from sibling tool static_map_render, which also renders maps, causing potential ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like route_planner, isochrone_calculator, or static_map_render. The description lacks when-to-use or when-not-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

isochrone_calculatorIsochrone CalculatorA
Read-only

Generate isochrone polygons (areas reachable within a certain time or distance) from a given starting point. Accepts either coordinates or a place/address name. If an address is provided, this tool will internally convert it to coordinates. Useful for finding reachable areas for driving, walking, or cycling.

ParametersJSON Schema
NameRequiredDescriptionDefault
transportNoTransport mode used to compute reachability. Exactly one of: "car" (default), "lorry"/"truck", "pedestrian", "bike", "public".car
typeNoCost model and units for the values in `ranges`. Exactly one of: "fastest" — `ranges` interpreted as SECONDS of travel time (default; valid for all transport modes). "shortest" — `ranges` interpreted as METERS of travel distance (valid for all transport modes). "economic" — energy-minimizing cost model; VALID ONLY for e-bikes (requires transport="bike" AND `vehicle.profile` set to a pedelec/spedelec sub-profile such as "city_pedelec"). Range units same as "fastest". Do NOT use for cars, trucks, regular bikes, or pedestrians. "scenic" — prefers scenic roads; valid for car, truck/lorry, and pedestrian. NOT valid for transport="bike". Range units same as "fastest".fastest
departureYesOrigin point from which reachability is computed. Provide "coordinates" (longitude, latitude) when known, or "location" to resolve from a place/address.
rangesYesOne or more range thresholds; each produces a separate isochrone polygon. UNITS depend on `type`: SECONDS when type="fastest"/"economic"/"scenic", METERS when type="shortest". Example: [600, 1800, 3600] with type="fastest": 10 min, 30 min, 60 min reachable areas. All values must be positive.
avoidNoRoad features to exclude. Array of zero or more of: "highway", "toll", "ferry", "unpaved", "turnaround", "traffic", "roadblocks". Empty array (default) means avoid nothing.
localeNoISO 639-2 / ISO 639-3 language code for any place names in the response. Default "en".en
vehicleNoVehicle profile used to apply road restrictions and energy modelling to the reachability calculation. REQUIRED for transport="truck"/"lorry" (dimensions/weight to avoid restricted roads). REQUIRED for electric vehicles (set `vehicle.fuel="electric"` and `vehicle.ev` for range-aware isochrones). REQUIRED for bike with type="economic" — set `vehicle.profile` to a pedelec/spedelec eBike variant. OPTIONAL for car/regular-bike/pedestrian — defaults apply when omitted.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true (read-only) and openWorldHint=true (external data). The description adds value by noting that addresses are internally converted to coordinates, which is a behavioral detail not in annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no wasted words. It front-loads the core purpose, then explains input flexibility, and ends with a use-case statement. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, nested objects, no output schema), the description is minimal. It does not explain output format (polygons) beyond the first sentence, nor provide usage tips for specific parameters like ranges or transport. However, the comprehensive schema descriptions partially compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all parameters have descriptions in the schema). The description mentions that the tool accepts coordinates or addresses, but this is already detailed in the schema. Thus, the description adds minimal additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states that the tool generates isochrone polygons (areas reachable within a time or distance) from a starting point. It clearly distinguishes from siblings like route_planner (which provides point-to-point routes) by focusing on reachable areas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions usefulness for driving, walking, or cycling, implying the tool is for reachability analysis. However, it does not explicitly state when to use this tool versus alternatives (e.g., route_planner for routes, geofence_manager for boundaries) or when not to use it. No exclusions or alternatives are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_geocodeReverse GeocodeA
Read-only

Convert geographic coordinates to detailed address information (reverse geocoding). Supports single-point lookup, area-based search within a radius, and address lookup along a path or route. Requires at least one of: coordinates, insideArea, or along parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
coordinatesNoSingle point to reverse-geocode into an address. MOST COMMON mode. Provide EXACTLY one of `coordinates`, `insideArea`, or `along`.
insideAreaNoReturn addresses found INSIDE the given shape (bbox, circle, or polygon). Use for area-coverage queries (e.g. "list all addresses in this neighborhood"). Provide EXACTLY one of `coordinates`, `insideArea`, or `along`.
alongNoReturn addresses found ALONG a path within a given radius. Use for corridor queries (e.g. "addresses along this route"). Provide EXACTLY one of `coordinates`, `insideArea`, or `along`.
limitNoMaximum number of address results to return, ranked by relevance. Positive integer. Default 5.
localeNoISO 639-2 / ISO 639-3 language code for returned address fields (e.g. "en", "de", "fr"). Default "en".en

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, indicating safety. The description adds the three modes and parameter requirement but does not disclose any additional behavioral traits like output size, rate limits, or potential errors. Given the annotations, the description provides some context but not beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, front-loaded with the core purpose, and contains no unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, nested objects) and the detailed schema, the description covers the essential modes and requirements. It lacks some nuance (e.g., output description) but is sufficient for an agent with schema context. Could mention return type briefly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so each parameter is well-documented. The tool description adds high-level mode guidance but does not add meaning beyond what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool converts geographic coordinates to address information, specifying three distinct modes (single-point, area, along path). This distinguishes it from sibling tools like location_search (forward geocoding) without needing explicit comparison.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the required parameter condition (at least one of coordinates, insideArea, along), guiding the agent on input requirements. However, it does not contrast with similar sibling tools (e.g., when to prefer reverse_geocode over location_search), missing an opportunity for clearer differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

round_tripRound TripA
Read-only

Generate a circular round-trip route that starts and ends at the same location. Accepts a starting point as coordinates or place name, with a range parameter for time-based (seconds) or distance-based (meters) loop extent. Returns route geometry, distance, and duration for the circular route.

ParametersJSON Schema
NameRequiredDescriptionDefault
transportNoTransport mode for the round trip. Exactly one of: "car", "lorry"/"truck", "pedestrian", "bike" (default for leisure loops), "public".car
typeNoOptimization objective and units for `range`. Exactly one of: "fastest" — `range` interpreted as SECONDS of travel time (default; valid for all transport modes). "shortest" — `range` interpreted as METERS of travel distance (valid for all transport modes). "economic" — energy-minimizing cost model; VALID ONLY for e-bikes (requires transport="bike" AND `vehicle.profile` set to a pedelec/spedelec sub-profile such as "city_pedelec"). Range units same as "fastest". Do NOT use for cars, trucks, regular bikes, or pedestrians. "scenic" — prefers scenic roads; valid for car, truck/lorry, and pedestrian. NOT valid for transport="bike". Range units same as "fastest".fastest
departureYesStart AND end point of the loop (round trips begin and end at the same location). Provide `coordinates` (longitude, latitude) when known, or `location` to resolve from a place/address.
avoidNoRoad features to exclude. Array of zero or more of: "highway", "toll", "ferry", "unpaved", "turnaround", "traffic", "roadblocks". Empty array (default) means avoid nothing.
number_of_routesNoNumber of distinct loop variants to return. Range: 1-3 for car/truck/bike/pedestrian; 1-11 for transport="public". Default 1. Use >1 to offer the user a few different loops of similar length.
terrainNoWhen true, include an elevation/terrain profile alongside the route geometry. Default false. Enable for hiking/cycling routes where elevation matters.
rangeYesTarget size of the loop. Must be positive. UNITS depend on `type`: SECONDS when type="fastest"/"economic"/"scenic", METERS when type="shortest". Example: range=3600 with type="fastest" for 1-hour loop.
random_seedNoInteger seed for the route-generation randomizer. Use the same seed to reproduce a loop; change it to get a different loop with the same parameters.
localeNoISO 639-2 / ISO 639-3 language code for place names in the response. Default "en".en
departure_timeNoDeparture time as a Unix epoch timestamp in SECONDS (not milliseconds). Pass 0 (default) to use the server-side current time. Used for traffic-aware and time-dependent routing.
profileNoDetailed sub-profile for bike/pedestrian modes. For transport="bike": "city" (default), "road", "cross", "mountain". For e-bikes append "_pedelec" (≤25 km/h) or "_spedelec" (≤45 km/h). For transport="pedestrian": "walk" (default) or "hike". Ignored for car/truck/public. Shortcut for `vehicle.profile`; if both are set, `vehicle.profile` takes precedence.city
vehicleNoVehicle profile used to apply road restrictions and energy modelling to the loop. REQUIRED for transport="truck"/"lorry" (dimensions/weight to avoid restricted roads). REQUIRED for electric vehicles (set `vehicle.fuel="electric"` and `vehicle.ev` for range-aware loops). REQUIRED for bike with type="economic" — set `vehicle.profile` to a pedelec/spedelec eBike variant. OPTIONAL for car/regular-bike/pedestrian — defaults apply when omitted. When `vehicle.profile` is set it overrides the top-level `profile` field.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true and openWorldHint=true, so the description need not repeat. It adds behavior: accepts coordinates or place name, range parameter, returns geometry/distance/duration. No contradictions; 'Generate' aligns with read-only computation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, no wasted words. Efficiently summarizes key aspects without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given complex parameters and nested objects, the description provides a sufficient high-level summary. It mentions return values (geometry, distance, duration) despite no output schema. Could be slightly more detailed but schema covers individual parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline 3. The description adds high-level context (starting point, range units) but does not provide deep semantics beyond the schema's already thorough descriptions. Appropriate for the coverage level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it generates a circular round-trip route starting and ending at same location, with specific verb 'Generate' and resource 'route'. It distinguishes from siblings like route_planner (point-to-point) and isochrone_calculator (area) by emphasizing the loop nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for generating round trips but does not explicitly state when to use or not use this tool versus alternatives like route_planner for point-to-point. No exclusion or context for when other tools are better.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

route_plannerRoute PlannerA
Read-only

Calculate optimized routes between two or more locations for car, bicycle, or pedestrian transport modes. Supports multi-stop routing with automatic waypoint resolution from place names or coordinates. Returns turn-by-turn instructions, distance, duration, and route geometry.

ParametersJSON Schema
NameRequiredDescriptionDefault
transportNoTransport mode used to compute the route. Exactly one of: "car" (passenger car, default; supports type="fastest"|"shortest"|"scenic"), "lorry" or "truck" (heavy goods vehicle — set the `vehicle` field with dimensions/weight; supports type="fastest"|"shortest"|"scenic"), "pedestrian" (walking; supports type="fastest"|"shortest"|"scenic"), "bike" (bicycle — use `fitness_factor` and `vehicle.profile`; supports type="fastest"|"shortest"; type="economic" REQUIRES an eBike `vehicle.profile` (pedelec/spedelec variant); type="scenic" is NOT supported), "public" (public transport: bus/train/tram; supports type="fastest"|"shortest").car
typeNoRoute optimization objective. Exactly one of: "fastest" (minimize travel time, default; valid for all transport modes). "shortest" (minimize distance; valid for all transport modes). "economic" (minimize energy use; VALID ONLY for e-bikes — requires transport="bike" AND `vehicle.profile` set to one of the eBike sub-profiles: "road_pedelec", "cross_pedelec", "city_pedelec", "mountain_pedelec" (or the "_spedelec" 45 km/h variants). Do NOT use for cars, trucks, regular bikes, or pedestrians). "scenic" (prefer scenic roads at the cost of travel time; valid for car, truck/lorry, and pedestrian. NOT valid for transport="bike" — bicycle routing has no scenic cost model. Use "fastest" for bikes and tune `fitness_factor`/`vehicle.profile` instead).fastest
originYesRoute start point. Provide `coordinates` (longitude, latitude) when known - preferred for accuracy. Otherwise provide `location` to resolve the start from a place name or address.
destinationYesRoute end point. Provide `coordinates` (longitude, latitude) when known - preferred for accuracy. Otherwise provide `location` to resolve the end from a place name or address.
avoidNoRoad features to exclude from the route. Array of zero or more of: "highway" (motorways), "toll" (toll roads), "ferry", "unpaved" (dirt/gravel), "turnaround" (U-turns), "traffic" (heavy-traffic segments), "roadblocks" (closures). Empty array (default) means avoid nothing. Adding entries may significantly increase travel time or fail to find a route.
detailsNoResponse verbosity. Exactly one of: "full": geometry + turn-by-turn instructions (default; use when guiding the user). "path": geometry only, no instructions (use for map rendering). "timedistance": only total time and distance (smallest response; use for ETAs).full
number_of_routesNoNumber of route alternatives to return, including the recommended primary route. Range: 1-3 for car/truck/bike/pedestrian; 1-11 for transport="public". Default 1. Use >1 only when the user explicitly wants alternatives.
fitness_factorNoEffort tolerance for bike and pedestrian routing, in [0.0, 1.0]. 0.0 = avoid steep climbs and long routes (low fitness); 1.0 = accept steep/hard terrain (high fitness). Default 0.5. Ignored for car/truck/public.
intermediate_waypointsNoOrdered list of stops between origin and destination, excluding origin and destination themselves. Order in the array defines visit order for fixed stops. Each entry has a `type` discriminator - see RoutingStopParametersSchema for the per-type rules ("coordinates", "address", "reference_poi", or "along_route_poi"). Default empty array (no intermediate stops).
emergencyNoEnable emergency-vehicle routing. When true, the engine relaxes certain traffic restrictions (e.g. one-way streets, restricted zones) that apply to emergency services. Default false. Set to true ONLY for ambulance/fire/police use cases.
localeNoISO 639-2 / ISO 639-3 language code for turn-by-turn instruction text (e.g. "en", "de", "fr", "es"). Default "en". Does not affect routing, only instruction language.en
vehicleNoVehicle profile used for restrictions and energy modelling. REQUIRED for transport="truck"/"lorry" (dimensions/weight to avoid restricted roads). REQUIRED for electric vehicles (set `vehicle.fuel="electric"` and `vehicle.ev` for charging-aware routing). OPTIONAL for car/bike/pedestrian - defaults apply if omitted.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral details beyond annotations, such as returning turn-by-turn instructions and supporting multi-stop routing. It is consistent with readOnlyHint and openWorldHint, providing useful context without contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words: first introduces core function, second adds key features. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description omits public and lorry/truck transport modes listed in the schema, and does not explain return format in absence of output schema. While it covers basic use cases, gaps reduce completeness for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description adds little parameter meaning beyond summarizing key capabilities (e.g., automatic waypoint resolution). Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool calculates optimized routes between two or more locations for specific transport modes, and lists key outputs (turn-by-turn instructions, distance, duration, route geometry). It distinguishes from sibling tools like location_search and static_map_render by focusing on routing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs. alternatives like round_trip or isochrone_calculator. Does not mention when not to use it or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

static_map_renderStatic Map RenderA
Read-only

Render visual map images of routes, isochrones, round-trips, and static locations. Supports route rendering with automatic calculation, pre-calculated path overlays, area views, and location-centered maps. Returns a PNG image of the rendered map.

ParametersJSON Schema
NameRequiredDescriptionDefault
render_typeYesWhat to render on the map. Exactly one of: "routing": a calculated route path between waypoints (use RoutingParametersSchema). "isochrone": reachability polygon(s) from an origin within time/distance limits (use IsochroneParametersSchema). "round_trip": a circular loop starting and ending at the same point (use RoundTripParametersSchema). "map_location": a static basemap centered on an area or fit to a bounding box (use SimpleMapParametersSchema).
output_formatYesOutput image format as a full MIME type. Exactly one of: "image/png" (default; lossless, supports transparency, best for diagrams/markers), "image/jpeg" (lossy; smallest file size; NO transparency), "image/webp" (modern; good compression; supports transparency).
parametersYesParameters for the selected `render_type`. The shape MUST match `render_type`: "routing": RoutingParametersSchema; "isochrone": IsochroneParametersSchema; "round_trip": RoundTripParametersSchema; "map_location": SimpleMapParametersSchema.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description carries a reduced burden. It adds the behavioral detail that the tool returns a PNG image, which is beyond the annotations. No contradictions; the description is consistent with the read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core purpose, and every sentence earns its place. No redundant or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the schema is rich, the description does not explicitly mention the output_format parameter or the need to match parameters with render_type. However, with full schema coverage, the description adequately covers the high-level mapping capabilities. It lacks mention of the output format details beyond PNG.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the input schema providing extensive explanations for each parameter. The tool description itself does not add new parameter meaning beyond summarizing the render types. Baseline 3 is appropriate as the schema already handles parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool renders visual map images of routes, isochrones, round-trips, and static locations, and returns a PNG image. This verb+resource combination immediately distinguishes it from sibling tools like interactive_map (interactive) or isochrone_calculator (data only).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention any exclusions, prerequisites, or comparisons to sibling tools such as route_planner or round_trip, which might be more appropriate for pure calculation without rendering.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.3/5.0
Disambiguation3/5

Tools generally target different aspects, but geofence_manager's interactive_map overlaps with static_map_render, and isochrone_calculator's results can be rendered by static_map_render. route_planner and round_trip both produce routes, though round_trip is a specific type. These overlaps create moderate ambiguity.

Naming Consistency2/5

Tool names follow no consistent pattern: geofence_manager (noun_noun), isochrone_calculator (noun_noun), location_search (noun_noun), reverse_geocode (verb_noun), round_trip (adj_noun), route_planner (noun_noun), static_map_render (adj_noun_noun). Mixed conventions with no discernible verb_noun or noun_verb pattern.

Tool Count4/5

8 tools is reasonable for a location services MCP server. Each tool covers a distinct domain area (geocoding, routing, geofences, etc.), and the count is not excessive or insufficient.

Completeness3/5

Covers core location operations: geocoding, reverse geocoding, routing (multi-stop, round-trip), isochrones, geofence management, and map rendering. However, lacks batch operations, elevation data, or traffic-aware routing, and the bundling of interactive map within geofence_manager is a design quirk that creates a minor gap.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

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/magiclane/magiclane-mcp-server'

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