Skip to main content
Glama

DataScoop public data

Query a dataset

query_dataset
Read-onlyIdempotent

Return matching public records, their total count and the attribution to cite. Fields marked personal in our schema are excluded; published business names, addresses or phone numbers may still identify sole traders. Without a Pro key each call returns at most 25 rows; when more match, truncated=true and next_step explains how to buy a full CSV or use Pro. Pro calls return up to 1,000 rows, with offset for retrieving the rest. Ask for format "summary" to get counts only.

Input Schema

NameRequiredDescriptionDefault
limitNoRows to return (default 25, max 1000 per call; free plans are capped at 25)
formatNo"rows" (default) returns the rows; "summary" returns only the total and links
offsetNoRows to skip when paging through results; the per-request plan cap still applies
datasetYesDataset id, e.g. fsa
filtersNoFilter object keyed by the filter keys from get_dataset_schema (not column names), e.g. {"localAuthority":"Leeds","rating":"1"}. Text filters are case-insensitive unless their schema sets caseSensitive to true; "contains" filters match substrings; enum filters must use one of the listed options.
strict_filtersNoReject unknown or invalid nonempty filters instead of ignoring them. Recommended when exact scope matters. Empty values are omitted; true-only boolean filters cannot select false. Default false preserves existing behavior.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / offset / description
      Previous value: -"Rows to skip, for paging through large results (Pro)"New value: +"Rows to skip when paging through results; the per-request plan cap still applies"
    • addedInput schema / properties / strict_filters
      Added value: +{
      +  "description": "Reject unknown or invalid nonempty filters instead of ignoring them. Recommended when exact scope matters. Empty values are omitted; true-only boolean filters cannot select false. Default false preserves existing behavior.",
      +  "type": "boolean"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / filters / description
      Previous value: -"Filter object keyed by the filter keys from get_dataset_schema (not column names), e.g. {\"localAuthority\":\"Leeds\",\"rating\":\"1\"}. Text filters are case-insensitive; \"contains\" filters match substrings; enum filters must use one of the listed options."New value: +"Filter object keyed by the filter keys from get_dataset_schema (not column names), e.g. {\"localAuthority\":\"Leeds\",\"rating\":\"1\"}. Text filters are case-insensitive unless their schema sets caseSensitive to true; \"contains\" filters match substrings; enum filters must use one of the listed options."
  3. First observed

TDQS

A4.1/5.0
Behavior5/5

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

The description adds substantial behavioral context beyond the annotations: personal fields are excluded, published business identifiers may still identify sole traders, free calls cap at 25 rows, truncation sets truncated=true with a next_step, and Pro calls support up to 1,000 rows with offset paging. These details materially affect safe and correct use.

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?

The description is front-loaded with the return contract and then packs privacy, plan limits, paging, and format guidance into a few dense but well-structured sentences. No sentence is wasted.

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 six parameters, a nested filter object, and no output schema, the description covers return shape, privacy caveats, plan-based caps, truncation, paging, and summary mode. It gives an agent enough to call the tool correctly without needing more explanation.

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?

Schema coverage is 100%, so the schema already documents limit, format, offset, dataset, filters, and strict_filters. The description reinforces plan caps and summary format but adds only marginal parameter-level meaning beyond the schema, particularly around truncation behavior.

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

Purpose4/5

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

The description states a specific verb and resource: returning matching public records with total count and citation attribution. It clearly identifies this as the record-querying tool, which is distinct from siblings like list_datasets or get_dataset_schema, though it does not explicitly name those alternatives.

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

Usage Guidelines3/5

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

Usage is implied through the free/Pro row limits, truncation behavior, and the option to request a summary, but there is no explicit guidance on when to choose this tool over siblings such as search_datasets or get_dataset_schema. An agent can infer it is for querying records, but routing guidance is limited.

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.

Resources