For developers

Mappt MCP server

Connect Claude, ChatGPT, Claude Code, Cursor, or any Model Context Protocol client and build real maps by asking. Fifteen tools, two of which remove data, and a public map URL at the end.

Server URL

https://app.mappt.ai/api/v1/mcp

Two ways to connect

Sign in with Mappt

For Claude and ChatGPT. Add a connector with the URL above, sign in, and approve. No token to copy or store. ChatGPT cannot accept a pasted key, so this is the only route there. You can disconnect at any time from Connected apps.

Personal access token

For Claude Code, Cursor, scripts and CI. Signing in needs a browser and a human; a token does not. Send it as Authorization: Bearer.

claude mcp add --transport http mappt \
  https://app.mappt.ai/api/v1/mcp \
  --header "Authorization: Bearer mappt_pat_your_key_here"

The tools

A short list on purpose. Assistants choose reliably from about ten tools and get measurably worse past forty, so this is the smallest set that covers the work.

Projects

  • mappt_list_projectsList the projects you can see
  • mappt_get_projectRead one project with its layers
  • mappt_create_projectCreate an empty project

Layers

  • mappt_create_layer_from_geojsonCreate a layer from GeoJSON, up to 256 KB
  • mappt_update_layerRename a layer or change its styling
  • mappt_delete_featuresDelete features from a layer. The only tool that removes data: it needs write, works only on file-backed layers, and saves a restore point first
  • mappt_delete_layerDelete a layer and everything in it. Saves a restore point first
  • mappt_get_layer_provenanceWhere the data came from, including what is unknown

Reading data

  • mappt_list_featuresFeature properties, 25 rows by default
  • mappt_search_featuresFilter features by property
  • mappt_aggregate_featuresCount, sum or average grouped by a property
  • mappt_get_property_valuesDistinct values of one property

Doing the work

  • mappt_agent_taskTurn a description into layers: OpenStreetMap, census boundaries, population, places, geocoding, choropleths, hexbins
  • mappt_wait_for_jobWait for a long-running job

Publishing

  • mappt_publish_viewPublish a public map URL, up to 30 days

Scopes

A connection narrows what you can already do and never widens it. Connect it to a project you can only read, and it can only read.

  • mappt:projects:readSee your projects and data sources
  • mappt:layers:readRead layers and feature properties
  • mappt:projects:writeCreate projects
  • mappt:layers:writeCreate and change layers, run the mapping agent
  • mappt:views:publishPublish public map links, for up to 30 days. Its own scope, because anyone with the link can read it
  • offline_accessStay connected between sessions, until you disconnect

An API key uses three broader scopes instead: read, write, and manage. Publishing needs manage on a key, or the publish scope on a connection, and both are off unless asked for.

What it will not do

These are design decisions, not missing features. An assistant acting on your account should not be able to do damage you did not ask for.

  • Two tools remove data, and both say so. Deleting features and deleting a layer are annotated destructive, so a host asks before running either. Both need the write scope and both save a restore point you can undo from. Deleting a project is deliberately absent: it cascades to the checkpoints that would undo it, so it is the one removal nothing could take back.
  • No credentials through a chat. It cannot create database connections, because that means a password in a tool call and then in a transcript.
  • Publishing is deliberate. It needs the manage scope and is always its own step, never a side effect of another tool.
  • No permanent public links. Views published this way cap at 30 days.
  • Third-party text is not instructions. Feature properties often come from OpenStreetMap or places data, so they reach the model marked as untrusted content.

Rate and size limits

  • Each credential has a daily request budget, shown per key.
  • GeoJSON sent to a tool caps at 256 KB. Upload a file for anything larger.
  • mappt_list_features returns 25 rows by default and properties only. Geometry lives in the layer file.
  • Revoking takes effect on the next request. Nothing is cached.

Availability

API and MCP access is included on Starter and above. On the free plan the keys page still shows you what you would get, with key creation disabled.

Try it without an assistant

The same key works against the REST API.

curl https://app.mappt.ai/api/v1/projects \
  -H "Authorization: Bearer mappt_pat_your_key_here"
MCP server | Mappt