City of Aurora GIS — Aurora, Colorado open geospatial data (ArcGIS). Provides access to parcels, zoning, public works & city services datasets through 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 constraints (e.g., limit 1 - 50, 1 - 2000) are documented in descriptions but not enforced as JSON Schema constraints. No error handling guidance or recovery paths. Security is solid (SSRF guard in layerUrl, no secrets in params), but no permission gates or audit logging.
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 City of Aurora GIS open geospatial datasets (parcels, zoning, public works & city services) 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) 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 user-fixable.
Parameter constraints (limit ranges, URL format) documented in descriptions but not enforced in JSON Schema. LLMs may pass invalid values; validation happens at runtime only.
query_layer returns raw ArcGIS API response (verbose, includes metadata). Should strip irrelevant fields and cap result count to prevent context window exhaustion.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
No pagination metadata in search_datasets response. Returns total count and dataset count, but no next_cursor or offset guidance for large result sets.