Skip to main content
Glama
Teradata

Teradata MCP Server

Official
by Teradata

Base Tablelist

base_tableList
Read-onlyIdempotent

List tables and views in a Teradata database. Specify a database name to narrow the results, or leave it empty to scan all databases. Persist the list as a volatile table when needed.

Instructions

List all tables and views within a specific Teradata database or schema. Pass a specific database name to list tables in that database only. Omit or leave empty to list tables from all databases. If the user does not name a database and you want to list tables from a single database, ask a clarifying question instead of returning results from all databases.

Arguments: database_name - Database name. Leave empty to list tables from all databases. persist - If True, materializes result as a volatile table and returns table name

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
persistNoIf True, materializes result as a volatile table and returns table name
database_nameNoDatabase name. Leave empty to list tables from all databases.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.0.1
    • changedInput schema / properties / database_name / description
      Previous value: -"Database name. Leave empty for all databases."New value: +"Database name. Leave empty to list tables from all databases."
  2. Changed7 schema fields changedv0.2.1
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / database_name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • changedInput schema / properties / database_name / default
      Previous value: -nullNew value: +""
    • addedInput schema / properties / database_name / description
      Added value: +"Database name. Leave empty for all databases."
    • removedInput schema / properties / database_name / title
      Removed value: -"Database Name"
    • addedInput schema / properties / database_name / type
      Added value: +"string"
    • addedInput schema / properties / persist
      Added value: +{
      +  "default": false,
      +  "description": "If True, materializes result as a volatile table and returns table name",
      +  "type": "boolean"
      +}
  3. Changed5 schema fields changedv1.0.0
    • addedInput schema / properties / database_name / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / database_name / default
      Added value: +null
    • removedInput schema / properties / database_name / type
      Removed value: -"string"
    • removedInput schema / required
      Removed value: -[
      -  "database_name"
      -]
    • removedInput schema / title
      Removed value: -"_dynamic_toolArguments"
  4. First observed

TDQS

A4.3/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 safety profile is covered. The description adds valuable behavioral context: the tool returns results from all databases when database_name is empty, and the persist parameter materializes results as a volatile table and returns the table name. This goes beyond the annotations and helps the agent understand side effects (volatile table creation) despite the read-only hint.

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 description is compact and front-loaded with the core purpose, followed by parameter details and usage guidance. The clarifying-question sentence is slightly verbose but earns its place by preventing a common misuse. No redundant filler.

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?

For a simple list tool with two optional parameters and no output schema, the description covers the main decision points: what it lists, how to scope it, and what persist does. It doesn't describe the return format, but the annotations and simplicity of the tool make that a minor gap. The clarifying-question guidance adds completeness for real-world agent use.

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%, so the schema already documents both parameters fully. The description repeats the parameter meanings but adds a usage nuance: the clarifying-question guidance for database_name. This is useful but not a major addition beyond the schema, so a baseline 3 is appropriate.

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 states a specific verb ('List') and resource ('all tables and views within a specific Teradata database or schema'), and clearly distinguishes the tool's scope from siblings like base_databaseList and base_tableDDL. It also explains the optional database_name behavior, making the tool's purpose unambiguous.

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

Usage Guidelines5/5

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

The description explicitly tells the agent when to use the tool (list tables in a specific database) and when not to (if the user doesn't name a database, ask a clarifying question instead of returning all databases). It also provides clear guidance on the persist parameter's effect, which helps the agent decide whether to use it.

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