Skip to main content
Glama
Aderali06

sqlite-mcp-server

describe_table

Inspect a SQLite table or view to retrieve schema details: columns, primary keys, foreign keys, and indexes, optionally from a specified database file.

Instructions

Get detailed schema information for a specific table or view, including columns, primary keys, foreign keys, and indexes.

Args: table_name: The name of the table or view to inspect. db_path: Optional path to SQLite file. If omitted, uses default database path.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
db_pathNo
table_nameYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description must carry the full behavioral burden. It does disclose the content of the result (columns, keys, indexes), which signals a read-only inspection operation, but it never states that the operation is non-mutating, what happens when the table does not exist, or whether it errors versus returning empty. Adequate but with clear gaps for a zero-annotation tool.

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

Conciseness4/5

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

The purpose sentence is front-loaded and the Args block is compact with one line per parameter. Slightly wasteful to repeat 'table_name' and 'db_path' labels for only two parameters, but nothing is padded or off-topic.

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?

An output schema exists, so the description need not detail return formatting, and it does not need to; it still usefully names the result elements. For a two-parameter read tool the coverage is nearly complete, with only error/edge-case behavior left unstated.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it does: it explains table_name as the table or view to inspect and db_path as an optional SQLite file path whose omission falls back to the default database path. This adds the default-fallback semantics that the bare schema (anyOf string/null, default null) does not convey.

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?

States a specific verb (Get) and resource (schema information) scoped to 'a specific table or view', and enumerates the returned elements (columns, primary keys, foreign keys, indexes). This clearly separates it from the sibling get_database_schema (whole database) and list_tables without needing either schema opened.

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 by the scope ('a specific table or view'), so an agent can infer it is for inspecting one object's structure rather than listing or querying. However, there is no explicit when-to-use guidance, no named alternative such as get_database_schema for whole-database introspection, and no statement of prerequisites or failure conditions.

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