Skip to content

Spike: tileset explorer that previews a tileset's tiles in ChatGPT - #335

Draft
zmofei wants to merge 3 commits into
feat/chatgpt-thread-entrypointfrom
feat/chatgpt-tileset-explorer
Draft

zmofei wants to merge 3 commits into
feat/chatgpt-thread-entrypointfrom
feat/chatgpt-tileset-explorer

Conversation

@zmofei

@zmofei zmofei commented Nov 12, 2026

Copy link
Copy Markdown
Member

Stacked on #333. Adds tileset_explorer_tool and its MCP App, to look inside a vector (MVT) or raster tileset from a chat.

  • Tool: takes a tileset_id (username.id, or several vector tilesets joined with commas), reads its TileJSON and returns the source layers, their fields and the zoom range. The TileJSON tiles URLs carry the caller's token, so only metadata is returned.
  • Map: every source layer is drawn in its own color. The panel toggles layers, lists fields, shows tile boundaries and adds a base map. A click shows a feature's properties. Tiles load through mapbox:// with the account's public token, so a private tileset shows only for its own account.
  • In ChatGPT: opens as a tab next to the chat, and is a thread entrypoint (Mapbox Tileset Explorer) that starts on Mapbox Streets. While open it shares the tileset, view and selected feature with the conversation, and registers load_tileset and read_tileset_view through WebMCP, so the model switches tilesets and reads features in the open explorer instead of opening another.

Verified: build and unit tests pass (1318), and a local dev server lists tileset_explorer_tool.

Not verified: anything in ChatGPT yet.

@zmofei
zmofei force-pushed the feat/chatgpt-tileset-explorer branch from fbfba79 to 7f7a1af Compare November 12, 2026 13:44
@zmofei
zmofei force-pushed the feat/chatgpt-tileset-explorer branch 2 times, most recently from 1a5b6ab to 0691dfe Compare November 13, 2026 10:14
@zmofei
zmofei force-pushed the feat/chatgpt-thread-entrypoint branch from 8f395ae to 1f121f5 Compare November 13, 2026 11:21
@zmofei
zmofei force-pushed the feat/chatgpt-tileset-explorer branch from 0691dfe to 4749b45 Compare November 13, 2026 11:21
@zmofei
zmofei force-pushed the feat/chatgpt-thread-entrypoint branch from 1f121f5 to 115f55e Compare November 13, 2026 12:33
@zmofei
zmofei force-pushed the feat/chatgpt-tileset-explorer branch from 4749b45 to b3d2f24 Compare November 13, 2026 12:33
…l draw on it

In ChatGPT, render_map_tool opens its map as a tab next to the chat that
stays open:

- A thread entrypoint opens an empty map.
- The map shares its view and the selected place (a pin, a search result
  or a Standard base map label) as model context.
- WebMCP tools (redraw_map, search_map, add_places, move_map, read_map) let
  the model change the open map instead of opening another.
- The server instructions, tool description and results point the model at
  those tools.
Adds tileset_explorer_tool and its MCP App. The tool reads a tileset's
TileJSON and returns its source layers, fields and zoom range, without
the tile URLs, which carry the caller's token. The app draws every source
layer in its own color, toggles layers, shows tile boundaries and a base
map, and inspects a clicked feature.

In ChatGPT it opens as a tab, is a thread entrypoint, shares the tileset,
view and selected feature as model context, and registers load_tileset
and read_tileset_view through WebMCP.
@zmofei
zmofei force-pushed the feat/chatgpt-thread-entrypoint branch from 115f55e to 7da00fc Compare November 13, 2026 12:46
@zmofei
zmofei force-pushed the feat/chatgpt-tileset-explorer branch from b3d2f24 to 6255dd0 Compare November 13, 2026 12:46
@zmofei
zmofei force-pushed the feat/chatgpt-thread-entrypoint branch from 7da00fc to 5634bda Compare November 13, 2026 13:00
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