Skip to main content
Glama
neco001

OSM MCP Analytics Server

by neco001

Enterprise OpenStreetMap (OSM) MCP Analytics Server

A modular, high-performance Model Context Protocol (MCP) server for OpenStreetMap. This implementation goes beyond simple geocoding, providing advanced geospatial analytics like neighborhood livability scoring and commute analysis.

🚀 Why this server?

While there are many OSM MCP servers, this version is built for stability, modular extension, and advanced insights:

  • Modular Architecture: Clean separation between API Client, Utility logic, and Tool definitions. Easy to audit and extend.

  • Enterprise Analytics:

    • analyze_neighborhood: Calculates a "Livability Score" based on walking proximity to essential services (groceries, healthcare, parks).

    • analyze_commute: Multi-modal comparison of travel times (car, bike, foot) for lifestyle planning.

  • Efficient: Uses FastMCP for asynchronous I/O and structured tool registration.

  • Windows Optimized: Built and tested to run reliably as a background process on Windows environments.

🛠 Features

Core Tools

  • Geocoding: geocode_address, reverse_geocode

  • Routing: get_route_directions (OSRM based)

  • Search: find_nearby_places, search_category

  • Analytics: explore_area, analyze_neighborhood, analyze_commute

Specialized Tools (Optional)

Found in tools/extras.py (not loaded by default for performance):

  • find_schools_nearby

  • find_ev_charging_stations

  • find_parking_facilities

  • suggest_meeting_point

Resources

  • location://place/{query}: Real-time place metadata.

  • location://map/{style}/{z}/{x}/{y}: Interactive map tile retrieval.

📦 Installation

Requirements

  • Python 3.10+

  • uv (recommended) or pip

Method 1: Via MCP Config (Claude/Cursor)

Add this to your mcp_config.json:

{
  "mcpServers": {
    "osm-mcp": {
      "command": "python",
      "args": [
        "c:/path/to/osm-mcp-server/src/openstreetmap_mcp/server.py"
      ],
      "env": {
        "PYTHONPATH": "c:/path/to/osm-mcp-server/src/openstreetmap_mcp"
      }
    }
  }
}

Method 2: Local Development

git clone https://github.com/neco001/openstreetmap-mcp
cd openstreetmap-mcp
uv sync

📂 Project Structure

src/openstreetmap_mcp/
├── server.py           # Main Entry Point
├── instance.py         # FastMCP lifecycle
├── client.py           # HTTP logic for OSM/OSRM/Overpass
├── utils.py            # Haversine & geometric helpers
├── tools/              # Categorized tool definitions
│   ├── geocoding.py
│   ├── routing.py
│   ├── search.py
│   └── analysis.py
└── resources.py        # Map & Data resources

⚖️ License

MIT License - feel free to use, modify and distribute.

Acknowledgments

Original logic & concepts by Jagan Shanmugam. This repository is a modular refactor focused on Enterprise usage, Windows compatibility, and Analytics tools.

A
license - permissive license
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/neco001/openstreetmap-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server