Read-only access to a self-hosted GeoLens spatial catalog: datasets, features, maps, sandboxed SQL.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
English | EspaΓ±ol | FranΓ§ais | Deutsch
Your team's self-hosted spatial data hub: searchable, mappable, and shareable in one place.
GeoLens is an open-source spatial data hub for GIS and data teams: one place to find and work with data on infrastructure you control, with no telemetry. GeoLens itself phones home to nothing, except the default basemap tiles, which load from tiles.openfreemap.org until an admin configures a different one. (Other features you opt into can make outbound calls: AI assist to your chosen OpenAI-compatible endpoint or Anthropic key, OAuth/OIDC sign-in, SMTP, remote/S3 data sources, and off-site backups.) Upload files, create datasets in the browser, register tables already in GeoLens's own PostGIS database without copying them, import one-shot copies from WFS, ArcGIS FeatureServer, or OGC API Features, or reference remote STAC assets live. GeoLens records each dataset's origin, indexes catalog metadata with pg_trgm for fuzzy search out of the box (pgvector adds semantic ranking once you configure an embedding provider and enable semantic search), and serves OGC/STAC APIs that QGIS, ArcGIS, and MapLibre clients connect to natively. Compose, style, and share multi-layer maps right in the browser. Built on FastAPI and React. Deployed with one command.
No install required. Browse the sample catalog and maps without an account, or sign in with Google, GitHub, or Microsoft to try the map builder. Demo data may be wiped at any time.
Or the one-line form, which runs the same script and pulls the prebuilt images:
Images are published for linux/amd64 and linux/arm64. A fresh install runs six containers at about 1.3 GB resident.
The map builder: every Manhattan building extruded to its true roof height and colored by the era it was built, the subway threading beneath, built from open data with scripts/seed-showcase.py
[!NOTE] API stability. The standards surfaces (OGC API Features/Records, STAC, and the tile endpoints) track their specifications and are safe to build against. GeoLens's own REST API can still change between minor releases: contract changes are listed in the CHANGELOG, and breaking ones keep the old form working for at least one more minor release. Hit a rough edge? Open an issue.
Full user, admin, and API documentation lives at docs.getgeolens.com. The Reference table below links each guide.
GeoLens is published through the standard package registries:
Prebuilt public API and frontend images are published to GitHub Container Registry:
The latest tag tracks the newest published stable release.
Spatial data ends up scattered: shapefiles on shared drives, tables in database schemas, rasters in cloud buckets, metadata in spreadsheets. Finding the right dataset means asking Slack or grepping file servers. Sharing it means exporting, emailing, and hoping the CRS matches.
GeoLens replaces that workflow:
The examples below use a JWT bearer token. Mint one against the local stack (the login endpoint accepts an OAuth2 password form, so use -d with form fields, not JSON). Substitute your admin username and the password from .env (grep '^GEOLENS_ADMIN_PASSWORD=' .env):
Semantic search takes a one-time admin setup: an embedding provider and the AI + Semantic Search toggles in the admin AI settings, plus an embedding backfill for data ingested before setup (the search guide walks through it). Once that's on, search datasets by meaning instead of exact keyword matches:
One search-endpoint behavior to know when consuming it programmatically: the
first page augments the dataset results with up to five matching collections,
so numberReturned can exceed limit on page 0 only. That is deliberate, not
a bug β limit still bounds the number of datasets per page.
Every dataset is also a standard OGC API Features endpoint:
PostGIS and pgvector share one database, so with semantic search enabled you can rank datasets by meaning inside a spatial window in a single query. See the search guide for how semantic and spatial search work together.
Connect directly from QGIS: Layer > Add WFS / OGC API Features and point at http://localhost:8080/api/.
The same endpoints from the tools you already use: geolens-examples holds single-file MapLibre, Leaflet, OpenLayers and ArcGIS JS pages, QGIS and DuckDB walkthroughs, both GeoLens SDKs, a semantic catalog search, a STAC browser, a saved-map embed, a Python/GeoPandas analysis, a catalog-as-code manifest for the CLI, and an MCP setup. The read-only ones run against the live demo, and CI replays them there on every push and once a week, so what you copy is code that worked this week. Browse the gallery.
Each example above has a full guide in the docs. What GeoLens reads, writes, and exposes:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/geolens)<a href="https://allmcps.com/mcp/geolens"><img src="https://allmcps.com/api/badge/geolens?style=directory" alt="GeoLens on AllMCPs" /></a>