Skip to main content
Glama

Query

query
Read-onlyIdempotent

Run a Socrata SoQL query against a Michigan Open Data dataset by resource_id (e.g. "fbey-tu9a"). Filter with where/select/group/order (SoQL clauses, without the leading $) plus limit/offset. Returns matching rows as JSON.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
groupNoSoQL $group column(s).
limitNoMax rows (default Socrata 1000).
orderNoSoQL $order, e.g. "date DESC".
whereNoSoQL $where filter, e.g. "year >= 2020 AND status = 'Active'".
offsetNoPagination offset.
selectNoSoQL $select, e.g. "name, count(*) AS n".
resource_idYesDataset id, e.g. "fbey-tu9a" (from datasets).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "resource_id": "fbey-tu9a",
      -    "where": "year >= 2020"
      -  },
      -  {
      -    "group": "category",
      -    "limit": 100,
      -    "order": "n DESC",
      -    "resource_id": "fbey-tu9a",
      -    "select": "name, count(*) AS n"
      -  }
      -]New value: +[
      +  {
      +    "limit": 5,
      +    "resource_id": "fbey-tu9a"
      +  },
      +  {
      +    "limit": 5,
      +    "resource_id": "fbey-tu9a",
      +    "select": "row_id"
      +  }
      +]
  2. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "resource_id": "fbey-tu9a",
      +    "where": "year >= 2020"
      +  },
      +  {
      +    "group": "category",
      +    "limit": 100,
      +    "order": "n DESC",
      +    "resource_id": "fbey-tu9a",
      +    "select": "name, count(*) AS n"
      +  }
      +]
  3. First observed

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, open-world, and idempotent behavior; description adds value by disclosing the SoQL formatting requirement (no leading $), the return format (JSON), and the Michigan Open Data scope. No contradictions found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences with no filler: main action, parameters, and return type. Key operational detail (no leading $) is included without bloating the description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only query tool with fully documented parameters and clear annotations, the description covers what is needed to call it correctly: resource_id, optional SoQL clauses, limit/offset, and JSON output. No critical gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% of parameters with detailed descriptions, so description need not compensate. It reinforces the resource_id and clause names but does not significantly deepen understanding beyond the schema except for the useful '$' formatting note.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states specific verb ('Run'), resource ('Socrata SoQL query against a Michigan Open Data dataset'), and key identifier ('resource_id'). It clearly distinguishes the tool's data-querying role from metadata-oriented siblings like datasets and metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description clearly communicates when to use the tool: when running SoQL queries against a dataset by resource_id. It provides usage nuance (no leading $) but does not explicitly contrast with sibling tools or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.