Skip to content

Spike: ChatGPT sidebar apps (Mapbox Maps and Mapbox Console) - #316

Draft
zmofei wants to merge 5 commits into
mainfrom
feat/chatgpt-sidebar-app
Draft

zmofei wants to merge 5 commits into
mainfrom
feat/chatgpt-sidebar-app

Conversation

@zmofei

@zmofei zmofei commented Nov 5, 2026 •

Copy link
Copy Markdown
Member

Spike for adding Mapbox to ChatGPT's sidebar through the OpenAI MCP Extensions global entrypoint. Opening as a draft to get feedback on the approach.

  • map_explorer_tool (Mapbox Maps): opens the existing map app fullscreen with a place search box. Searches use the same Search Box self-fetch as search_and_geocode_tool, biased toward the map center.
  • mapbox_home_tool (Mapbox): the home page for Mapbox in ChatGPT. For now it's a read-only list of the account's styles, tilesets and public tokens in its own UI resource. Only pk. tokens are returned. A list missing its scope shows the error and the others still load.
  • Both tools are app-only (_meta.ui.visibility: ["app"]), so the model never sees them. Hosts without the extension ignore the openai/ui metadata.
  • BaseTool now passes icons and typed _meta through to registerTool.

Verified: unit tests, typecheck and lint pass locally. Not verified: the sidebar inside ChatGPT itself.

@zmofei
zmofei force-pushed the feat/chatgpt-sidebar-app branch 2 times, most recently from d694ea4 to ab7dae4 Compare November 9, 2026 08:47
- Starter tasks open a new chat with an editable draft that mentions the plugin (MAPBOX_CHATGPT_PLUGIN_NAME, default "Mapbox").
- Account strip, then styles, tilesets and public tokens, each with a preview, a full list page and a Studio or Console link.
- Fullscreen interactive style preview (GL JS loads only then); "Ask about it" opens a new chat with the style or tileset.
- map_explorer_tool moves from its own sidebar entry to an "Explore map" quick action on the Mapbox entry.
- Deep links to /styles, /styles/{owner}/{id}, /tilesets and /tokens.
ChatGPT drops the text that follows a recognized @mention in the same
content part, so the mention is now sent as its own part.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant