{"id":"4e9db6c2-723d-4a79-8b54-ca5fa1358a42","slug":"grabosm-osm-mcp","kind":"mcp","name":"osm-mcp","summary":"MCP server for OpenStreetMap","owner":"GRABOSM","repoUrl":"https://github.com/GRABOSM/osm-mcp","license":"MIT","licenseTier":"permissive","trust":"community","stars":5,"match":null,"fewStars":false,"format":"mcp","createdAt":"2026-01-20T08:59:35.000Z","addedAt":"2026-10-21T16:40:12.885Z","logoUrl":"https://avatars.githubusercontent.com/u/38514914?u=8a7bb03c783b0178e8696f6111e641468346ca50&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["cloud-infra"],"tags":[],"runtime":"node","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-25T22:32:07.926Z","sample":false,"url":"https://conduits.dev/tools/grabosm-osm-mcp","language":"TypeScript","transports":["stdio"],"install":{"npm":"osm-mcp"},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# OpenStreetMap MCP Server\n\nA 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.\n\n**A community project by Grab** — providing open-source mapping tools to help developers and researchers work with OpenStreetMap data more effectively.\n\n---\n\n## 🎯 Quick Start\n\n### 1️⃣ Installation\n```bash\ngit clone https://github.com/GRABOSM/osm-mcp.git\ncd osm-mcp\nnpm install\nnpm run build\n```\n\n### 2️⃣ Configure AI Integration\n\n#### **Cursor AI**\n1. Open Cursor **Settings** → **Features** → **Model Context Protocol**.\n2. Add a new server with:\n   - **Type**: `command`\n   - **Command**: `node /absolute/path/to/osm-mcp/dist/index.js`\n\n#### **Cursor Desktop**\nAdd this to your `mcp.json`:\n```json\n{\n  \"mcpServers\": {\n    \"osm-mcp\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/osm-mcp/dist/index.js\"]\n    }\n  }\n}\n```\n\n#### **Claude Desktop**\nAdd this to your `claude_desktop_config.json`:\n```json\n{\n  \"mcpServers\": {\n    \"osm\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/osm-mcp/dist/index.js\"]\n    }\n  }\n}\n```\n\n### 3️⃣ Start Using\nTry asking your AI:\n- \"Find coffee shops in Makati, Manila\"\n- \"Calculate a 15-minute driving isochrone from Grab HQ Singapore\"\n- \"Get directions from Changi Airport to Marina Bay Sands\"\n\n---\n\n## 🚀 Key Features\n\n*   **Geocoding**: Search addresses and landmarks globally.\n*   **Routing (OSRM)**: Turn-by-turn directions, distance matrices, and route optimization.\n*   **Smart POI**: Find restaurants, shops, and attractions with intelligent tag detection.\n*   **Quality Assurance (OSMOSE)**: Detect mapping errors and monitor data quality.\n*   **Changeset Analysis**: Analyze recent edits and user contributions.\n*   **Tag Intelligence (Taginfo)**: Real-world tag usage statistics and validation.\n*   **Dual Interface**: Use via MCP (AI tools) or HTTP REST API.\n\n---\n\n## 🛠️ Tool Reference (30 Tools)\n\n### 🗺️ Geocoding (4)\n1. `search_location`: Search for places and addresses.\n2. `reverse_geocode`: Get address from coordinates.\n3. `search_structured`: Search by street, city, country, etc.\n4. `get_place_details`: Get full details of an OSM element.\n\n### 📍 Points of Interest (3)\n5. `search_pois`: General POI search (amenities, shops, etc.).\n6. `search_pois_smart`: Intelligent POI search with category detection.\n7. `find_amenities_nearby`: Locate facilities within a specific radius.\n\n### 🛣️ Routing & Navigation (5)\n8. `get_osrm_route`: Detailed turn-by-turn directions.\n9. `get_distance_matrix`: Travel times and distances between multiple points.\n10. `optimize_route`: Find the best route through multiple stops (TSP).\n11. `map_match_gps`: Snap GPS traces to the road network.\n12. `calculate_isochrone`: Area reachable within a time limit.\n\n### 📊 OSM Data Analysis (6)\n13. `search_highways_smart`: Smart search for roads and motorways.\n14. `get_elements_in_bounds`: Get all data within a bounding box.\n15. `search_by_tags`: Find elements by specific OSM tags.\n16. `get_route_data`: Extract road geometry for custom use.\n17. `execute_overpass_query`: Run advanced Overpass QL queries.\n18. `snap_to_roads`: Find the nearest road for any point.\n\n### 🔄 Changeset Analysis (3)\n19. `get_changeset`: Details of a specific mapping edit.\n20. `search_changesets`: Find edits by user, time, or location.\n21. `get_changeset_diff`: View exact changes made in an edit.\n\n### 🔍 Quality Assurance (6)\n22. `osmose_search_issues`: Find data errors with filters.\n23. `osmose_get_issue_details`: Details of a specific quality issue.\n24. `osmose_get_issues_by_country`: Quality issues by nation.\n25. `osmose_get_issues_by_user`: Issues related to a specific user.\n26. `osmose_get_stats`: Data quality metrics and charts.\n27. `osmose_get_items`: List of detectable issue categories.\n\n### 🏷️ Tag Intelligence (3)\n28. `get_tag_suggestions`: Autocomplete for OSM tags.\n29. `get_tag_stats`: Usage statistics for any tag.\n30. `validate_osm_tag`: Check if a tag combination is proper.\n\n---\n\n## 💡 Example Usage\n\n### Navigation\n> \"Get directions from KL Sentral to Petronas Twin Towers\"\n\n### Urban Planning\n> \"Calculate 30-minute driving isochrone from Grab HQ Singapore\"\n\n### Quality Monitoring\n> \"Analyze recent mapping activity in Bengaluru\"\n\n---\n\n## 🌐 HTTP API Mode\nRun as a standalone server:\n```bash\nnpm run dev:http\n```\nAccess docs at: `http://localhost:8888/api/info`\n\n---\n\n## 🛠️ Troubleshooting\n- **Absolute Paths**: Always use full paths in AI tool configurations.\n- **Build First**: Ensure you run `npm run build` after any changes.\n- **Node Version**: Use Node.js v18 or higher.\n\n---\n\n## 📄 License\nThis project is licensed under the **MIT License**.\n\n---\n\n## 🙏 Credits\n- **OpenStreetMap Contributors**\n- **OSRM**, **Nominatim**, **Overpass**, **OSMOSE**, **Taginfo** communities.\n"}