Skip to main content
Glama
adaptive-pg-mcp (PostgreSQL)

adaptive-pg-mcp (PostgreSQL)

describe_table

Read-onlyIdempotent

Inspects a table or view to return column names, types, nullability, defaults, and primary keys for understanding its structure before querying.

Instructions

Describes the columns of one table or view that the read login may use: name, type, nullable, default and primary key.

Input Schema

NameRequiredDescriptionDefault
tableYesThe table or view to describe, by exact name.
schemaNoThe schema, by exact name. Defaults to public.
databaseYesThe database to run on.

Output Schema

NameRequiredDescriptionDefault
rowsYesThe result rows, each an array in column order.
columnsYesThe result columns, in order.
truncatedYesTrue when the row cap, the byte cap or limit cut off more rows.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds a genuine behavioral trait beyond them: only objects visible to the read login are described, so absence of a table is not proof it does not exist. It does not discuss behavior for a nonexistent table or ambiguous schema, but that is a minor gap given the annotation coverage.

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?

A single sentence that front-loads the verb and scope and then lists the returned attributes, with no filler or redundant restatement of the tool name.

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

Completeness4/5

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

The tool is simple, parameters are fully documented, an output schema covers the return shape, and annotations cover safety, so the description is nearly sufficient as-is. The only missing piece is guidance on failure or not-found behavior and how it relates to sibling introspection tools.

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 description coverage is 100%, with the table, schema and database parameters each documented, including the public schema default and the single-value database enum. The description adds only the clarification that the table argument may also be a view, which the schema already states, so baseline 3 applies.

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?

States a specific verb (describes) and resource (columns of one table or view) and enumerates the returned attributes: name, type, nullable, default, primary key. The singular scope distinguishes it implicitly from list_tables/list_schemas, but no sibling is named explicitly.

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 only implied: an agent can infer this is the follow-up step to list_tables when column-level detail is needed. There is no explicit when-to-use statement, no exclusion such as 'do not use to fetch row data – use read_rows', and no prerequisite about knowing the exact table name.

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