Skip to main content
Glama
GRABOSM

OpenStreetMap MCP Server

by GRABOSM

OpenStreetMap MCP Server

A powerful Model Context Protocol (MCP) server for OpenStreetMap, providing 30 tools for geocoding, routing, quality assurance, and data analysis. Optimized for AI assistants like Cursor and Claude.

A community project by Grab β€” providing open-source mapping tools to help developers and researchers work with OpenStreetMap data more effectively.


🎯 Quick Start

1️⃣ Installation

git clone https://github.com/GRABOSM/osm-mcp.git cd osm-mcp npm install npm run build

2️⃣ Configure AI Integration

Cursor AI

  1. Open Cursor Settings β†’ Features β†’ Model Context Protocol.

  2. Add a new server with:

    • Type: command

    • Command: node /absolute/path/to/osm-mcp/dist/index.js

Cursor Desktop

Add this to your mcp.json:

{ "mcpServers": { "osm-mcp": { "command": "node", "args": ["/absolute/path/to/osm-mcp/dist/index.js"] } } }

Claude Desktop

Add this to your claude_desktop_config.json:

{ "mcpServers": { "osm": { "command": "node", "args": ["/absolute/path/to/osm-mcp/dist/index.js"] } } }

3️⃣ Start Using

Try asking your AI:

  • "Find coffee shops in Makati, Manila"

  • "Calculate a 15-minute driving isochrone from Grab HQ Singapore"

  • "Get directions from Changi Airport to Marina Bay Sands"


πŸš€ Key Features

  • Geocoding: Search addresses and landmarks globally.

  • Routing (OSRM): Turn-by-turn directions, distance matrices, and route optimization.

  • Smart POI: Find restaurants, shops, and attractions with intelligent tag detection.

  • Quality Assurance (OSMOSE): Detect mapping errors and monitor data quality.

  • Changeset Analysis: Analyze recent edits and user contributions.

  • Tag Intelligence (Taginfo): Real-world tag usage statistics and validation.

  • Dual Interface: Use via MCP (AI tools) or HTTP REST API.


πŸ› οΈ Tool Reference (30 Tools)

πŸ—ΊοΈ Geocoding (4)

  1. search_location: Search for places and addresses.

  2. reverse_geocode: Get address from coordinates.

  3. search_structured: Search by street, city, country, etc.

  4. get_place_details: Get full details of an OSM element.

πŸ“ Points of Interest (3)

  1. search_pois: General POI search (amenities, shops, etc.).

  2. search_pois_smart: Intelligent POI search with category detection.

  3. find_amenities_nearby: Locate facilities within a specific radius.

πŸ›£οΈ Routing & Navigation (5)

  1. get_osrm_route: Detailed turn-by-turn directions.

  2. get_distance_matrix: Travel times and distances between multiple points.

  3. optimize_route: Find the best route through multiple stops (TSP).

  4. map_match_gps: Snap GPS traces to the road network.

  5. calculate_isochrone: Area reachable within a time limit.

πŸ“Š OSM Data Analysis (6)

  1. search_highways_smart: Smart search for roads and motorways.

  2. get_elements_in_bounds: Get all data within a bounding box.

  3. search_by_tags: Find elements by specific OSM tags.

  4. get_route_data: Extract road geometry for custom use.

  5. execute_overpass_query: Run advanced Overpass QL queries.

  6. snap_to_roads: Find the nearest road for any point.

πŸ”„ Changeset Analysis (3)

  1. get_changeset: Details of a specific mapping edit.

  2. search_changesets: Find edits by user, time, or location.

  3. get_changeset_diff: View exact changes made in an edit.

πŸ” Quality Assurance (6)

  1. osmose_search_issues: Find data errors with filters.

  2. osmose_get_issue_details: Details of a specific quality issue.

  3. osmose_get_issues_by_country: Quality issues by nation.

  4. osmose_get_issues_by_user: Issues related to a specific user.

  5. osmose_get_stats: Data quality metrics and charts.

  6. osmose_get_items: List of detectable issue categories.

🏷️ Tag Intelligence (3)

  1. get_tag_suggestions: Autocomplete for OSM tags.

  2. get_tag_stats: Usage statistics for any tag.

  3. validate_osm_tag: Check if a tag combination is proper.


πŸ’‘ Example Usage

Navigation

"Get directions from KL Sentral to Petronas Twin Towers"

Urban Planning

"Calculate 30-minute driving isochrone from Grab HQ Singapore"

Quality Monitoring

"Analyze recent mapping activity in Bengaluru"


🌐 HTTP API Mode

Run as a standalone server:

npm run dev:http

Access docs at: http://localhost:8888/api/info


πŸ› οΈ Troubleshooting

  • Absolute Paths: Always use full paths in AI tool configurations.

  • Build First: Ensure you run npm run build after any changes.

  • Node Version: Use Node.js v18 or higher.


πŸ“„ License

This project is licensed under the MIT License.


πŸ™ Credits

  • OpenStreetMap Contributors

  • OSRM, Nominatim, Overpass, OSMOSE, Taginfo communities.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/GRABOSM/osm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server