About Osm MCP
Osm MCP is an MCP server published by GRABOSM in the Maps category: mCP server for OpenStreetMap.
The repository has 5 stars and 1 forks, with the last commit 9 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/GRABOSM/osm-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Osm MCP
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 1 hours ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- ✓Tests presentA test suite exists in the repository.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
1 check has not been run yet.
README
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
- Open Cursor Settings → Features → Model Context Protocol.
- Add a new server with:
- Type:
command - Command:
node /absolute/path/to/osm-mcp/dist/index.js
- Type:
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)
search_location: Search for places and addresses.reverse_geocode: Get address from coordinates.search_structured: Search by street, city, country, etc.get_place_details: Get full details of an OSM element.
📍 Points of Interest (3)
search_pois: General POI search (amenities, shops, etc.).search_pois_smart: Intelligent POI search with category detection.find_amenities_nearby: Locate facilities within a specific radius.
🛣️ Routing & Navigation (5)
get_osrm_route: Detailed turn-by-turn directions.get_distance_matrix: Travel times and distances between multiple points.optimize_route: Find the best route through multiple stops (TSP).map_match_gps: Snap GPS traces to the road network.calculate_isochrone: Area reachable within a time limit.
📊 OSM Data Analysis (6)
search_highways_smart: Smart search for roads and motorways.get_elements_in_bounds: Get all data within a bounding box.search_by_tags: Find elements by specific OSM tags.get_route_data: Extract road geometry for custom use.execute_overpass_query: Run advanced Overpass QL queries.snap_to_roads: Find the nearest road for any point.
🔄 Changeset Analysis (3)
get_changeset: Details of a specific mapping edit.search_changesets: Find edits by user, time, or location.get_changeset_diff: View exact changes made in an edit.
🔍 Quality Assurance (6)
osmose_search_issues: Find data errors with filters.osmose_get_issue_details: Details of a specific quality issue.osmose_get_issues_by_country: Quality issues by nation.osmose_get_issues_by_user: Issues related to a specific user.osmose_get_stats: Data quality metrics and charts.osmose_get_items: List of detectable issue categories.
🏷️ Tag Intelligence (3)
get_tag_suggestions: Autocomplete for OSM tags.get_tag_stats: Usage statistics for any tag.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 buildafter 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.
README fetched from the repository 1 hours ago. The original is authoritative.