ArcGIS Hub — open government geospatial data (search + Feature Service query).
Three well-named, read-only tools with complete input schemas and clear descriptions. All tools follow verb_noun naming (search_, query_, layer_info). Descriptions are 150 - 250 chars, within the 10 - 1024 baseline. All parameters have type definitions and descriptions. However, output schemas are not documented, callers must infer structure from API responses. Error handling is minimal (generic HTTP status errors). No parameter validation guidance (e.g., 'limit must be 1 - 50') is visible in descriptions, though code enforces it. SSRF guard in layerUrl() is a security plus. Missing: output schema documentation, actionable error messages, parameter constraint examples.
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 the ArcGIS Hub catalog of open government geospatial datasets by keyword. Optionally scope to one organization with org_id (an ArcGIS orgId). 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. Callers must infer response structure from ArcGIS API docs. LLMs cannot plan downstream operations without knowing what fields to expect.
Error messages are generic HTTP status codes ('ArcGIS Hub: 404'). No recovery guidance. LLMs cannot determine if the error is retryable, user-fixable, or fatal.
Parameter constraints (limit 1 - 50, offset ≥0) are enforced in code but not documented in descriptions. LLMs cannot see the clamp() logic and may pass invalid values.
query_layer and layer_info accept arbitrary Feature/Map Service URLs. While layerUrl() validates HTTPS and path format, no rate limiting or quota enforcement is visible. Agents could hammer external ArcGIS services.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
search_datasets returns raw API response fields (id, attributes.name, attributes.snippet, etc.). Response should be shaped to match agent expectations (e.g., dataset_id, dataset_name, summary) and strip irrelevant metadata.