Mapbox Geospatial Operations Skill
Expert guidance for AI assistants on choosing the right geospatial tools from the Mapbox MCP Server. Focuses on selecting tools based on what the problem requires - geometric calculations vs routing, straight-line vs road network, and accuracy needs.
Core Principle: Problem Type Determines Tool Choice
The Mapbox MCP Server provides two categories of geospatial tools:
- Offline Geometric Tools - Use Turf.js for pure geometric/spatial calculations
- Routing & Navigation APIs - Use Mapbox APIs when you need real-world routing, traffic, or travel times
The key question: What does the problem actually require?
Decision Framework
Decision Matrices by Use Case
Distance Calculations
User asks: "How far is X from Y?"
Example: "What's the distance between these 5 warehouses?"
- As the crow flies →
distance_tool(10 calculations, instant) - As the crow drives →
matrix_tool(5×5 matrix, one API call, returns actual route distances)
Key insight: Use the tool that matches what "distance" means in context. Always clarify: crow flies or crow drives?
Proximity and Containment
User asks: "Which points are near/inside this area?"
Example: "Are these 200 addresses in our 30-minute delivery zone?"
- Create zone →
isochrone_tool(routing API - need travel time) - Check addresses →
point_in_polygon_tool(geometric - 200 instant checks)
Key insight: Routing for creating travel-time zones, geometric for containment checks
Routing and Navigation
User asks: "What's the best route?"
Example: "Navigate from hotel to airport"
- Need turn-by-turn →
directions_tool - Just need to know "it's northeast" →
bearing_tool
Key insight: Routing tools for actual navigation, geometric tools for directional info
Area and Shape Operations
User asks: "Create a zone around this location"
Example: "Show 5km coverage around each store"
- 5km radius →
buffer_tool(geometric circles) - "What customers can reach in 15 min?" →
isochrone_tool(routing-based)
Key insight: Geometric tools for distance-based zones, routing tools for time-based zones
Performance and Scale Considerations
When Volume Affects Tool Choice
Small operations (< 100 calculations):
- Geometric tools: Instant, iterate freely
- Routing APIs: Fast enough for most uses
Medium operations (100-1,000 calculations):
- Geometric tools: Still fast, no concerns
- Routing APIs: Consider batch operations (matrix_tool)
Large operations (> 1,000 calculations):
- Geometric tools: May need optimization but still fast
- Routing APIs: Definitely use batch tools (matrix_tool handles up to 25×25)
Key insight: Volume rarely affects geometric tool choice, but routing APIs have batch tools for efficiency
Real-Time vs Batch
Architecture note for high-frequency geofencing: If the application calls containment checks at very high rates (e.g., 50 vehicles every 2 seconds = 25 checks/second), calling MCP tools over the network adds agent-reasoning overhead that makes it impractical. In those cases, recommend using Turf.js directly in-process (turf.booleanPointInPolygon) for the hot path, and reserve MCP tools for peripheral tasks like zone definition (isochrone_tool), rerouting (directions_tool), or visualization (static_map_image_tool).
Common Scenarios and Optimal Approaches
Scenario 1: Store Locator
User: "Find the closest store and show 5km coverage"
Optimal approach:
- Search stores →
category_search_tool(returns distances automatically) - Create coverage zone →
buffer_tool(5km geometric circle) - Visualize →
static_map_image_tool
Why: Search already gives distances; geometric buffer for simple radius
Scenario 2: Delivery Route Optimization
User: "Optimize delivery to 8 addresses / stops"
Optimal approach:
- Geocode addresses (if needed) → Use
search_and_geocode_toolto convert any street addresses to coordinates. Even when coordinates are already provided, mention this as an optional pre-step — real-world delivery lists often contain a mix of addresses and coordinates. - Optimize route →
optimization_tool(TSP solver — reorders stops to minimize total drive time)
Why optimization_tool and NOT these alternatives:
directions_toolonly routes A → B (or through fixed-order waypoints). It does NOT reorder stops — if you pass 8 stops, it routes them in the order given, which is almost never optimal.matrix_toolgives travel times between all pairs of stops (8×8 = 64 values), but it does NOT compute the optimal ordering. You'd need to solve TSP yourself on top of the matrix —optimization_tooldoes this for you in one call.
Always mention search_and_geocode_tool as a useful companion for geocoding delivery addresses before optimization.
Scenario 3: Service Area Validation
User: "Which of these 200 addresses can we deliver to in 30 minutes?"
Optimal approach:
- Create delivery zone →
isochrone_tool(30-minute driving) - Check each address →
point_in_polygon_tool(200 geometric checks)
Why: Routing for accurate travel-time zone, geometric for fast containment checks
Scenario 4: GPS Trace Analysis
User: "How long was this bike ride?"
Optimal approach:
- Clean GPS trace →
map_matching_tool(snap to bike paths) - Get distance → Use API response or calculate with
distance_tool
Why: Need road/path matching; distance calculation either way works
Scenario 5: Coverage Analysis
User: "What's our total service area?"
Optimal approach:
- Create buffers around each location →
buffer_tool - Calculate total area →
area_tool - Or, if time-based →
isochrone_toolfor each location
Why: Geometric for distance-based coverage, routing for time-based
Anti-Patterns: Using the Wrong Tool Type
❌ Don't: Use geometric tools for routing questions
Why wrong: As the crow flies ≠ as the crow drives
❌ Don't: Use routing APIs for geometric operations
Why wrong: Routing APIs don't do geometric containment
❌ Don't: Confuse "near" with "reachable"
Why wrong: Roads aren't straight lines; traffic varies
❌ Don't: Use routing when bearing is sufficient
Why better: Simpler, instant, answers the actual question
Hybrid Approaches: Combining Tool Types
Some problems benefit from using both geometric and routing tools:
Pattern 1: Routing + Geometric Filter
Use case: "Find gas stations along my route"
Pattern 2: Routing + Distance Calculation
Use case: Quickly narrow down, then get precise routing for finalists
Pattern 3: Isochrone + Containment
Use case: "Which customers are in our delivery zone?"
Decision Algorithm
When user asks a geospatial question:
Key Decision Questions
Before choosing a tool, ask:
-
Does "distance" mean as the crow flies or as the crow drives?
- As the crow flies (straight-line) → geometric tools
- As the crow drives (road distance) → routing APIs
-
Does the user need travel time?
- Yes → routing APIs (only they know speeds/traffic)
- No → geometric tools may suffice
-
Is this about roads/paths or pure spatial relationships?
- Roads/paths → routing APIs
- Spatial relationships → geometric tools
-
Does this need to happen in real-time with low latency?
- Yes + geometric problem → offline tools (instant)
- Yes + routing problem → use routing APIs (still fast)
-
Is accuracy critical, or is approximation OK?
- Critical + routing → routing APIs
- Approximation OK → geometric tools may work
Terminology Guide
Understanding what users mean:
Quick Reference
Geometric Operations (Offline Tools)
distance_tool- Straight-line distance between two pointsbearing_tool- Compass direction from A to Bmidpoint_tool- Midpoint between two pointspoint_in_polygon_tool- Is point inside polygon?area_tool- Calculate polygon areabuffer_tool- Create circular buffer/zonecentroid_tool- Geometric center of polygonbbox_tool- Min/max coordinates of geometrysimplify_tool- Reduce geometry complexity
Routing & Navigation (APIs)
directions_tool- Turn-by-turn routingmatrix_tool- Many-to-many travel timesoptimization_tool- Route optimization (TSP)isochrone_tool- Travel-time zonesmap_matching_tool- Snap GPS to roads
When to Use Each Category
Use Geometric Tools When:
- Problem is spatial/mathematical (containment, area, bearing)
- Straight-line distance is appropriate
- Need instant results for real-time checks
- Pure geometry (no roads/traffic involved)
Use Routing APIs When:
- Need actual driving/walking/cycling distances
- Need travel times
- Need to consider road networks
- Need traffic awareness
- Need route optimization
- Need turn-by-turn directions
REST API honesty (Directions / Isochrone)
When generating browser demos against Mapbox REST APIs (not only MCP tools):
Directions — use the route object metrics
Isochrone — request multiple contours when the prompt asks for bands
Integration with Other Skills
Works with:
- mapbox-search-patterns: Search for locations, then use geospatial operations
- mapbox-web-performance-patterns: Optimize rendering of geometric calculations
- mapbox-token-security: Ensure requests use properly scoped tokens
Resources
- Mapbox MCP Server
- Turf.js Documentation (Powers geometric tools)
- Mapbox Directions API
- Mapbox Isochrone API
- Mapbox Matrix API
- Mapbox Optimization API


