Darlington County GIS — Darlington County, South Carolina open geospatial data (ArcGIS). Provides access to parcels, addresses, zoning & public works datasets via ArcGIS Feature Services.
Three well-named, read-only tools with clear descriptions and complete input schemas. Naming follows verb_noun pattern (search_datasets, query_layer, layer_info). Descriptions are substantive (150 - 200 chars) and explain what each tool does and when to use it. All parameters have type definitions and descriptions. However, output schemas are not documented, LLMs cannot predict response structure. Parameter constraints (e.g., limit 1 - 50, 1 - 2000) are stated in descriptions but not enforced via JSON Schema enums/min/max. No error handling guidance or recovery paths. Missing required field declarations in some schemas. SSRF guard in layerUrl() is a security plus.
Get an ArcGIS Feature/Map Service layer's schema by url: fields (name + type), geometry type, total record count, and capabilities.
Query an ArcGIS Feature Service / Map Service layer by its url (from search_datasets). SQL-like `where`, comma-separated `out_fields`, `order_by`, `limit`, `offset`. Returns attribute rows (and geometry). Use where="1=1" + out_fields="*" to sample.
Search Darlington County GIS open geospatial datasets (parcels, addresses, zoning & public works) by keyword. Returns each dataset's name, summary, record_count, owner/org, and its Feature Service `url` — pass that url to query_layer / layer_info.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). search_datasets returns {total, count, datasets[]} but this is inferred from code, not declared in tool definition.
Parameter constraints stated in descriptions but not enforced via JSON Schema. limit ranges (1 - 50, 1 - 2000) are text-only; no min/max in schema. LLMs may pass invalid values; server must validate and return actionable errors.
No error handling guidance. Errors like 'ArcGIS Hub: 404' or 'url must be https' are thrown but LLMs receive no recovery path. Should return structured errors with suggestions (e.g., 'Invalid URL format. Ensure it ends in /FeatureServer/<n> or /MapServer/<n>.').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
query_layer and layer_info accept arbitrary ArcGIS Feature/Map Service URLs. While SSRF guard (layerUrl) validates protocol/hostname/port, no rate limiting or timeout enforcement. Agents could hammer external Esri services.
search_datasets 'query' parameter is optional but tool description does not explain behavior when omitted. Does it return all datasets? First N? Unclear to LLM.