eThekwini ESRI GIS Model Context Protocol Server providing access to eThekwini municipality's open GIS data portal
Five tools with basic schemas and descriptions, but significant gaps in parameter documentation and error handling. Tool names follow verb_noun convention (good), but descriptions are generic and lack actionable context. Parameters lack descriptions in critical tools (refresh_datasets, search_datasets). No output schemas documented. No error recovery guidance. No tool annotations (readOnlyHint). Schemas present but incomplete, many parameters undescribed. Average description length ~80 chars (below 194-char baseline). No evidence of pagination support despite query_feature_layer accepting max_records. Missing validation rules and constraint documentation.
Get detailed information about a specific dataset
Get statistics for numeric fields in a layer
Query features from a dataset's feature layer
Refresh and discover eThekwini GIS datasets and services
Search eThekwini datasets by keyword, category, or tag
refresh_datasets has empty input schema (no properties) but no description explaining what it does, when to call it, or what it returns. LLMs cannot determine if this is a discovery tool or a cache refresh.
search_datasets and refresh_datasets lack parameter descriptions. 'query' and 'category' parameters have no guidance on format, valid values, or examples. LLMs will guess at input format.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., dataset_id from search_datasets to pass to get_dataset_info). Broken tool chains.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
query_feature_layer accepts 'geometry' as a string (WKT or JSON) but provides no validation rules, format examples, or error guidance. LLMs will struggle to construct valid geometry.
No error handling or recovery guidance. Tools return raw API errors with no actionable next steps. No categorization of retryable vs. fatal errors. Agents cannot self-correct.