Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

render_map_tool: intent-based map styling (intent parameter + hints from search results)

Open
#299 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
typescript
Domain
api

Research direction

Start by locating render_map_tool and category_search_tool, then read how baseMapConfig, baseStyle, and the mapboxRender payload are built. The issue leaves the intent values and POI filtering behavior open, so first compare the demo’s intent list and investigate whether filtering stays fast during pan and zoom. Done means intent precedence and suggested intents are consistent, with the agreed POI behavior working.

Written by the indexing model from the issue text.

Description

enhancement

This has come up twice now (most recently from Svetlana, for the connector and to keep it aligned with the OpenAI plugin): make the map's look match what the person is asking about.

Today render_map_tool can already restyle the Standard base map through baseMapConfig (lightPreset, theme, POI label visibility and density, 3D) and baseStyle. In practice models only use it when someone asks outright ("make it night"). If we just told the model to style by intent, every host would turn "find me bars" into a different set of config values, so Claude and ChatGPT wouldn't look the same.

Proposal

1. An intent parameter on render_map_tool. A short enum the model picks from, and the map app turns into Standard config. The model decides what the request is about; our code decides what that looks like, so it's the same on every host. It's one small enum, not a styling guide in the tool description.

Starting point (values to tune, and to line up with the demo if it already has a list):

intent Base map config
nightlife lightPreset: night, fewer POI labels
driving road labels on, pedestrian roads off, fewer POI labels (traffic on once #278 lands)
transit transit labels on, theme: faded, fewer POI labels
outdoors pedestrian roads and 3D trees on, fewer POI labels
food, shopping fewer POI labels so our pins stand out

2. Tool results carry a suggested intent. category_search_tool already knows when the search was for bars or cafes, so its mapboxRender payload can include a suggested intent, and the map applies it with no extra work from the model.

3. Filtering base map content. Standard's config can't filter POIs by category, only show/hide all of them or set density (1 to 5). But the poi featureset has a hide feature state, and its features carry class and group. So the map app can:

  • hide the base map's own label for each place we've pinned, so it doesn't sit under our pin twice
  • optionally hide POIs whose class doesn't match the search, for a "just show me coffee" map (needs re-applying as the map moves, so worth a spike first)

Precedence

Explicit baseMapConfig > intent argument > intent suggested by a payload > defaults (including the night-when-it's-dark idea in #288).

Open questions

  • What does the demo do today, and should we copy its intent list?
  • Is POI filtering by class fast enough on pan and zoom to be worth it, or do we stop at hiding our own pinned places?

Related: #288 (night lighting when it's dark), #277 / #278 (traffic), #249 (base map restyling).

Dominant language
TypeScript
Stars
363
Forks
45
Avg merge
22h 36m
Merged PRs (30d)
20

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from mapbox/mcp-server

All issues in mapbox/mcp-server

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.