City of Dublin GIS — Dublin, Ohio 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 substantive (100 - 200 chars) and explain what each tool does and when to use it. Input schemas include type definitions and parameter descriptions. However, output schemas are not documented, LLMs cannot predict what fields to expect from responses. Parameter descriptions lack explicit constraints (e.g., 'limit: 1-50' is stated in description but not as JSON Schema minItems/maxItems). Error handling is minimal, no recovery guidance or actionable error messages. No tool annotations (readOnlyHint, idempotentHint) despite all being read-only and idempotent. Missing documentation of response structure and field mappings needed for chaining (e.g., what fields does search_datasets return that query_layer needs?).
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 Dublin 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, field names, or types. Breaks downstream tool chaining and forces agents to guess at response shape.
Parameter constraints (limit ranges, required fields) stated in descriptions but not formalized in JSON Schema. LLMs cannot parse natural-language constraints reliably; use minItems, maxItems, pattern, enum.
No tool annotations despite all tools being read-only and idempotent. Missing readOnlyHint and idempotentHint annotations prevent agents from optimizing retry logic and caching.
Error handling returns raw HTTP status codes and generic messages ('ArcGIS Hub: 404'). No recovery guidance, categorization (retryable vs fatal), or actionable next steps for LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
query_layer and layer_info accept arbitrary ArcGIS URLs. While SSRF guard (layerUrl validation) is present, no documentation of URL format requirements or examples in parameter descriptions.