MCP server for PostGIS spatial database operations, geospatial analysis, and intelligent querying with dataset registry and site screening capabilities
This server has significant definition quality gaps that limit its production readiness. While it provides 24 tools with explicit schemas and descriptions, multiple critical issues emerge: (1) Descriptions are present but many are in Turkish only, limiting LLM understanding in English-majority contexts. (2) Many parameter descriptions are minimal or generic ('Koordinatlar dizisi' for coordinates array is vague). (3) Output schemas are NOT documented, no tool specifies what fields will be returned. (4) Error handling is absent, no tool documents what happens on failure or how to recover. (5) Parameter validation is incomplete, numeric ranges lack explicit min/max constraints, geometry_wkt parameters don't specify valid WKT formats. (6) Tools like 'smart-query' and 'orchestrate-analysis' expose complex LLM orchestration logic without clear composition or result format docs. (7) The 'analyze-database' tool uses 'connection_id' as an optional parameter but never documents how to obtain one. (8) Several tools accept table names and column names as strings without documenting SQL injection defense or identifier validation. Evidence: test-connection has empty schema properties; find-nearby lacks geometry_column description; smart-query omits output structure; spatial-join accepts enum join_type but no bounds on result count documented.
Veritabanı şemasını analiz et ve dataset registry oluştur
İki nokta arasındaki mesafeyi hesapla
Geometri etrafında buffer oluştur
Koordinatlardan linestring geometrisi oluştur
Koordinatlardan nokta geometrisi oluştur
Dış ve iç halkalardan polygon geometrisi oluştur
Raster tablosundan koordinat değerini çıkar
NO OUTPUT SCHEMAS DOCUMENTED: Tools list input schemas but provide zero documentation of return structures. LLMs cannot plan chaining calls or extract needed fields. For example, 'find-nearby' will return what? A GeoJSON FeatureCollection? An array of objects? A paginated response? Unknown.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Hızlı bir şekilde sayma sorgusu yürüt (zaman sınırı ile)
Belirli bir noktanın çevresindeki özellikleri bul
Geometrinin ağırlık merkezini hesapla
Geometrinin dışbükey gövdesini hesapla
Geometri bilgilerini al (tip, srid, koordinatlar)
İki geometrinin kesişimini hesapla
Birden fazla geometriyi birleştir
Veri analizi planı oluştur ve yapı taşlarını hazırla
Raster tablosu bilgisini al
Geometriyi basitleştir (Douglas-Peucker algoritması)
Doğal dil sorusundan SQL sorgusu oluştur ve yürüt
Tablo mekansal indeks bilgisini al
İki tablo arasında mekansal join yap
Tablo şeması ve meta bilgilerini al
PostGIS veritabanı bağlantısını test et
Koordinat sistemini dönüştür
Geometrinin geçerliliğini kontrol et
NO ERROR HANDLING GUIDANCE: Tools provide no description of failure modes, recovery actions, or error classification (retryable vs fatal). E.g., 'smart-query' will fail if the LLM generates invalid SQL, but there's no guidance on whether to retry, ask the user, or decompose the query.
DESCRIPTIONS ARE LANGUAGE-DEPENDENT (Turkish): All descriptions are in Turkish, which limits use by English-speaking LLMs and agents. Tool descriptions should be in English (or multilingual with English primary) for broad compatibility.
VAGUE PARAMETER DESCRIPTIONS: Many parameters have minimal or non-specific descriptions. E.g., 'coordinates' is described as 'Koordinatlar dizisi' (coordinate array), no format specified (is it [[lon, lat], ...]? [lon, lat, lon, lat]?). 'tolerance' in simplify-geometry lacks units. Parameter descriptions should state format, valid range, and units.
UNVALIDATED SQL-LIKE PARAMETERS: Tools like 'find-nearby', 'spatial-join', 'analyze-database', 'table-info' accept table_name and geometry_column as freeform strings with no documented validation or SQL injection defense. No mention of identifier quoting or sanitization.
MISSING NUMERIC CONSTRAINTS: Parameters like 'distance_km', 'distance_meters', 'limit', 'tolerance', 'max_timeout', 'max_candidates', 'execution_timeout' lack min/max bounds. LLMs can pass negative values, zero, or absurdly large numbers (e.g., 1,000,000 km distance or 1-second timeout).
OPAQUE PARAMETERS ('connection_id'): Multiple tools accept 'connection_id' as an optional string parameter, but there is no tool to list available connections, no documentation of how to obtain a connection_id, and no explanation of what happens if omitted or invalid. This forces agents into a guessing game.
OVER-COMPLEX ORCHESTRATION TOOLS: 'orchestrate-analysis' and 'smart-query' attempt LLM-like reasoning (planning, candidate selection, query generation) inside a tool. These violate the single-responsibility principle and expose internal implementation details. Instead, offer granular tools (list_datasets, validate_sql, execute_query) that the agent can compose.
PAGINATION NOT DOCUMENTED: Tools returning multiple results (find-nearby, spatial-join, analyze-database) do not document pagination, result limits, or how to fetch additional pages. find-nearby has a 'limit' param (default 10) but no mention of offset/cursor or total count in the result.
WKT FORMAT NOT SPECIFIED: Tools like 'create-buffer', 'transform-coordinates', 'geometry-info', 'geometry-intersection' expect WKT (Well-Known Text) input, but the parameter descriptions never state what constitutes valid WKT or provide examples. LLMs will guess and pass invalid strings.