Skip to main content
Glama

files_add_chart

Adds a native (Excel-style) chart that visualizes data from an A1 cell range — no Python. Native charts stay live as the referenced cells change and are editable in the Chart Editor. The chart floats over the grid anchored at a cell; it does not occupy cells. data_range is a rectangular A1 range (default: first row = series headers, first column = category labels, other columns = series). When position is null the chart is auto-placed two columns right of the data; when a position is given and it would overlap another chart or non-empty cells, the chart is moved down to free space and the result reports the final position. Requires edit permission. Signature: files_add_chart(file_uuid, chart_type, data_range, sheet?, chart_name?, title?, position?, width_cells?, height_cells?, transpose?, first_row_headers?, first_col_labels?, x_column?).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "file_uuid": "<file_uuid>",
      "chart_type": "<chart_type>",
      "data_range": "<data_range>"
    },
    "name": "files_add_chart"
  }
}

Input Schema

NameRequiredDescriptionDefault
sheetNoSheet name (defaults to the first sheet).
titleNoChart title. Null = none.
positionNoTop-left anchor cell in A1, e.g. 'E1'. Null = auto-place.
x_columnNo0-based category (X) column index within the range. Null = first.
file_uuidYes
transposeNoSwap rows/columns. Null = false.
chart_nameNoDisplay name (unique on the sheet; must not look like a cell reference). Null = auto 'Диаграмма N'.
chart_typeYesChart type, e.g. 'bar', 'line', 'pie', 'scatter', 'area', 'bar-stacked', 'histogram', 'radar', 'bubble', 'bar-3d', 'pie-3d'.
data_rangeYesRectangular A1 data range, e.g. 'A1:C10'.
data_labelsNoShow value labels on the marks. Null = off.
width_cellsNoChart width in columns (min 2). Null = default.
height_cellsNoChart height in rows (min 4). Null = default.
series_marksNoCombo only: mark of each series ('bar' | 'line' | 'area' | 'point'). Null = first series bars, the rest lines.
trend_seriesNoCanonical column indexes of series with a linear trendline; empty array = all series. Null = none.
first_col_labelsNoFirst column = category labels. Null = true.
secondary_seriesNoCanonical column indexes of series drawn against the right-hand axis. Null = all on the left.
data_label_pointsNoWhich points get labels: first | last | first-last | min-max. Null = all.
data_label_seriesNoCanonical column indexes of series with value labels (needs data_labels). Null = all series.
first_row_headersNoFirst row = series headers. Null = true.

Output Schema

NameRequiredDescriptionDefault
nameYes
movedYes
chart_idYes
positionYes
file_uuidYes
sequence_numberYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare non-readonly, non-destructive, non-idempotent, open-world, but the description adds substantial context: edit permission is required, the chart floats rather than occupying cells, auto-placement defaults to two columns right of the data, and overlapping positions cause the chart to move down with the final position reported. This is exactly the kind of behavior an agent needs before calling a mutation 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 behavioral information is front-loaded and each sentence except the final signature recital adds value. The signature line largely duplicates what the input schema already lists, so the description is slightly longer than necessary, but it is not rambling.

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 19-parameter mutation tool with a rich output schema and 95% schema coverage, the description covers the essential missing pieces: permission requirement, placement semantics, overlap handling, and final-position reporting. Return values need not be explained because an output schema exists.

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?

With 95% schema description coverage, the baseline is 3, but the description adds real semantic value for data_range (first row = series headers, first column = category labels, other columns = series) and for position null vs. explicit behavior. It does not explain every one of the 19 parameters, but the schema already covers them.

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 and resource — 'Adds a native (Excel-style) chart that visualizes data from an A1 cell range' — and clarifies it is not the Python/code path. Sibling differentiation is only implicit; files_update_chart and files_delete_chart are never named, so the agent must infer that this tool is for creation only.

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?

Gives clear usage context: native charts stay live, are editable, and require edit permission, plus behavioral rules for null vs. explicit position. It does not explicitly route to alternatives (e.g., use files_update_chart to modify an existing chart) or state when not to use it, so it stops short of a 5.

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.

Resources