Skip to main content

mcp-geo

A geospatial MCP server that gives agents dependable GIS tools: geocoding, routing, OpenStreetMap queries, geometry operations, file inspection, raster sampling, elevation, isochrones, static maps, and workspace storage.

PyPI version CI License: MIT

Why it exists

Geospatial work usually requires several specialized libraries and services. mcp-geo packages common GIS operations behind stable MCP tools so an agent can compose real spatial workflows instead of generating one-off scripts.

Example workflow:

  1. geocode a place such as "Buriganga River, Dhaka".
  2. buffer the returned point by 2 km.
  3. osm_features for {"amenity": "hospital"} inside that area.
  4. distance or nearest_neighbor to rank the results.
  5. static_map or save_map to create a visual preview.

Installation

pip install mcp-geo

For local GIS files:

pip install "mcp-geo[files,raster,visual]"

MCP client config

{
  "mcpServers": {
    "geo": {
      "command": "uvx",
      "args": ["mcp-geo"]
    }
  }
}

The default transport is stdio. HTTP and SSE are also available:

mcp-geo --http --host 127.0.0.1 --port 8000
mcp-geo --sse --host 127.0.0.1 --port 8000

Tools

Geometry

buffer, distance, area, length, centroid, simplify, convex_hull, bbox, spatial_predicate, transform_crs, validate_geojson

Geocoding and OSM

geocode, reverse_geocode, build_overpass_query, osm_features, overpass_query

Routing, elevation, and accessibility

route, route_matrix, nearest_road, elevation, elevation_profile, isochrone

Files and rasters

vector_info, vector_read, raster_info, zonal_stats, sample_raster

Advanced workflows

build_spatial_index, spatial_query, spatial_join, cached_geocode, batch_geocode, nearest_neighbor, repair_geometry, validate_geometry

Workspace and visualization

workspace_store, workspace_get, workspace_list, workspace_clear, workspace_rename, static_map, save_map, suggest_tools, list_all_tools

Configuration

The server works without configuration by using public geospatial services. For production use, self-host high-volume providers where possible.

Variable Default Description
GEO_MCP_NOMINATIM_URL https://nominatim.openstreetmap.org Forward and reverse geocoding
GEO_MCP_OSRM_URL https://router.project-osrm.org Routing and nearest-road lookup
GEO_MCP_OVERPASS_URL https://overpass-api.de/api/interpreter OpenStreetMap feature queries
GEO_MCP_ORS_API_KEY unset OpenRouteService key for isochrones
GEO_MCP_HTTP_RETRIES 3 HTTP retry count

mcp-geo sends a project-specific User-Agent and rate-limits Nominatim calls to one request per second by default.

Development

git clone https://github.com/tabibhasann/geo-mcp.git
cd geo-mcp
uv sync --group dev
uv run ruff check src/ tests/
uv run mypy src/
uv run pytest

Optional GIS dependencies can be tested with:

uv sync --group dev --extra files --extra raster --extra visual
uv run pytest

Docker

docker build -t mcp-geo .
docker run --rm -p 8000:8000 mcp-geo mcp-geo --http --host 0.0.0.0 --port 8000

License

MIT

Metadata

Release files for mcp-geo 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-geo 0.3.0
File Size Uploaded Provenance Actions
mcp_geo-0.3.0.tar.gz 237.6 kB With provenance Details for mcp_geo-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for mcp-geo 0.3.0
File Interpreter ABI Platform Actions
mcp_geo-0.3.0-py3-none-any.whl Python 3 none any Details for mcp_geo-0.3.0-py3-none-any.whl

Total release size: 270.0 kB

Release files / mcp_geo-0.3.0.tar.gz

Download URL mcp_geo-0.3.0.tar.gz
Size 237.6 kB
Tags Source
SHA-256 checksum
How to use checksums
5a3e4481115e7f5c949160126337181efe23e1566ccb2649d4407ffe46753234
BLAKE2b-256 checksum
How to use checksums
bebde30ca2d8964a21358636b5761cf60cf4330c93e69596d6281670557d6293
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 9, 2026.

Transparency log

Release files / mcp_geo-0.3.0-py3-none-any.whl

Download URL mcp_geo-0.3.0-py3-none-any.whl
Size 32.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
527568349c1f13283b74afcd2cd93a309693d493eaf288a1a5cff2ced5680d75
BLAKE2b-256 checksum
How to use checksums
4b8e931612da69eb7df4dafc6342d0bf069a6e362147921b5296f94a35c004a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 9, 2026.

Transparency log

Security for mcp-geo 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for mcp_geo-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 9, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page