osm-mcp
19
MCP-OSM integrates OpenStreetMap data with the Model Context Protocol, providing a web-based interface for map visualization and data querying. It features various tools for interacting with map data, such as adding markers and querying a PostgreSQL/PostGIS database.
MCP-OSM: OpenStreetMap Integration for MCP
This package provides OpenStreetMap integration for MCP, allowing users to query and visualize map data through an MCP interface.
Features
- Web-based map viewer using Leaflet and OpenStreetMap
- Server-to-client communication via Server-Sent Events (SSE)
- MCP tools for map control (adding markers, polygons, setting view, getting view)
- PostgreSQL/PostGIS query interface for OpenStreetMap data
Installation
This is my claude_desktop_config.json
:
{
"mcpServers": {
"OSM PostgreSQL Server": {
"command": "/Users/wiseman/.local/bin/uv",
"args": [
"run",
"--env-file",
".env",
"--with",
"mcp[cli]",
"--with",
"psycopg2",
"--with-editable",
"/Users/wiseman/src/mcp-osm",
"--directory",
"/Users/wiseman/src/mcp-osm",
"mcp",
"run",
"mcp.py"
]
}
}
}
When the MCP server starts it also starts a web server at http://localhost:8889/ that has the map interface.
Environment Variables
The following environment variables can be used to configure the MCP:
FLASK_HOST
- Host for the Flask server (default: 127.0.0.1)FLASK_PORT
- Port for the Flask server (default: 8889)PGHOST
- PostgreSQL host (default: localhost)PGPORT
- PostgreSQL port (default: 5432)PGDB
- PostgreSQL database name (default: osm)PGUSER
- PostgreSQL username (default: postgres)PGPASSWORD
- PostgreSQL password (default: postgres)
MCP Tools
The following MCP tools are available:
get_map_view
- Get the current map viewset_map_view
- Set the map view to specific coordinates or boundsset_map_title
- Set the title displayed at the bottom right of the mapadd_map_marker
- Add a marker at specific coordinatesadd_map_line
- Add a line defined by a set of coordinatesadd_map_polygon
- Add a polygon defined by a set of coordinatesquery_osm_postgres
- Execute a SQL query against the OpenStreetMap database