Skip to main content
Glama
Teradata

Teradata MCP Server

Official
by Teradata

Plot Pie Chart

plot_pie_chart
Read-onlyIdempotent

Generate a pie chart directly from a Teradata table to show proportions or shares by category. Specify table, category column, and numeric value column for the breakdown.

Instructions

Generate a pie chart that reads directly from a Teradata table — do NOT use base_readQuery to pre-fetch or aggregate data first. Specify the table in table_name, the category column in labels, and the numeric value column in column. Use when the user asks for proportions, shares, or how a total breaks down by category. For polar area charts, use plot_polar_chart. For time-series trends, use plot_line_chart.

PARAMETERS: table_name: Required Argument. Specifies the name of the table to generate the pie chart. Types: str

labels:
    Required Argument.
    Specifies the category column for labels.
    Types: str

column:
    Required Argument.
    Specifies the numeric value column for the pie chart.
    Types: str

RETURNS: dict

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
columnYes Required Argument. Specifies the numeric value column for the pie chart. Types: str
labelsYes Required Argument. Specifies the category column for labels. Types: str
table_nameYes Required Argument. Specifies the name of the table to generate the pie chart. Types: str

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.0.1
    • changedInput schema / properties / column / description
      Previous value: -"\nRequired Argument.\nSpecifies the column to be used for generating the line plot.\nTypes: str"New value: +"\nRequired Argument.\nSpecifies the numeric value column for the pie chart.\nTypes: str"
    • changedInput schema / properties / labels / description
      Previous value: -"\nRequired Argument.\nSpecifies the labels to be used for the line plot.\nTypes: str"New value: +"\nRequired Argument.\nSpecifies the category column for labels.\nTypes: str"
    • changedInput schema / properties / table_name / description
      Previous value: -"\nRequired Argument.\nSpecifies the name of the table to generate the donut plot.\nTypes: str"New value: +"\nRequired Argument.\nSpecifies the name of the table to generate the pie chart.\nTypes: str"
  2. Changed7 schema fields changedv0.2.1
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / column / description
      Added value: +"\nRequired Argument.\nSpecifies the column to be used for generating the line plot.\nTypes: str"
    • removedInput schema / properties / column / title
      Removed value: -"Column"
    • addedInput schema / properties / labels / description
      Added value: +"\nRequired Argument.\nSpecifies the labels to be used for the line plot.\nTypes: str"
    • removedInput schema / properties / labels / title
      Removed value: -"Labels"
    • addedInput schema / properties / table_name / description
      Added value: +"\nRequired Argument.\nSpecifies the name of the table to generate the donut plot.\nTypes: str"
    • removedInput schema / properties / table_name / title
      Removed value: -"Table Name"
  3. Addedv1.0.0

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description adds behavior beyond this: it reads directly from a Teradata table and must not be preceded by a base_readQuery fetch. It does not describe the return structure in detail, but the annotations cover the safety profile and the description adds meaningful operational context.

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?

Every sentence earns its place. The key instruction to avoid base_readQuery is front-loaded, parameter mapping is compact, and sibling alternatives are named in a single sentence. There is no verbose or redundant text.

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 three-parameter chart tool with read-only annotationshol, the description fully covers what an agent needs: when to use it, how to map arguments, and which alternatives exist. The lack of a detailed output schema is not a material gap for a simple chart-plotting tool whose return is declared as a dict.

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 coverage is 100%, so the schema already documents all three parameters. However, the description adds semantic roles: table_name is the source table, labels is the categorical column, and column is the numeric value column. This clarifies how the parameters relate to the pie chart's construction beyond the generic schema text.

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 clearly states the action (generate a pie chart), the data source (Teradata table), and the exact parameter roles. It also differentiates from sibling tools by explicitly naming plot_polar_chart and plot_line_chart as alternatives for different chart types.

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 says when to use this tool ('proportions, shares, or how a total breaks down by category') and when not to, including both the prohibition against base_readQuery and pointers to alternative chart tools. This leaves no ambiguity about selection.

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