mapbox-docs
OfficialSummary: This server gives AI assistants token-free, read-only access to Mapbox documentation — searching it, fetching full pages, and reading bundled reference resources.
Search Mapbox docs (
search_mapbox_docs_tool) — keyword or natural-language queries across API reference, GL JS, Help Center, Style Spec, Studio, Search JS, iOS/Android Maps & Navigation SDKs, and Tilesets; returns ranked titles, URLs, and descriptions (1–20 results, default 5).Fetch a single doc page (
get_document_tool) — retrieves the full content of any mapbox.com documentation URL.Fetch up to 20 pages at once (
batch_get_documents_tool) — more efficient than repeated single calls; individual failures return error messages instead of failing the whole batch.Read on-demand reference resources — API reference, SDK/client library docs, guides & tutorials, code examples & demos, tilesets/data/accounts/pricing reference, style layer paint/layout properties, Mapbox Streets v8 fields, token scopes, and layer-type-to-property mapping.
Usage properties — all tools are read-only, idempotent, non-destructive, and require no Mapbox access token; can be hosted, run via npx, Docker, or locally from source.
Provides tools to search and fetch Mapbox documentation, including API references, SDK docs, guides, examples, and style references.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mapbox-docsHow do I add a custom layer to a Mapbox style?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Mapbox MCP Documentation Server
A Model Context Protocol (MCP) server that gives AI assistants instant access to Mapbox documentation and reference materials — no Mapbox access token required.
Quick Start
Hosted (no install required)
Connect directly to the hosted endpoint — nothing to install or maintain:
Claude Code / Claude Desktop / Cursor / VS Code
{
"mcpServers": {
"mapbox-docs": {
"url": "https://mcp-docs.mapbox.com/mcp"
}
}
}npx (runs locally, no install)
Claude Code — run claude mcp add:
claude mcp add mapbox-docs -- npx -y @mapbox/mcp-docs-serverClaude Desktop — add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"mapbox-docs": {
"command": "npx",
"args": ["-y", "@mapbox/mcp-docs-server"]
}
}
}Cursor / VS Code — add the same mcpServers block to your editor's MCP settings file.
Docker
Build the image:
docker build -t mapbox/mcp-docs-server .Or pull from the registry:
docker pull mapbox/mcp-docs-serverClaude Desktop / Cursor / VS Code — configure your MCP client to run the container:
{
"mcpServers": {
"mapbox-docs": {
"command": "docker",
"args": ["run", "--rm", "-i", "mapbox/mcp-docs-server"]
}
}
}Local (from source)
git clone https://github.com/mapbox/mcp-docs-server.git
cd mcp-docs-server
npm install
npm run buildClaude Desktop / Cursor / VS Code:
{
"mcpServers": {
"mapbox-docs": {
"command": "node",
"args": ["/absolute/path/to/mcp-docs-server/dist/esm/index.js"]
}
}
}Related MCP server: Mapbox MCP Server
Tools
get_document_tool — Fetches the full content of a specific Mapbox documentation page by URL. Use this to follow a link from a resource and retrieve the complete page content.
Example prompts:
"What Mapbox APIs are available?"
"How do I add a custom layer to a Mapbox style?"
"What's the latest Mapbox GL JS version?"
batch_get_documents_tool — Fetches multiple Mapbox documentation pages in a single call (max 20). More efficient than calling get_document_tool multiple times. Failed pages include an error message rather than failing the whole batch.
search_mapbox_docs_tool — Searches Mapbox documentation across API reference, GL JS, Help Center, Style Spec, Studio, Search JS, iOS/Android Maps and Navigation SDKs, and Tilesets, returning ranked page URLs and descriptions. Use this to find relevant documentation before fetching full pages with get_document_tool or batch_get_documents_tool.
Example prompts:
"Find docs about camera animation"
"Search for geocoding API examples"
"What documentation exists for custom layers?"
Resources
MCP resources expose reference data that AI assistants can read on demand:
Resource URI | Contents |
| REST API reference docs (endpoints, parameters, rate limits) |
| SDK and client library docs (iOS, Android, Flutter, web) |
| Tutorials, how-tos, and guides |
| Code examples, API playgrounds, and interactive demos |
| Tilesets, data products, accounts, and pricing reference |
| Style layer reference (paint/layout properties for all layer types) |
| Mapbox Streets v8 tileset field reference |
| All available Mapbox token scopes with descriptions |
| Mapping of Mapbox layer types to their properties |
Development
Prerequisites
Node.js >= 22
npm
Setup
git clone https://github.com/mapbox/mcp-docs-server.git
cd mcp-docs-server
npm installCommands
npm run build # Compile TypeScript (ESM + CJS)
npm test # Run test suite (vitest)
npm run lint # ESLint
npm run format # Prettier check
npm run format:fix # Prettier auto-fix
npm run inspect:build # Launch MCP Inspector against built server
npm run inspect:dev # Launch MCP Inspector against source (tsx)Architecture
The server is a TypeScript MCP server using @modelcontextprotocol/sdk with a dual ESM/CJS build via tshy.
Tools extend
BaseTool<InputSchema, OutputSchema>insrc/tools/Resources extend
BaseResourceinsrc/resources/No Mapbox access token required for documentation tools
HTTP requests use a shared
httpPipelinewith 1-hour caching
Creating a New Tool
Create a directory
src/tools/my-tool/Add
MyTool.input.schema.ts(Zod schema),MyTool.output.schema.ts, andMyTool.ts(extendsBaseTool)Register in
src/tools/toolRegistry.tsAdd tests in
test/tools/my-tool/
Contributing
Please read CONTRIBUTING.md and VISION.md before submitting a pull request. Contributors using AI coding assistants should also review:
CLAUDE.md — for Claude Code
AGENTS.md — for other AI coding assistants (Cursor, Copilot, Aider, etc.)
License
MIT — see LICENSE
Available Tools
3 toolsbatch_get_documents_toolBatch Get Mapbox Documents ToolARead-onlyIdempotentInspect
Fetch the full content of multiple Mapbox documentation pages in a single call (max 20). More efficient than calling get_document_tool multiple times. Returns an array of results — failed pages include an error message rather than failing the whole batch.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | Array of Mapbox documentation page URLs to fetch (max 20). All must be mapbox.com URLs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond the annotations by disclosing the return array structure and that failed pages include an error message rather than failing the whole batch. Annotations already cover read-only, idempotent, and non-destructive traits, so the description supplements rather than repeats them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, front-loaded with the core purpose, and each sentence adds distinct value: what it does, why it is better than the alternative, and the partial-failure behavior. No filler or redundant phrases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description covers the essential details: action, resource, upper limit, efficiency benefit, and return structure. Combined with the schema and annotations, the agent has enough context to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage of the single 'urls' parameter, including its type, max/min items, format, and the constraint that all URLs must be mapbox.com. The description does not add additional parameter-specific meaning beyond restating the batch context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches full content of multiple Mapbox documentation pages in a single call, with a specific verb ('Fetch') and resource ('multiple Mapbox documentation pages'). It explicitly distinguishes itself from the sibling get_document_tool by highlighting batch efficiency.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by naming get_document_tool as the alternative and explaining that this batch version is more efficient for multiple pages. It does not explicitly state when not to use it, but the comparison implies single-page calls should use get_document_tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_document_toolGet Mapbox Document ToolARead-onlyIdempotentInspect
Fetch the full content of a specific Mapbox documentation page by URL. Use this after get_latest_mapbox_docs_tool to follow a link from the index and retrieve the complete page content. For fetching multiple pages at once, use batch_get_documents_tool instead.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of a Mapbox documentation page to fetch. Must be a mapbox.com URL (e.g. https://docs.mapbox.com/api/search/geocoding/). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, which already disclose the safety profile. The description does not contradict these and adds minimal extra behavioral context (e.g., 'full content'), but it does not discuss potential side effects, rate limits, or output format. Since annotations lower the burden, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two well-structured sentences. It front-loads the core function immediately, then provides usage context and an alternative in the second sentence. Every word contributes value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with strong annotations, the description is largely complete. It states what the tool does, when to use it, and how it relates to sibling tools. It does not specify the exact return format (e.g., plain text, markup), but the absence of an output schema makes this a minor gap, so a 4 is warranted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully documents the 'url' parameter with format, example, and constraint. The description only echoes 'by URL' and adds no additional parameter-level semantics beyond what the schema provides. With 100% schema coverage, the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: "Fetch the full content of a specific Mapbox documentation page by URL." It distinguishes from siblings by explicitly referencing get_latest_mapbox_docs_tool and batch_get_documents_tool, and the context signal for search_mapbox_docs_tool implies a different purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: "Use this after get_latest_mapbox_docs_tool to follow a link from the index" and "For fetching multiple pages at once, use batch_get_documents_tool instead." This clearly defines when to use and suggests an alternative, fulfilling the dimension well.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_mapbox_docs_toolSearch Mapbox Docs ToolARead-onlyIdempotentInspect
Search Mapbox documentation by keyword or natural language query. Searches across API reference, GL JS, Help Center, Style Spec, Studio, Search JS, iOS/Android Maps and Navigation SDKs, and Tilesets. Returns ranked results with titles, URLs, and descriptions. Use get_document_tool to fetch the full content of a result page.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for Mapbox documentation (e.g. "add a marker", "camera animation", "geocoding API"). | |
| limit | No | Maximum number of results to return (1–20, default 5). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context by stating the broad scope of documentation sources and that results are ranked with titles, URLs, and descriptions. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four concise sentences, front-loaded with the core action. Every sentence contributes distinct information: what it searches, where it searches, what it returns, and how to proceed. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with only two fully documented parameters and no output schema, the description is complete: it states the search scope, the return format (ranked results with titles, URLs, descriptions), and the logical next step (get_document_tool). Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'query' and 'limit' fully described in the schema. The description adds context about natural-language/kewyord searching and the breadth of sources, but it does not provide additional syntax or parameter details beyond what the schema already offers, aligning with the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Search Mapbox documentation', then enumerates the exact sources (API reference, GL JS, Help Center, etc.). It clearly distinguishes from sibling get_document_tool by positioning this as the search/retrieval step and explicitly says to use get_document_tool to fetch full content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use this tool (when searching docs by keyword or natural language) and explicitly points to get_document_tool as the alternative for fetching full content. It does not mention the sibling batch_get_documents_tool, but the guidance given is sufficient for the primary workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.3.1- First observed
batch_get_documents_tool - First observed
get_document_tool - First observed
search_mapbox_docs_tool
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: search_index returns pages, get_document fetches a single page, and batch_get_documents fetches multiple. There is no overlap or ambiguity.
All tool names follow a consistent verb_noun_tool pattern (batch_get_documents_tool, get_document_tool, search_mapbox_docs_tool), making them predictable and easy to understand.
With 3 tools, the server covers the essential operations for documentation retrieval (search, single fetch, batch fetch) without unnecessary bloat. The count is well-scoped for this purpose.
The tool set covers search, single fetch, and batch fetch effectively. However, there is no tool to list or navigate the documentation structure (e.g., get index/topics), requiring reliance on search alone. This is a minor gap.
Maintenance
Related MCP Connectors
Provides AI assistants with direct access to Mapbox developer APIs and documentation.
Mapbox geocode, directions, matrix, isochrones, map-matching, tilequery, static URL.
Geospatial intelligence with Mapbox APIs like geocoding, POI search, directions, isochrones, etc.
Provide your AI coding tools with token-efficient access to up-to-date technical documentation for…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides AI applications with geospatial intelligence through Mapbox APIs, enabling geocoding, POI search, routing, travel time analysis, isochrone generation, and static map creation for location-aware functionality.1,052BSD 3-Clause
- AlicenseBqualityDmaintenanceEnables integration with Mapbox API for navigation and location services, including directions between coordinates or places, travel time/distance matrices, and geocoding to search places and convert addresses to coordinates.5MIT
- AlicenseNot gradedqualityCmaintenanceProvides Mapbox geocoding, routing, isochrones, map matching, and static map images via a set of tools. Enables natural language querying through the Pipeworx gateway.MIT

Mapbox MCP Serverofficial
AlicenseAqualityAmaintenanceProvides geospatial intelligence to AI agents through Mapbox APIs, enabling geocoding, routing, POI search, map images, and offline spatial calculations.281,052354MIT