Indian River County GIS — Indian River County, Florida open geospatial data (ArcGIS).
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 purpose, prerequisites, and return values. All parameters have type definitions and descriptions. However, output schemas are not documented, LLMs cannot predict response structure for downstream planning. Error handling is minimal (generic HTTP status errors). No pagination guidance in query_layer despite potential for large result sets. Missing parameter constraints (e.g., limit ranges, SQL injection guards) in descriptions.
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 Indian River 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 calls or data extraction. search_datasets returns {total, count, datasets[{id, name, summary, org, org_id, record_count, type, url}]} but this is inferred from code, not declared in tool definition.
query_layer lacks pagination guidance and result-size warnings. Tool accepts limit up to 2000 but description does not warn about context window impact or recommend pagination strategy. No mention of offset/limit best practices.
Error messages are generic HTTP status codes ('ArcGIS Hub: 404', 'ArcGIS query: 500'). LLMs receive no guidance on recovery: is the error retryable? Should the user be asked for clarification? Should the agent try a different tool?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Parameter descriptions lack constraint details. 'limit' is described as '1-50' for search_datasets and '1-2000' for query_layer, but these are buried in prose. No enum, pattern, or minimum/maximum JSON Schema properties. LLMs may pass invalid values.
query_layer 'where' parameter accepts arbitrary SQL. No validation or injection guards documented. Description says 'SQL where clause' but does not warn about SQL injection risk or sanitization expectations.