Skip to main content
Glama

socrata-mcp-server

Describe DataCanvas Tables

socrata_dataframe_describe
Read-onlyIdempotent

List registered tables in a DataCanvas session — schema, row count, and column names. Shows what datasets are available for SQL queries via socrata_dataframe_query. Only meaningful when CANVAS_PROVIDER_TYPE=duckdb is set. Use after socrata_query_dataset spills a large result set to canvas.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
canvas_idNoCanvas ID returned by socrata_query_dataset when a large result spills to canvas. Required in practice when canvas is enabled — canvases cannot be enumerated, so omitting it fails with canvas_id_required instead of listing tables.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
noticeNoStatus message when canvas is not enabled or no tables are registered. Absent when tables are present.
tablesNoTables available for SQL queries. Empty when none registered.
canvas_idNoCanvas ID resolved, when canvas is enabled.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the lack of destructive side effects is covered. The description adds meaningful behavioral context beyond that: the environment requirement (duckdb provider), the session/scoped nature of the data, and the trigger condition tied to canvas spill-over from socrata_query_dataset.

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 tight sentences lead with the core behavior and outputs, then add the relational context, environment prerequisite, and invocation timing. There is no filler or repetition of schema details that are already present.

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, one-parameter tool with an output schema and strong annotations, the description covers the necessary invocation context: what it lists, when to call it, and the sole parameter's provenance and failure behavior. Nothing critical is missing.

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

Parameters5/5

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

Although the schema already describes canvas_id at 100% coverage, the description adds valuable practical semantics: the canvas ID comes from socrata_query_dataset when a result spills, it is required in practice even though the schema marks it optional, and omitting it yields canvas_id_required. This materially helps an agent invoke the tool correctly.

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?

The description uses a specific verb and resource: it lists registered tables in a DataCanvas session and names the included details (schema, row count, column names). It also positions itself against sibling tools like socrata_dataframe_query and socrata_query_dataset, so an agent can distinguish it from nearby alternatives.

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?

The description gives clear contextual guidance: use it after socrata_query_dataset writes a large result set to canvas, and note that it only matters when CANVAS_PROVIDER_TYPE=duckdb is set. It stops short of explicitly saying when not to use it or naming an alternative, but the usage context is strong.

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.

TDQS

A4.7/5.0
Disambiguation5/5

Each tool has a distinct role: discovery (list_portals), search (find_datasets), metadata (get_dataset), query (query_dataset), and post-query analysis (dataframe_describe and dataframe_query). The only potential overlap is between find_datasets and get_dataset, but they are clearly separated by preview vs full schema.

Naming Consistency5/5

All tools follow a consistent 'socrata_<verb>_<noun>' pattern (e.g., socrata_find_datasets, socrata_get_dataset). The dataframe tools extend with a clear prefix (socrata_dataframe_describe/query), maintaining the pattern and clarity.

Tool Count5/5

With 6 tools, the server covers the full discovery-to-query workflow without excess. Each tool serves a necessary step in the pipeline, from portal selection to result analysis, and the count feels well-scoped for a data access tool.

Completeness5/5

The surface covers the entire lifecycle: discover portals, search datasets, fetch metadata, execute queries, and handle large results via DataCanvas spill. There are no obvious gaps for the stated purpose of querying Socrata open-data portals.