OpenStreetMap MCP Server
for AI Agents
Connect your AI agent to StackOne's OpenStreetMap MCP server and give it 85 MCP tools out of the box. Auth, tool execution, and security all managed.
Coverage
85 Agent Actions
Create, read, update, and delete across OpenStreetMap — and extend your agent's capabilities with custom actions.
Authentication
Agent Tool Authentication
Per-user OAuth in one call. Your OpenStreetMap MCP server gets session-scoped tokens with zero credentials stored on your infra.
Agent Auth →Security
Agent Protection
Every OpenStreetMap tool response scanned for prompt injection in milliseconds — 88.7% accuracy, all running on CPU.
Prompt Injection Defense →Performance
Max Agent Context. Min Cost.
Free up to 96% of your agent's context window to enhance reasoning and reduce cost, on every OpenStreetMap call.
Tools Discovery →What is the OpenStreetMap MCP Server?
A OpenStreetMap MCP server lets AI agents read and write OpenStreetMap data through the Model Context Protocol — Anthropic's open standard for connecting LLMs to external tools. StackOne's OpenStreetMap MCP server ships with 85 pre-built actions, fully extensible via the Connector Builder — plus managed authentication, prompt injection defense, observability, and agent execution runtime. Connect it from MCP clients like Claude Desktop, Claude Code, Cursor, Goose, and VS Code, or from agent frameworks like OpenAI Agents SDK, LangChain, and Vercel AI SDK.
All OpenStreetMap MCP Tools
Every action from OpenStreetMap's API, ready for your agent. Create, read, update, and delete — scoped to exactly what you need.
Changesets
- Create Changeset
Open a new changeset (returns its ID)
- Upload Changeset
Upload an OsmChange diff to a changeset atomically (all-or-nothing)
- Get Changeset
Read a changeset's metadata (optionally with discussion)
- Download Changeset
Download the changes in a changeset as an OsmChange document
- List Changesets
Query changesets by bbox, user, time, and open/closed state
- Update Changeset
Update the tags of an open changeset
Nodes
- Create Node
Create a new node in an open changeset
- Get Node
Read the current version of a node
- Get Nodes
Multi-fetch nodes by ID list
- Update Node
Update a node (optimistic-lock on version)
- Delete Node
Delete a node
Ways
- Create Way
Create a new way (references node IDs, max 2000)
- Get Way
Read the current version of a way
- Get Ways
Multi-fetch ways by ID list
- Update Way
Update a way (optimistic-lock on version)
- Delete Way
Delete a way
Relations
- Create Relation
Create a new relation (references member elements)
- Get Relation
Read the current version of a relation
- Get Relations
Multi-fetch relations by ID list
- Update Relation
Update a relation (optimistic-lock on version)
- Delete Relation
Delete a relation
Gpx Traces
- Create Gpx Trace
Upload a new GPX trace file
- Update Gpx Trace
Update a GPS trace's metadata (owner only)
- Delete Gpx Trace
Delete a GPS trace (owner only)
Users
- Get User
Read a user's public profile by numeric ID
- Get Users
Multi-fetch user details by ID list
User Preferences
- Get User Preferences
Read all of the authenticated user's preferences
- Get User Preference
Read a single preference value by key
- Delete User Preference
Delete a single preference by key
Notes
- Create Note
Create a new map note (anonymous allowed; write_notes if authenticated)
- List Notes
Fetch map notes within a bounding box
- Get Note
Read a single note and its comment thread
- Search Notes
Search notes by text, author, and date
Messages
- Send Message
Send a private message to another user
- Get Message
Read a single private message (marks it read)
- Delete Message
Delete a private message
Other (49)
- Get Api Versions
List API versions supported by the server
- Get Capabilities
Get server capabilities and limits (max bbox, changeset element cap, timeouts)
- Get Permissions
List OAuth permissions granted to the current token
- Get Map Data
Fetch all nodes/ways/relations within a bounding box
- Get Node History
Fetch all versions of a node
- Get Node Version
Fetch a specific version of a node
- Get Node Relations
List relations that reference this node
- Get Node Ways
List ways that use this node
- Get Way History
Fetch all versions of a way
- Get Way Version
Fetch a specific version of a way
- Get Way Relations
List relations that reference this way
- Get Way Full
Fetch a way plus all its member nodes
- Get Relation History
Fetch all versions of a relation
- Get Relation Version
Fetch a specific version of a relation
- Get Relation Relations
List relations that reference this relation
- Get Relation Full
Fetch a relation plus all referenced members
- Get Trackpoints
Fetch raw public GPS trackpoints within a bounding box (paged, 5000/page)
- Get Gpx Trace Details
Read a GPS trace's metadata
- Get Gpx Trace Data
Download the raw GPS trace data file
- List Own Gpx Traces
List the authenticated user's own GPS traces
- Get Current User
Read the authenticated user's own profile details
- Get Notes Feed
RSS feed of note activity (optionally by bbox)
- List Inbox Messages
List the authenticated user's received private messages
- List Outbox Messages
List the authenticated user's sent private messages
- Get Place Details
Show full internal details of a single place
- Update Message Status
Update a message's read/unread flag
- Close Changeset
Close an open changeset
- Comment Changeset
Add a comment to a closed changeset's discussion
- Subscribe Changeset
Subscribe to a changeset's discussion notifications
- Unsubscribe Changeset
Unsubscribe from a changeset's discussion
- Unhide Changeset Comment
Unhide a previously hidden changeset comment (moderator)
- Hide Changeset Comment
Hide a changeset comment (moderator)
- Redact Node Version
Redact/un-redact a node version (moderator)
- Redact Way Version
Redact/un-redact a way version (moderator)
- Redact Relation Version
Redact/un-redact a relation version (moderator)
- Replace User Preferences
Replace the authenticated user's entire preference set
- Comment Note
Add a comment to an open note (auth required)
- Close Note
Close (resolve) a note
- Reopen Note
Reopen a closed note
- Subscribe Note
Subscribe to a note's updates
- Unsubscribe Note
Unsubscribe from a note's updates
- Hide Note
Hide (delete) a note (moderator)
- Geocode Search
Forward geocode: find places by free-form or structured address/name
- Reverse Geocode
Reverse geocode: build an address from a lat/lon coordinate
- Lookup Osm Objects
Look up address details for known OSM objects by ID
- Nominatim Status
Report whether the Nominatim service/database is up
- Run Overpass Query
Execute an Overpass QL query and return matching OSM data
- Overpass Status
Report current rate-limit slots and quota for the caller's IP
- Kill Overpass Queries
Terminate the caller's currently running Overpass queries
Set Up Your OpenStreetMap MCP Server in Minutes
One endpoint. Any framework. Your agent is talking to OpenStreetMap in under 10 lines of code.
Agent Frameworks
{
"mcpServers": {
"stackone": {
"command": "npx",
"args": [
"-y",
"mcp-remote@latest",
"https://api.stackone.com/mcp?x-account-id=<account_id>",
"--header",
"Authorization: Basic <YOUR_BASE64_TOKEN>"
]
}
}
}Platform Resources
MCP Code Mode: Keeping Tool Responses Out of Agent Context
Anthropic's code_execution processes data already in context. Custom MCP code mode keeps raw tool responses in a sandbox. 14K tokens vs 500.
11 min
Comparing BM25, TF-IDF, and Hybrid Search for MCP Tool Discovery
Benchmarking BM25, TF-IDF, and hybrid search for MCP tool discovery across 916 tools. The 80/20 TF-IDF/BM25 hybrid hits 21% Top-1 accuracy in under 1ms.
10 min
Indirect Prompt Injection Defense for MCP Tools: A Technical Guide
MCP tools that read emails, CRM records, and tickets are indirect prompt injection vectors. Here's how we built a two-tier defense that scans tool results in ~11ms.
12 min
MCP vs A2A: Architecture, Security, and When to Use Each
MCP vs A2A: what each protocol standardizes, how they differ, their shared security risks including indirect prompt injection, and when to use one, both, or a hybrid architecture.
12 min
MCP vs API: What 200+ Connector Builds Taught Us
MCP wraps APIs, it doesn't replace them. After building 200+ connectors that serve both, here's when each approach wins.
14 min read
OpenStreetMap MCP Server FAQ
Does StackOne have a OpenStreetMap MCP server?
OpenStreetMap MCP server vs direct API integration — what's the difference?
How does OpenStreetMap authentication work for AI agents?
origin_owner_id.Are OpenStreetMap MCP tools vulnerable to prompt injection?
What is the context bloat of a OpenStreetMap agent and how do I avoid it?
Can I limit which actions my OpenStreetMap agent can access?
Can I create custom agent actions for my OpenStreetMap MCP server?
When should I NOT use a OpenStreetMap MCP server?
What AI frameworks and AI clients does the StackOne OpenStreetMap MCP server support?
Put your AI agents to work
All the tools you need to build and scale AI agent integrations, with best-in-class connectivity, execution, and security.