Skip to main content
Glama
geolens-io

geolens-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GEOLENS_TOKENNoJWT bearer token, used only when GEOLENS_API_KEY is unset
GEOLENS_API_KEYNoAPI key sent as X-Api-Key; omit for public-only access
GEOLENS_INSTANCENoBase URL of your GeoLens instance, e.g. https://geolens.example.com (/api is appended automatically)

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_datasetsA

Search the GeoLens catalog for datasets by free text.

Matches title, description, and keywords (semantic ranking is used automatically when the instance has it enabled). Returns a GeoJSON FeatureCollection where each feature is a dataset record; use the feature id as the dataset_id for the other tools. Each feature's properties include source_origin (upload, postgis, service, stac, created, or null) and source_freshness (fresh, due, overdue, or unknown). Freshness is advisory: due means one declared update interval has elapsed, while overdue means two have elapsed; neither proves that the content is wrong.

Search does not make a detail request per result. When the catalog summary has no health/check/refresh value, source_health, source_health_detail, last_checked_at, and last_refreshed_at are null. Call get_dataset_schema for populated trust metadata. Raw provider URLs and credentials are never included in these source-state fields.

Args: query: Search text. limit: Max results (1-200, default 10). offset: Result offset for paging.

get_dataset_schemaA

Get a dataset's schema and source trust metadata.

Returns columns (name/type/role), geometry type, CRS/SRID, feature count, spatial extent, and the safe source_origin. source_health is healthy, missing, inaccessible, or unknown: inaccessible means GeoLens could not determine whether the source still exists, while unknown means it was never probed or cannot be probed. source_health_detail is a fixed GeoLens reason code, not provider text. last_checked_at records the latest probe attempt; last_refreshed_at records only the latest successful committed refresh. source_freshness is advisory; overdue means two declared update intervals elapsed without a successful refresh. Raw provider URLs, origin pointers, and credentials are excluded. Call this before writing spatial questions so you know both the available columns and whether the source may be stale.

Args: dataset_id: Dataset id (e.g. from search_datasets).

get_featuresA

Get GeoJSON features for a dataset (bounded).

Returns an OGC-API FeatureCollection. Raster datasets have no features and will error. Results are capped by limit; page with offset.

Args: dataset_id: Dataset id. limit: Max features (1-200, default 10). offset: Feature offset for paging. bbox: Optional bounding box filter "minx,miny,maxx,maxy" (WGS84).

list_mapsA

List saved maps (read-only metadata: id, name, visibility, layer count).

Args: search: Optional text filter on map name/description. limit: Max results (1-200, default 50). offset: Result offset for paging.

get_mapA

Get one saved map's full metadata, including its layers, view state, basemap, and terrain configuration.

Args: map_id: Map id (e.g. from list_maps).

queryA

Run one read-only SQL SELECT against accessible datasets.

Executes through the server's hardened SQL sandbox: a single SELECT over data.* tables, an allowlisted function set (aggregates, math, string, date, JSON, common PostGIS like ST_Area/ST_DWithin/ST_Intersects), and a strict server-side budget (a few seconds of runtime, a repetition cap on self-joins, and row_limit rows). Returns {columns, rows, row_count, truncated} with rows as lists in column order.

Requires credentials with AI-chat permission — anonymous configurations cannot use this tool. Workflow: search_datasets to find a dataset, then get_dataset_schema for its table_name and columns, then reference it as data.<table_name> in the SQL and list the same table_name in restrict_tables. Every table the query touches must be listed there; the scope can only narrow what your credentials already see. Writes, other schemas, and unlisted functions are rejected with a short reason.

Args: sql: A single SELECT statement over data.* tables. restrict_tables: Table names (no data. prefix) the query may touch. Required and non-empty. row_limit: Max rows to return (1-1000, default 100).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/geolens-io/geolens'

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