geo-mcp

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.

Category
Visit Server

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

  1. geocode the destination (and origin if needed)
  2. load_area for the neighborhood / place
  3. describe_area for spatial context
  4. plan_route with coordinates
  5. 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-Agent
  • GEO_MCP_CACHE_DIR — graph cache directory
  • GEO_MCP_NOMINATIM_URL / GEO_MCP_OVERPASS_URL

Attribution & policy

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_area for a bbox can take a while while Overpass/OSMnx respond

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured