# mcp-devkit-server [Health: Active]

**Category:** 🗺️ Location Services  
**Repository:** https://github.com/mapbox/mcp-devkit-server  
**GitHub Stars:** 62  
**npm Downloads (last month):** 5293  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/mcp-devkit-server

## Description
Provides AI assistants with direct access to Mapbox developer APIs and documentation.

## Tools
Capabilities this server exposes over MCP:

- **list_styles_tool** — List styles for a Mapbox account. Use limit parameter to avoid large responses (recommended: limit=5-10). Use start parameter for pagination.
- **create_style_tool** — Create a new Mapbox style
- **retrieve_style_tool** — Retrieve a specific Mapbox style by ID
- **update_style_tool** — Update an existing Mapbox style
- **delete_style_tool** — Delete a Mapbox style by ID
- **preview_style_tool** — Generate a live preview of a Mapbox style. By default, auto-generates a short-lived preview token so you can view it right away — no existing token needed. Pass `share: true` with an existing public `accessToken` instead to generate a durable, shareable preview link.
- **style_builder_tool** — Generate Mapbox style JSON for creating new styles or updating existing ones.

The tool intelligently resolves layer types and filter properties using Streets v8 data.
You don't need exact layer names - the tool automatically finds the correct layer based on your filters.

BASE STYLES:
• standard: ALWAYS THE DEFAULT - Modern Mapbox Standard with best performance
• Classic styles: streets-v12/light-v11/dark-v11/satellite-v9/outdoors-v12/satellite-streets-v12/navigation-day-v1/navigation-night-v1
  Only use Classic when user explicitly says "create a classic style" or working with existing Classic style

STANDARD STYLE CONFIG:
Use standard_config to customize the basemap:
• Theme: default/faded/monochrome
• Light: day/night/dawn/dusk
• Show/hide: labels, roads, 3D buildings
• Colors: water, roads, parks, etc.

LAYER ORDERING:
• Layers are rendered in order - last layer in the array appears visually on top
• The 'slot' parameter is OPTIONAL - by default, layer order in the array determines visibility
• For Standard style, you can optionally use 'slot' to control placement:
  - No slot (default): Above all existing layers in the style
  - 'top': Behind Place and Transit labels
  - 'middle': Between basemap and labels
  - 'bottom': Below most basemap features

LAYER RENDERING:
• render_type controls HOW to visualize the layer (line, fill, symbol, etc.)
• Most important: Use render_type:"line" for outlines/borders even on polygon features
• Default "auto" picks based on geometry, but override for specific effects:
  - Building outlines → render_type:"line" (not fill!)
  - Solid buildings → render_type:"fill" or "fill-extrusion" (3D)
  - Road lines → render_type:"line" (auto works too)
  - POI dots → render_type:"circle"
  - Labels → render_type:"symbol"

LAYER ACTIONS:
• color: Apply a specific color
• highlight: Make prominent
• hide: Remove from view
• show: Display with defaults

AUTO-DETECTION:
The tool automatically finds the correct layer from your filter_properties.
Examples:
• { class: 'park' } → finds 'landuse' layer
• { type: 'wetland' } → finds 'landuse_overlay' layer
• { maki: 'restaurant' } → finds 'poi_label' layer
• { toll: true } → finds 'road' layer
• { admin_level: 0 } → finds 'admin' layer (for country boundaries)
• { admin_level: 1 } → finds 'admin' layer (for state/province boundaries)

IMPORTANT LAYER NAMES:
• Use "admin" for all boundaries (countries, states, etc.)
• Use "building" (singular, not "buildings")
• Use "road" for all streets, highways, paths

If a layer type is not recognized, the tool will provide helpful suggestions showing:
• All available source layers from Streets v8
• Which fields are available in each layer
• Examples of how to properly specify layers and filters
- **geojson_preview_tool** — Generate a geojson.io URL to visualize GeoJSON data. Returns only the URL link.
- **check_color_contrast_tool** — Checks color contrast ratios between foreground and background colors for WCAG 2.1 accessibility compliance
- **compare_styles_tool** — Compares two Mapbox styles and reports differences in structure, layers, sources, and properties
- **optimize_style_tool** — Optimizes Mapbox styles by removing unused sources, duplicate layers, and simplifying expressions
- **style_comparison_tool** — Generate a live side-by-side comparison of two Mapbox styles. By default, auto-generates a scoped preview token so you can compare them right away — no existing token needed. Pass `share: true` with an existing public `accessToken` instead to generate a comparison link using a token you manage yourself.
- **create_token_tool** — Create a new Mapbox public access token with specified scopes and optional URL restrictions.
- **list_tokens_tool** — List Mapbox access tokens for the authenticated user with optional filtering and pagination. Returns metadata for all tokens (public and secret), but the actual token value is only included for public tokens (secret token values are omitted for security). When using pagination, the "start" parameter must be obtained from the "next_start" field of the previous response (it is not a token ID)
- **bounding_box_tool** — Calculates bounding box of given GeoJSON content, returns as [minX, minY, maxX, maxY]
- **country_bounding_box_tool** — Gets bounding box for a country by its ISO 3166-1 country code, returns as [minX, minY, maxX, maxY].
- **coordinate_conversion_tool** — Converts coordinates between WGS84 (longitude/latitude) and EPSG:3857 (Web Mercator) coordinate systems
- **get_feedback_tool** — Get a single user feedback item from the Mapbox Feedback API by its unique ID. Use this tool to retrieve detailed information about a specific user-reported issue, suggestion, or feedback about map data, routing, or POI details. Requires user-feedback:read scope on the access token.
- **list_feedback_tool** — List user feedback items from the Mapbox Feedback API with filtering, sorting, and pagination. Use this tool to access user-reported issues, suggestions, and feedback about map data, routing, and POI details. Supports comprehensive filtering by status, category, date ranges, trace IDs, and search text. Requires user-feedback:read scope on the access token.
- **tilequery_tool** — Query vector and raster data from Mapbox tilesets at geographic coordinates
- **validate_expression_tool** — Validates Mapbox style expressions for syntax, operators, and argument correctness
- **validate_geojson_tool** — Validates GeoJSON objects for correctness, checking structure, coordinates, and geometry types
- **validate_style_tool** — Validates Mapbox style JSON against the Mapbox Style Specification, checking for errors, warnings, and providing suggestions for improvement

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "mcp-devkit-server": {
    "command": "npx",
    "args": ["-y","@mapbox/mcp-devkit-server"],
    "env": {
      "MAPBOX_ACCESS_TOKEN": ""
    }
  }
}
```

**Requires environment variables:** `MAPBOX_ACCESS_TOKEN` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What mcp-devkit-server does

mcp-devkit-server gives MCP-compatible AI assistants access to selected Mapbox developer operations. Its main focus is Mapbox style management: agents can inspect an account's styles, create new styles from a Mapbox style specification, retrieve and update existing styles, remove styles, and generate browser preview URLs.

The package also includes token-management and feedback tools, reference resources for Mapbox style and Streets v8 concepts, and local processing tools listed for GeoJSON preview, coordinate conversion, bounding boxes, style comparison, and style optimization. A separate validation capability checks style JSON without needing Mapbox API access.

## How it works

The server exposes its operations through the Model Context Protocol. API-backed operations use the Mapbox access token supplied to the server, and individual operations enforce their required token scopes. For example, listing styles uses `styles:list`; creating, updating, or deleting styles uses `styles:write`; retrieving a style uses `styles:download`.

Preview generation obtains the first available public token from the account and uses it to construct a preview URL. That operation requires `tokens:read` plus a public token with `styles:read`. Style validation runs offline and returns validation messages, severity levels, optional JSON paths and suggestions, and a style summary that can include feature counts and geometry types.

Reference material is available as MCP resources, including the Mapbox style-layer specification, Streets v8 field definitions, token-scope guidance, and mappings between Streets v8 source layers and compatible GL JS layer types.

## Setup and configuration

A Mapbox account and access token are required for API-backed use. Set the token in `MAPBOX_ACCESS_TOKEN`, then grant the scopes needed by the operations your agent will call. Token management requires `tokens:read` and `tokens:write`, while feedback access requires `user-feedback:read`.

The server can run through a local developer-tool integration or the hosted MCP endpoint at `https://mcp-devkit.mapbox.com/mcp`. Supported setup documentation covers Claude Code, Claude Desktop, Cursor, and Visual Studio Code. It can also be packaged as a DXT desktop extension; the package includes the built server, metadata, and configuration for the Mapbox token.

## Tools and capabilities

- Manage Mapbox styles with list, create, retrieve, update, delete, and preview operations.
- Validate Mapbox style JSON against required fields, source and layer types, references, and common configuration issues.
- Create and list Mapbox access tokens through token-management tools.
- Expose Mapbox style, Streets v8, token-scope, and layer-type reference resources.
- Use local tools for GeoJSON preview, coordinate conversion, bounding boxes, style comparison, and style optimization.
- Inspect style expressions involving data access, lookup, decisions, mathematics, strings, types, and camera values.

## Limitations and notes

Token scope requirements differ by operation, so a token that works for one style action may fail for another. Preview generation also depends on having at least one public token with `styles:read`. Offline validation does not require API access or token scopes, but it validates the supplied style JSON rather than making changes to a Mapbox account.

_Full upstream README: https://allmcps.com/mcp/mcp-devkit-server/readme_

