A REST API and MCP server for semantic and spatial search over GIS layers with PostgreSQL/PostGIS backend and vector embeddings
Single tool 'gis_layer_search' has a well-structured input schema with proper types, descriptions, and constraints (limit capped 1-10, skip min 0). Description is adequate (108 chars, within baseline 34-392 range) but lacks clarity on WHEN to use vs alternatives, and omits what the tool RETURNS. The schema is visible and complete, but output structure is not documented anywhere in the provided source. The tool name follows verb_noun convention ('search_') appropriately for a READ_ONLY operation. No error handling, no per-parameter type/format guidance beyond JSON Schema.
Perform hybrid semantic and spatial search over GIS layers using embedding-based similarity and geographic intersection filtering
No output schema documented. Response structure is unknown to the LLM. Cannot plan downstream operations or extract required fields for chaining.
Tool description lacks context on WHEN to use (vs other search/filter tools), what fields are returned, and what prerequisites exist (e.g. embedding model availability, spatial index requirements).
No error handling guidance. If search fails, times out, or returns no results, the LLM has no recovery path. Missing error classification (retryable vs user-fixable).
Parameter 'type_filter' description is generic ('Filter by the type of the layer') and does not specify what valid layer types are, or whether filtering is optional/required.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 57 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 42 | - | v1 |
EPSG code default (4326) is hardcoded but not explained. Users may be unaware they are working in WGS84 and receive surprising results if they assume a different projection.