geo-mcp
OSM-backed multimodal navigation MCP server enabling geocoding, route planning, POI discovery, and urban layout analysis. It provides a structured city graph to LLM apps without proprietary map APIs.
README
geo-mcp
OSM-backed multimodal (walk + transit) navigation MCP server. Gives LLM apps a structured graph of the city so they can geocode, route, explore POIs, and reason about urban layout without proprietary map APIs.
Features
- Clean Architecture / DDD (Python 3.14): domain pathfinding stays free of OSM/NetworkX details
- Multimodal graph: OSMnx walking network + OSM transit stops/routes + transfer edges
- Disk cache: bbox-keyed local graph cache under
~/.cache/geo-mcp/ - MCP tools compatible with Cursor, Claude Desktop, Codex, etc. (stdio)
Tools
| Tool | Purpose |
|---|---|
load_area |
Fetch/cache walk+transit graph for a place or bbox |
geocode |
Place / address → coordinates |
reverse_geocode |
Coordinates → place |
plan_route |
Multimodal A* path with legs + narrative |
find_nearby |
Nearby OSM POIs |
list_transit_options |
Nearby stops and lines |
describe_area |
Major roads, neighborhoods, landmarks, connectivity notes |
snap_to_network |
Nearest graph node to a coordinate |
Requirements
- Python 3.14+
- uv
Install
cd /path/to/geo-mcp
uv sync
Run (stdio MCP)
uv run geo-mcp
Cursor config
Project example: .cursor/mcp.json
Or add to ~/.cursor/mcp.json:
{
"mcpServers": {
"geo-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/geo-mcp",
"run",
"geo-mcp"
]
}
}
}
Suggested agent flow
geocodethe destination (and origin if needed)load_areafor the neighborhood / placedescribe_areafor spatial contextplan_routewith coordinates- Optionally
find_nearby/list_transit_options
Tests
uv run pytest
Live OSM smoke (needs network):
uv run python scripts/smoke_route.py
Configuration
Environment variables use the GEO_MCP_ prefix:
GEO_MCP_USER_AGENT— Nominatim/Overpass User-AgentGEO_MCP_CACHE_DIR— graph cache directoryGEO_MCP_NOMINATIM_URL/GEO_MCP_OVERPASS_URL
Attribution & policy
- Map data © OpenStreetMap contributors
- Respect Nominatim usage policy and Overpass etiquette (polite User-Agent, modest request rates)
Architecture
src/geo_mcp/
domain/ # entities + pure pathfinding
application/ # use cases + DTOs
infrastructure/ # OSM adapters + cache
interfaces/mcp/ # FastMCP tools
MVP limits
- Transit uses OSM topology / heuristic speeds (not GTFS schedules)
- Large city-wide bboxes are automatically shrunk around the geocoded center
- First
load_areafor a bbox can take a while while Overpass/OSMnx respond
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.