Chatham County GIS — Chatham County, Georgia 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. All tools follow verb_noun naming (search_, query_, layer_info). Descriptions are concise (100 - 200 chars) and explain WHAT, WHEN, and WHAT-TO-DO-NEXT. Input schemas include types and descriptions for all parameters. However, output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Parameter descriptions lack explicit constraints (e.g., 'limit: 1 - 50' is stated but not in the description text itself). No error handling guidance or recovery paths documented. Security is solid (SSRF guard in layerUrl, no secrets exposed), but no permission gates or audit trail patterns.
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 Chatham 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, nested objects) for downstream tool chaining or data extraction.
No error handling guidance. Errors are thrown as raw messages (e.g., 'ArcGIS Hub: 404') without recovery hints. LLMs cannot determine if errors are retryable or require user intervention.
Parameter constraints stated in code comments but not in description text. 'limit: 1 - 50' is enforced via clamp() but the description says 'Max datasets (1-50, default 20)', constraint is present but could be more explicit in schema.
No pagination guidance in search_datasets response. If ArcGIS Hub returns 100+ datasets, the tool only returns the first page (size=20 default). No next_cursor or total_count field documented to guide multi-page retrieval.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
query_layer accepts arbitrary SQL 'where' clauses without validation. While the SSRF guard protects the URL, SQL injection is not explicitly mitigated. LLMs could pass malicious WHERE clauses if the backend ArcGIS service is vulnerable.