Skip to content

Add mapbox-map-display and mapbox-reachability-analysis skills - #94

Open
mattpodwysocki wants to merge 2 commits into
mainfrom
feat/mcp-server-skills
Open

mattpodwysocki wants to merge 2 commits into
mainfrom
feat/mcp-server-skills

Conversation

@mattpodwysocki

@mattpodwysocki mattpodwysocki commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Adds the two skills the Mapbox MCP Server serves over the MCP Skills extension (SEP-2640), so this repo is the only copy of them. mapbox/mcp-server#295 bundles them from a pinned commit of this repo at build time instead of keeping its own.

  • mapbox-map-display: showing tool results with render_map_tool by passing refs, several results on one map, hand-placed markers with mapbox_id, base map restyling, and when a static image is right instead.
  • mapbox-reachability-analysis: places within a travel time or distance. Isochrone, then bbox_tool, then category search in that box, then points_within_polygon_tool to drop places in the box's corners, then one map with the area and only the places inside it.

Each has evals/evals.json (4 and 3 evals) and a README entry.

Fixes to existing skills

mcp-server#295 will also serve mapbox-location-grounding and mapbox-search-patterns, and it checks that every tool a skill names exists. These had a few that don't match the server:

  • mapbox-location-grounding: the visual step used static_map_image_tool. It now uses render_map_tool with the results' refs, and keeps static images for when the user asks for an image file. That matches the MCP server's own instructions.
  • mapbox-location-grounding: said ground_location_tool returns a static map image. It returns a mapboxRender.ref for render_map_tool.
  • mapbox-search-patterns/references/optimization-combining.md: point_in_polygon_tool (doesn't exist) is now points_within_polygon_tool, and the static-map example is now render_map_tool.
  • mapbox-search-patterns/references/workflows.md: bounding_box_tool is the DevKit server's; the runtime server's is bbox_tool.

Testing

  • npm run check passes on a clean checkout: format, spellcheck, markdownlint, Codex plugin build and validation, and skill validation.
  • The two new skills' content is what mcp-server#295 already tests: it loads them strictly through the MCP SDK's skills support and reads them back with the SDK's SkillsClient (sizes, digests, frontmatter), and MCP Inspector --verify --require-digests reports no conformance errors.

🤖 Generated with Claude Code

Moves the two skills the Mapbox MCP Server serves over the MCP Skills
extension here, so this repo is their only copy; mcp-server bundles them
from a pinned commit at build time.

Also fixes tool references in mapbox-location-grounding and
mapbox-search-patterns: show maps with render_map_tool (static images only
when asked for), points_within_polygon_tool instead of the nonexistent
point_in_polygon_tool, and bbox_tool instead of the devkit's
bounding_box_tool.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mattpodwysocki
mattpodwysocki requested a review from a team as a code owner October 26, 2026 16:16
@mattpodwysocki mattpodwysocki added the enhancement New feature or request label Oct 26, 2026
It returns a mapboxRender.ref for render_map_tool, not a static map image.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mattpodwysocki

Copy link
Copy Markdown
Contributor Author

@ctufts could you take a look at this one when you get a chance? mcp-server#295 bundles these two skills at build time, so it's waiting on this to merge before we can cut the release.


# Places within reach

Answers questions like "what's within a 10 minute walk of my hotel?" with the

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't this skill have direct overlap with the location-grounding skill? Is it solving a specific problem? From grounding skill:

### Proximity search with routing context

For "find [category] within X minutes of [location]":

1. Geocode the origin if needed: `search_and_geocode_tool(address)`
2. Get the reachable area: `isochrone_tool(coordinates, profile, contours_minutes)`
3. Search for POIs: `ground_location_tool(longitude, latitude, query: "category")` — the isochrone
contours tell the user what's within each time band

Or more directly: `ground_location_tool` returns both nearby POIs and isochrone reachability in one
call, which covers most proximity + routing use cases without additional composition.


# Showing results on a Mapbox map

Use `render_map_tool` whenever the user wants to see something on a map. It

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be explicit to be used during a non-"build" use case?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants