Bloomington Open Data (data.bloomington.in.gov) Socrata MCP. Provides access to US government open data from Bloomington IN including public safety, transport, services & budget via the Socrata SoQL API.
Three tools with clear, focused responsibilities and complete input schemas. Tool names are action-oriented (datasets, query, metadata). Descriptions are present and moderately detailed (100-180 chars), explaining what each tool does and when to use it. All parameters have type definitions and descriptions. However, output schemas are not documented, LLMs cannot predict response structure for downstream planning. Parameter descriptions lack constraints (e.g., 'limit 1-100' is stated but not enforced in schema; SoQL syntax examples could mislead). No error handling guidance or recovery paths. Missing idempotency hints and field-chaining documentation.
Search the Bloomington Open Data catalog of open datasets by keyword. Returns each dataset's resource_id, name, description, category and update date — pass the resource_id to query/metadata.
Get a Bloomington Open Data dataset's schema + metadata (columns, types, row count, category, last-updated) by resource_id, e.g. "yv82-z42g".
Run a Socrata SoQL query against a Bloomington Open Data dataset by resource_id (e.g. "yv82-z42g"). Filter with where/select/group/order (SoQL clauses, without the leading $) plus limit/offset. Returns matching rows as JSON.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination) for downstream tool calls or data extraction. Socrata API responses are verbose; no guidance on which fields agents should expect or use.
Parameter constraints stated in descriptions but not enforced in JSON Schema. 'limit 1-100' is prose; should be minimum/maximum in schema. LLMs cannot parse prose constraints reliably.
No error handling guidance. If a resource_id is invalid or a SoQL query fails, the tool throws a raw HTTP error. LLMs receive no recovery hints (e.g., 'Try datasets() to find valid IDs' or 'Check SoQL syntax').
No field-chaining documentation. 'datasets' returns resource_id; 'query' and 'metadata' accept resource_id. This chain is implicit. Agents may not realize they can pipe datasets output into query/metadata without an extra lookup.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
SoQL syntax examples in descriptions ('year >= 2020', 'date DESC') may be reused literally by LLMs. Should use formal constraints or link to Socrata SoQL docs instead of inline examples.