OpenStreetMap MCP. Query, Edit, and Audit Geospatial Data by Chat
OpenStreetMap MCP lets your AI client interact with the world's largest open geographic database. You can query raw map data, create new points of interest, manage complex boundaries, and track historical changes for any location. It gives you full control over geospatial elements—reading everything from nodes to relations directly through natural conversation.
Give Claude and any AI agent real-world access
Fetch all nodes, ways, and relations within specified geographic areas for deep analysis.
Add or modify points of interest (nodes), roads (ways), or complex boundaries (relations) directly via chat.
Group related changes, open new work sessions, and officially close completed map updates.
Review the full version timeline for any specific element to see who changed it and when.
Send private messages or add descriptive notes attached to map features.
Ask an AI about this
Waiting for input…
What AI agents can do with OpenStreetMap MCP: 27 Map Data Operations Tools
These tools give your AI client granular control over every aspect of OpenStreetMap data, from retrieving raw coordinates to managing complex changesets and map notes.
Make your AI actually useful.
Add this MCP to Claude, Cursor, or Windsurf and your AI stops guessing. It gets real tools to look things up, take action, and handle the stuff you keep doing by hand.
Start using OpenStreetMap MCPClose Changeset
Marks a collection of edits as complete within the OpenStreetMap system.
Close Note
Closes a specific map note, removing it from public view.
Comment Note
Adds an additional comment to an already existing map note.
Create Changeset
Starts a new, isolated group of edits so you can track your work before submission.
Create Element
Adds a brand-new geographic element, such as a point (node), road segment (way), or...
Create Note
Writes and publishes a new descriptive map note for a location.
Delete Element
Removes an existing node, way, or relation from the map data.
Delete Message
Deletes a specific message record.
Download Changeset
Downloads the full details of an approved changeset in a specialized format for...
Get Auth User Details
Retrieves basic information about the user who connected their account.
Get Changeset
Reads and displays all details for a specific changeset ID.
Get Element History
Retrieves the full audit trail, showing every recorded change to an element by date and user.
Get Element
Reads all current data for a single geographic element using its unique ID.
Get Elements
Retrieves multiple nodes, ways, or relations at once based on provided IDs.
Get Gpx Data
Downloads the raw coordinate data for a specified GPS trace.
Get Gpx Metadata
Reads descriptive information (like timestamps or device used) attached to a GPS...
Get Inbox
Retrieves all unread and read messages intended for the authenticated user.
Get Map Data
Fetches nodes, ways, or relations that fall within a specific set of geographical coordinates (bounding box).
Get Message
Reads the full content and status of one private message from another user.
Get Note
Displays the full text and details of a specific map note by its ID.
Get Outbox
Retrieves all messages that the user has sent but are awaiting delivery confirmation.
Get Permissions
Checks what specific actions the connected account is authorized to perform.
Get User Preferences
Reads settings and personal preferences configured for the authenticated user's...
Get User
Retrieves detailed profile information for a specific, named user on the map platform.
List Notes
Lists all existing map notes that are contained within defined geographic coordinates.
List User Gpx
Retrieves a list of GPS traces uploaded or associated with the authenticated user's...
Query Changesets
Searches and filters changesets based on criteria like time range, user, or...
Search Notes
Finds map notes by searching through their content keywords.
Send Message
Sends a private message to another specific user within the network.
Update Changeset
Modifies descriptive tags or metadata for an open, ongoing changeset.
Update Element
Changes existing data (like names or attributes) on a node, way, or relation that already exists.
Update Message Status
Marks a message as read or unread to update the sender's status.
Upload Gpx
Uploads an entirely new GPS trace file (GPX format) for permanent storage and...
Security and governance baked right in.
Pick your AI client below to get set up. Just create a Vinkius account, subscribe, and you're instantly up and running. We handle the entire backend infrastructure, delivering out-of-the-box support for HTTPS Streamable, SSE, and OAuth2—zero messy routing required.
Choose How to Get Started
Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.
Build Your Own
Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.
- Import from OpenAPI, Swagger, or YAML specs
- Create Agent Skills with progressive disclosure
- Deploy to edge with MCPFusion framework
- Built in DLP, auth, and compliance on each call
- Real time usage dashboard and cost metering
- Publish to catalog or keep private
Make Your AI Do More
Start with OpenStreetMap, then connect any of our 5,200+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 5,200+ others, all in one place
- Add new capabilities to your AI anytime you want
- Connections are secured and governed automatically
- Track usage and costs across all your servers
- Works with Claude, ChatGPT, Cursor, and more
- New servers added to the catalog weekly
Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by OpenStreetMap. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.
VINKIUS CLOUD
Cloud Hosted
Managed infra
V8 Isolated
Sandboxed per request
Zero-Trust Proxy
No stored credentials
DLP Enforced
Policy on each call
GDPR Compliant
EU data residency
Token Compression
~60% cost reduction
The Struggle With Manual Map Data Collection
Right now, getting comprehensive map data means jumping between multiple tabs. You might download one file for nodes, another for ways, and then spend time manually cross-referencing them to ensure everything aligns with your project's needs. It’s a process of constant downloading, renaming, and copy-pasting.
With this MCP, that whole workflow collapses into conversation. Your agent fetches exactly what you need—nodes, ways, or relations—within specific coordinates in one go. You get clean, structured data without touching an export button.
Get Map Data and Audit Element History
You don't have to manually check the version history or hunt through old records anymore. Instead of opening a separate web interface just to see who modified a road segment, you ask your agent to run get_element_history.
It pulls up the entire audit trail—who changed it and when—right in your chat window. You don't analyze data; you simply retrieve verified facts.
What OpenStreetMap MCP does for your AI
This MCP connects your AI agent directly to the OpenStreetMap API, letting it handle geographic data like a specialized GIS analyst would. Instead of manually exporting map layers or navigating complex web forms, your agent acts as an intermediary, allowing you to ask questions and make changes using plain language.
For example, you can request all points of interest within a specific bounding box for analysis, or audit the history of a particular road segment over time. Need to contribute to open-source mapping? You can automate creating new map notes, updating existing boundaries, and even managing entire groups of edits by opening and closing changesets—all without leaving your current chat window.
Vinkius makes this connection simple; you just connect your preferred AI client once and gain access to the full range of these powerful geospatial tools.
It's about treating map data like a conversation: getting information, making adjustments, or tracking who changed what, immediately.
019e38cf-3c1b-7080-a16a-39ec0051266b How to set up OpenStreetMap MCP
The bottom line is you use your AI client to talk to the API, which then performs the complex map operations.
Subscribe to this MCP and provide your OpenStreetMap OAuth Token.
Connect your AI client (like Claude, Cursor, etc.) through the Vinkius platform.
Start by giving a natural language command, such as 'Get all nodes between X and Y coordinates,' or 'Create a new way for this path.'
Who uses OpenStreetMap MCP
This MCP is built for people who deal with location data daily—GIS analysts needing quick data exports, open-source contributors automating mapping tasks, or developers building location-based apps. If your job involves understanding where things are and how they connect, this is for you.
Needs to quickly extract raw map data (nodes, ways, relations) across specific regions without manually downloading files or running complex scripts.
Wants to automate the creation of new map elements or manage changesets via chat, keeping track of edits and providing metadata for the OSM community.
Needs to inspect map element metadata, check version history using get_element_history, and build location services by querying data directly.
Benefits of connecting OpenStreetMap MCP
Stop manually exporting raw data. The get_map_data tool lets you query nodes, ways, or relations within any bounding box using a simple chat command.
Don't just add points; manage the full lifecycle of map edits. Use create_changeset and close_changeset to group your work and submit it cleanly.
Need accountability? get_element_history tracks every single change made to an element, showing who did it and exactly when.
Go beyond simple querying by sending messages or creating notes. You can use send_message to coordinate with collaborators or create_note to annotate a specific location's context.
It handles complex data formats natively. Uploading GPS traces via upload_gpx means you never have to worry about manual file transfer again.
OpenStreetMap MCP use cases
Auditing neighborhood infrastructure changes
A city planner needs to verify if all new bike lanes were tagged correctly. They use get_element and then get_element_history for a specific 'way' ID, instantly confirming that the required 'bicycle_lane' tag was added by the correct user at the right time.
Building a custom location dashboard
A developer needs to feed fresh data into an application. They use get_gpx_data and then list_user_gpx to pull coordinates from multiple sources, ensuring their service always runs on the latest map information.
Contributing structured open-source edits
An amateur cartographer finds a missing public fountain. Instead of leaving just a comment, they use create_note to add context, then create_element to define the node, and finally update_changeset to tag it properly.
Coordinating field research teams
A survey team leader needs to check if the ground crew has finished marking a zone. They use list_notes to see all notes within the area, and then can send_message to individual workers for status updates.
OpenStreetMap MCP tradeoffs
What to watch out for, and the recommended way to handle each one.
Treating map data like a static database query
Trying to get every single detail about an element by repeatedly running 'get_element' calls, resulting in slow, inefficient chats and hitting rate limits.
Use the batch function. Instead of querying elements one by one, gather all necessary IDs first, then use get_elements to fetch them simultaneously. This is faster and more stable.
Assuming you need a dedicated data export tool
Running multiple separate commands just to pull coordinates for a path, leading to messy outputs and forcing manual clean-up.
Use the specialized upload_gpx or get_gpx_data tools. They handle the entire GPS trace format in one go, giving you structured data ready for consumption.
Writing a narrative instead of asking specific questions
Saying 'Tell me about the area around this intersection,' which results in vague lists and doesn't provide actionable data like road names or boundaries.
Be precise. Use get_map_data and specify your bounding box coordinates, then follow up with an action: 'Now, for that data, please use update_element to add a 'restaurant' tag to all nodes.'
When to use OpenStreetMap MCP
Use this MCP if your core problem revolves around the structure and provenance of geographic information. This is not just a simple map viewer; it's an API wrapper that allows you to act as a full GIS specialist via natural language. If you need to read coordinates, modify attributes (update_element), or track who made a change (get_element_history), this MCP works. Don't use it if your only goal is general map visualization; stick to dedicated mapping platforms for that. Also, don't rely on it for data outside the core OSM dataset—it won't help with proprietary corporate records. If you need to interact with completely different types of structured data (like HR databases), look at a specialized database MCP instead.
Frequently asked questions about OpenStreetMap MCP
How do I query map data using OpenStreetMap MCP? +
You use get_map_data by specifying a bounding box (the coordinates) and what type of element you want to read. The system returns nodes, ways, or relations found within that exact area.
Can I track changes on OpenStreetMap MCP? +
Yes, use get_element_history with an element ID. This tool retrieves the complete version timeline, showing every user who modified it and when they did it.
What is 'changeset' in OpenStreetMap MCP? +
A changeset groups multiple edits together (like adding five points of interest). You use create_changeset to start the group, make your edits, and then close_changeset when you are done.
Do I need a specific API key for OpenStreetMap MCP? +
Yes. When setting up this MCP on Vinkius, you must enter your unique OpenStreetMap OAuth Token to authorize the agent to write data.
How do I add new points of interest using OpenStreetMap MCP? +
You use create_element and specify that you want to build a 'node' (a point). You provide the coordinates and any necessary tags, and the system handles the creation.