Skip to main content
Glama

Excel MCP

An MCP (Model Context Protocol) server that lets AI clients — Claude Code, GitHub Copilot CLI, VS Code Copilot, or any MCP-capable agent — read, write, and manage Excel workbooks (.xlsx / .xlsm).

No Excel installation required: workbooks are manipulated directly via openpyxl.

How it works

The server is stateful: open a workbook once, make many edits against the in-memory copy, then save.

open_workbook(path)          -> session_id
write_range(session_id, "A1", [["Name","Age"],["Ana",31]])
read_range(session_id, "Sheet1!A1:B10")
save_workbook(session_id)
close_workbook(session_id)

Ranges use A1 notation, optionally sheet-qualified: A1, A1:C10, Sheet1!A1:C10, 'My Sheet'!A1:C10.

Related MCP server: Excel MCP Server

Tools

Group

Tools

Workbook

open_workbook, create_workbook, save_workbook, save_workbook_as, close_workbook, list_open_workbooks, get_workbook_info

Sheets

list_sheets, add_sheet, delete_sheet, rename_sheet, copy_sheet, set_active_sheet

Data

read_cell, write_cell, read_range, write_range, read_sheet, append_rows, clear_range, get_used_range

Structure

insert_rows, insert_columns, delete_rows, delete_columns

Search

find_in_workbook, replace_in_range

Formatting

set_font, set_fill_color, set_borders, set_alignment, set_number_format, set_column_width, set_row_height, auto_fit_columns, merge_cells, unmerge_cells, freeze_panes, format_as_table, apply_conditional_formatting, apply_style_preset, get_cell_format

Formulas

set_formula, fill_formula, get_formula, define_named_range, list_named_ranges, delete_named_range

Analysis

add_data_validation, sort_range, set_auto_filter, remove_duplicates

Charts

add_chart, list_charts, delete_chart

Annotations

add_comment, get_comments, delete_comment, set_hyperlink, remove_hyperlink

Transfer

import_csv, export_csv, export_json

Images

insert_image, list_images, delete_image

Protection

protect_sheet, unprotect_sheet, set_cell_locked

Calculation

recalculate_workbook, read_calculated_range (Windows + Excel, see below)

Live Excel

open_in_excel, export_pdf, run_macro (Windows + Excel, see below)

Formatting highlights: colors accept hex (#FF0000) or names (red, light_blue, dark_blue, ...); number formats accept aliases (currency, percent, date, ...) or raw Excel codes; format_as_table applies native Excel table styles; apply_conditional_formatting supports color scales, data bars, cell-value rules, and formula rules; apply_style_preset styles common patterns (header, zebra, title, total_row, highlight) in one call.

Formulas & analysis highlights: fill_formula adjusts relative references across a range like Excel's fill handle; add_data_validation builds dropdowns and numeric/date/length rules; sort_range and remove_duplicates match Excel's ordering and case-insensitive comparison.

Charts: bar, horizontal bar, line, pie, scatter, and area charts with titles, axis labels, and positioning anywhere in the workbook.

Annotations & transfer: cell comments with authors; external and internal (#Sheet2!A1) hyperlinks styled like Excel's; CSV import with automatic number typing; CSV/JSON export of any range or whole sheets.

Images & protection: embed png/jpg/gif/bmp pictures with proportional resizing; protect sheets (optionally with a password), unlocking chosen cells first with set_cell_locked.

Excel bridge (Windows + Microsoft Excel, uv sync --extra com): recalculate_workbook drives a hidden Excel instance to compute formulas and cache the results, then read_calculated_range returns computed values instead of formula text; export_pdf prints a sheet or workbook to PDF; open_in_excel pops the file open in a visible window for the user; run_macro executes VBA in .xlsm files and reloads the session with the macro's changes. On machines without Excel these tools return setup guidance instead of failing silently.

Roadmap: pivot tables, workbook-level protection, richer chart styling.

Setup

Requires Python 3.11+ and uv.

git clone <this-repo>
cd Excel-MCP
uv sync                 # add --extra com on Windows for the Excel bridge

Then register the server with your client. Quick versions:

# Claude Code (add --scope user to make it global)
claude mcp add excel -- uv --directory C:/path/to/Excel-MCP run excel-mcp
// VS Code GitHub Copilot: .vscode/mcp.json (workspace) or user mcp.json (global)
{
  "servers": {
    "excel": {
      "command": "uv",
      "args": ["--directory", "C:/path/to/Excel-MCP", "run", "excel-mcp"]
    }
  }
}

For GitHub Copilot CLI, global installs, installing the server as a standalone excel-mcp command, and troubleshooting, see CLIENT_SETUP.md.

Notes & limitations

  • Formulas are stored, not calculated by the file engine — openpyxl writes formula text; Excel evaluates it on next open. Use recalculate_workbook (Windows + Excel) to compute results on demand.

  • read_range caps responses at 10,000 cells and returns a next_range cursor for paging through big sheets; per-cell edits (formatting, clearing, replacing) are capped at 100,000 cells.

  • Charts created by this server round-trip through save/load. Workbooks authored in Excel may carry chart formatting details that openpyxl simplifies on resave.

  • close_workbook refuses to drop unsaved changes unless discard_changes=true.

Development

uv run pytest          # test suite
uv run mcp dev src/excel_mcp/server.py   # MCP Inspector

Available Tools

74 tools
add_chartA

Embed a chart in a sheet.

chart_type: bar, bar_horizontal, line, pie, scatter, area. data_range holds the value column(s); with data_includes_headers=true (default) the first row provides the series names. categories_range is the label column/row for the axis (or the slice labels for pie). For scatter, categories_range is required and supplies the shared x-values (no header); each data_range column becomes one y-series.

position is the cell of the chart's top-left corner (e.g. 'E2'); it defaults to two columns right of the data. Data and chart may be on different sheets ('Summary!E2'). width_cm/height_cm default to 15 x 7.5.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
x_titleNo
y_titleNo
positionNo
width_cmNo
height_cmNo
chart_typeYes
data_rangeYes
session_idYes
categories_rangeNo
data_includes_headersNo

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It explains parameter defaults and constraints (e.g., categories_range required for scatter), but it does not disclose side effects (e.g., overwriting content), permissions, or error behavior. The description provides moderate behavioral context.

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 front-loaded with a clear purpose and then uses paragraphs to explain parameters. It is reasonably concise for the amount of detail, though could be more structured with bullet points for parameter lists.

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

Completeness3/5

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

Given the tool has 11 parameters (3 required) and no output schema, the description covers core usage but omits return value or success/failure indications. It adequately covers parameter dependencies but is not exhaustive.

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 add meaning. It explains chart_type values, data_range and categories_range semantics, position format, and size defaults. However, it does not describe title, x_title, or y_title, which are present in the schema. Overall, it adds significant value beyond the schema.

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 verb 'Embed a chart in a sheet.' It lists supported chart types and explains how data_range, categories_range, and position work. This distinguishes it from sibling tools like delete_chart or list_charts.

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?

While the description explains parameter usage thoroughly, it does not provide explicit guidance on when to use this tool versus alternatives (e.g., when to embed vs. when to list or delete charts). The usage context is implied but not directly stated.

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

add_commentB

Attach a comment (note) to a cell. Replaces any existing comment.

ParametersJSON Schema
NameRequiredDescriptionDefault
cellYes
textYes
authorNoExcel MCP
session_idYes

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description must fully disclose behavior. It mentions the replacement of existing comments, a critical mutation aspect. However, it omits details on side effects, permissions, error conditions, or how the cell is specified (e.g., A1 notation required).

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

Conciseness3/5

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

The description is extremely short (one sentence), which is concise but insufficiently informative given the lack of schema descriptions. It could be more detailed without losing brevity.

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

Completeness2/5

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

Given no output schema and 4 parameters with 0% description coverage, the description should provide more context about required parameters and their roles. It does not explain how session_id identifies the workbook or cell referencing conventions.

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

Parameters2/5

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

Schema description coverage is 0%. The description does not explain any parameters individually (e.g., session_id, author, cell, text). It implies text and cell but provides no additional meaning beyond the schema's property names.

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 the action ('attach a comment'), the resource ('to a cell'), and a key behavior ('replaces any existing comment'). This clearly distinguishes it from sibling tools like delete_comment and get_comments.

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

Usage Guidelines2/5

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

The description does not provide guidance on when to use this tool versus alternatives like delete_comment or get_comments. It lacks context about prerequisites or typical scenarios.

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

add_data_validationA

Add a data-validation input rule to a range.

validation_type:

  • 'list': in-cell dropdown; pass options=["Yes","No"] (literal values) or formula='=$F$1:$F$5' to source the choices from cells.

  • 'whole', 'decimal', 'date', 'text_length': pass operator (between, notBetween, equal, notEqual, greaterThan, greaterThanOrEqual, lessThan, lessThanOrEqual) and values (two for between/notBetween, otherwise one). Dates are ISO strings like '2026-01-31'.

  • 'custom': pass formula, e.g. '=ISNUMBER(A2)'.

error_message customizes the rejection dialog; prompt shows a tooltip when the cell is selected. Rules take effect when the file is used in Excel.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
promptNo
valuesNo
formulaNo
optionsNo
operatorNo
session_idYes
allow_blankNo
error_messageNo
validation_typeYes

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It explains that rules take effect in Excel, that error_message customizes the rejection dialog, and that prompt shows a tooltip. It also details parameter behavior per validation type. However, it does not clarify whether the tool replaces or merges with existing validation rules.

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?

The description is well-structured and efficient. It starts with a clear purpose sentence, then uses a logical bullet-like format (via line breaks) to explain each validation type. Every sentence serves a purpose, and the total length is appropriate given the complexity of the tool. No redundant information.

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?

Given the tool's complexity (10 parameters, conditional usage) and the absence of an output schema, the description covers the key use cases and parameter combinations. However, it omits edge cases such as handling of existing validation rules, range validity, and unspecified default behaviors for certain parameters.

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

Parameters5/5

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

The input schema has 0% description coverage (titles only), so the description must compensate. It does so thoroughly by explaining each validation_type's required parameters (e.g., for 'list': options or formula; for 'whole': operator and values). It also clarifies the format for dates (ISO strings) and the purpose of error_message and prompt. This adds essential meaning beyond the schema.

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 tool's purpose: 'Add a data-validation input rule to a range.' It is specific about the resource (range) and action (add validation). Among many sibling tools focused on different sheet operations (e.g., add_chart, add_comment), this one is uniquely about data validation, making it easily distinguishable.

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?

The description provides explicit guidance on which validation_type to use and what parameters are required for each type (e.g., 'list' requires options or formula, 'whole' requires operator and values). It does not explicitly mention when not to use this tool, but since no sibling tool performs data validation, the context is clear enough.

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

add_sheetA

Add a new empty sheet. index 0 puts it first; omit to append at the end.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
indexNo
session_idYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only states that the sheet is empty, with no mention of side effects, permissions, error handling, or whether the new sheet becomes active. This is insufficient for 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.

Conciseness5/5

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

The description is two sentences with no wasted words. The key action is front-loaded, and every word contributes meaning. Perfectly concise.

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

Completeness3/5

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

Given low complexity and no output schema, the description covers the core action and index usage. However, it omits details like name uniqueness requirements, return value (e.g., sheet ID), and activation behavior, which would aid completeness.

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?

With 0% schema description coverage, the description partially compensates by explaining the index parameter's effect (first vs. last). However, it does not describe the required 'name' or 'session_id' parameters, leaving gaps.

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 'Add a new empty sheet,' using a specific verb (add) and resource (sheet), which accurately reflects the tool's function. It naturally distinguishes from siblings like copy_sheet or delete_sheet without confusion.

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?

The description provides guidance on the index parameter ('index 0 puts it first; omit to append at the end') but does not compare this tool to alternatives like copy_sheet or rename_sheet. No explicit 'when to use' or 'when not to use' is given.

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

append_rowsA

Append rows after the last used row of a sheet (like adding to a table).

values is a list of rows. Omit sheet to use the active sheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheetNo
valuesYes
session_idYes

TDQS

A3.5/5.0
Behavior3/5

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

The description explains that rows are appended after the last used row, but does not detail behavior for empty sheets (whether it starts at row 1), what constitutes 'last used row', or any error conditions. With no annotations, more depth would be beneficial, but the basic intent is clear.

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?

Two succinct sentences, first stating purpose, second providing parameter usage. No redundant information, front-loaded with the key action. Every word earns its place.

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

Completeness3/5

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

For a simple append operation with no output schema and no annotations, the description covers the basic functionality. However, it misses details like return value, side effects (e.g., does it modify the sheet in place?), and behavior with empty values or large data.

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?

The description adds meaning to 'values' as 'a list of rows' and explains that omitting sheet uses the active sheet. However, it does not clarify the structure of each row (array of cell values) or constraints. Since schema coverage is 0%, the description adds value but not full detail.

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 tool appends rows after the last used row, using the verb 'append' and specifying the resource 'rows of a sheet'. It compares to 'adding to a table', which distinguishes it from insert or overwrite operations. This is distinct from siblings like insert_rows and write_range.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like write_range or insert_rows. The only usage hint is 'Omit sheet to use the active sheet', which is more about parameter use than context selection. There are no when-not-to-use or prerequisites mentioned.

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

apply_conditional_formattingA

Add a conditional formatting rule to a range.

rule_type:

  • 'color_scale': gradient by value; colors = 2 or 3 hex/named colors (default red-yellow-green).

  • 'data_bar': in-cell bars; colors = [bar_color] (default blue).

  • 'cell_value': highlight cells matching operator (greaterThan, lessThan, equal, notEqual, between, notBetween, greaterThanOrEqual, lessThanOrEqual) against values (two values for between); uses fill_color/font_color.

  • 'formula': highlight where an Excel formula (relative to the range's top-left cell) is TRUE, e.g. 'ISBLANK(A2)'; uses fill_color/font_color.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
colorsNo
valuesNo
formulaNo
operatorNo
rule_typeYes
fill_colorNolight_red
font_colorNo
session_idYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations exist, so the description carries full burden. It discloses behavior for each rule type (e.g., default colors, operator list) and required parameters. However, it does not address whether existing rules are overwritten or appended, side effects, or authentication needs. Thus it is adequate but not exhaustive.

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 concise with two paragraphs and bullet points for rule types. It front-loads the main action and then elaborates on parameters. Each sentence adds value, though a slight reduction in phrasing could improve conciseness.

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?

Given the tool's complexity (multiple rule types, 9 parameters) and no output schema, the description covers all rule types and their parameter dependencies. It lacks details on return values and error handling, but otherwise provides sufficient context for an agent to correctly invoke the tool.

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

Parameters5/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 explain all parameters. It does so comprehensively by detailing 'rule_type' options and associating parameters like 'colors', 'operator', 'values', 'formula', 'fill_color', 'font_color' with specific rule types. It also provides defaults and formatting notes (e.g., hex/named colors). This adds significant meaning beyond the bare schema.

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 tool adds a conditional formatting rule to a range, specifying verb 'add' and resource 'conditional formatting rule'. It further distinguishes from siblings like 'set_fill_color' and 'format_as_table' by detailing rule types (color_scale, data_bar, cell_value, formula), making the purpose precise and distinct.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as 'set_fill_color' or 'set_font'. The description explains rule types but does not mention prerequisites, context for choosing conditional formatting over direct formatting, or when not to use this tool.

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

apply_style_presetC

Apply a common style in one call.

Presets: header (bold white on dark blue, centered), title (large bold), zebra (banded rows, first row skipped), currency, percent, highlight (yellow fill), total_row (bold, double top border).

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
presetYes
session_idYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must bear full responsibility. It lacks details on side effects such as whether existing formatting is overwritten or merged, and what happens if the range is larger than the style's intended area.

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 concise with a clear first sentence and a bullet-style list of presets. It avoids unnecessary fluff, though a slightly more structured format could improve scannability.

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

Completeness2/5

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

Given the lack of output schema and behavioral details, the description is incomplete. It fails to explain the effect on existing formatting, return value, or how to specify the range, which are critical for correct use.

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

Parameters2/5

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

Schema coverage is 0%, yet only the 'preset' parameter is elaborated with options. The 'range' and 'session_id' parameters have no description, leaving the agent to infer their purpose from context.

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?

The description clearly states it applies a common style in one call and lists presets. It distinguishes from individual formatting tools but not explicitly from siblings like format_as_table or apply_conditional_formatting.

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?

The description implies usage for applying predefined styles via the preset list, but does not provide explicit guidance on when to use vs alternatives or when not to use.

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

auto_fit_columnsB

Approximate Excel's auto-fit: size each column to its longest value.

columns like 'A:F'; omit to fit every used column. Widths are clamped to the 8-80 range.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheetNo
columnsNo
session_idYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided. The description discloses one behavioral trait: widths are clamped to 8-80. But it lacks details on whether it's destructive, requires specific permissions, or has side effects, which is insufficient for 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 description is concise with two sentences, front-loading the core purpose. The second sentence is slightly fragmented but still clear and efficient.

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

Completeness2/5

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

For a simple tool with no output schema and no annotations, the description covers main functionality and a key constraint, but omits details like return value, error handling, or which sheet is affected when not specified. Gaps remain.

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?

The schema has 0% description coverage. The description partially compensates by explaining the 'columns' parameter format and default behavior. However, 'sheet' and 'session_id' are not explained, leaving gaps.

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: 'size each column to its longest value', identifies the resource (columns), and specifies scope ('like A:F' or all used). It distinguishes from sibling tools like 'set_column_width' which sets a specific width.

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?

The description gives context on usage: how to specify columns and that omitting fits all used columns. However, it does not explicitly mention when not to use this tool or provide alternatives, though siblings like 'set_column_width' exist.

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

clear_rangeA

Clear values (not formatting) from every cell in a range.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
session_idYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries full transparency burden. It discloses the key behavioral trait that formatting is preserved, which is important for a destructive operation. However, it does not mention side effects like undo availability or recalculation.

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, front-loaded sentence with zero wasted words. Every part of the description adds value.

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?

Given the low complexity (2 required params, no output schema), the description is nearly complete. It explains the core behavior but could mention that the operation is applied to the specified range and requires a valid session_id.

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

Parameters2/5

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

With 0% schema description coverage, the description should compensate by explaining parameters. It does not mention 'range' or 'session_id' at all, leaving the agent to infer their meaning from names alone.

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 verb ('Clear') and resource ('values from every cell in a range'), and explicitly distinguishes it from formatting operations. It is specific and differentiates from sibling tools like write_range or delete_rows.

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?

The description implies when to use (clear contents without affecting formatting) but provides no explicit guidance on when not to use or mentions alternatives among the 70+ sibling tools.

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

close_workbookA

Close a workbook session and free its memory.

Refuses to close if there are unsaved changes, unless discard_changes=True.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
discard_changesNo

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It adds the key behavior of refusing to close with unsaved changes unless discard_changes=true, but lacks details on side effects, idempotency, or prerequisites like session validity.

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?

Two sentences with no wasted words. The first sentence front-loads the purpose, and the second adds crucial conditional behavior. Highly concise and efficiently structured.

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

Completeness3/5

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

The description covers the core behavior but leaves gaps: no explanation of the session_id parameter, no return value info, and no linkage to sibling tools like open_workbook. Given the tool's simplicity, it is minimally adequate.

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

Parameters2/5

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

Schema coverage is 0%, yet the description only partially explains the discard_changes parameter. The required session_id parameter is not described; its source (e.g., from open_workbook) is omitted. This is insufficient for guiding the agent.

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 'Close a workbook session' with a specific verb and resource. It distinguishes from sibling tools like save_workbook and open_workbook by focusing on closing and memory cleanup.

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?

The description explains the refusal condition for unsaved changes and explicitly mentions the discard_changes parameter. While it implies when to use it, it could be improved by directly stating alternatives like saving first via save_workbook.

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

copy_sheetC

Duplicate a sheet within the workbook, including values and formatting.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
new_nameNo
session_idYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. It mentions including values and formatting but does not state whether formulas, conditional formatting, or data validation are preserved, nor any side effects like naming conflicts.

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?

Single sentence, no redundancy. But it could include more detail without being verbose.

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

Completeness2/5

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

For a copy operation, missing details on where the copy is placed, behavior if new_name already exists, and whether it affects the original sheet. No output schema provided, so description should be more informative.

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

Parameters2/5

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

Schema description coverage is 0%, yet the description does not explain any parameters (e.g., what 'name' refers to, what 'new_name' does if provided). Agents must infer from parameter names alone.

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?

The description clearly states the tool duplicates a sheet with values and formatting, distinguishing it from siblings like add_sheet (creates empty) or delete_sheet. However, it doesn't explicitly say it creates a new sheet in the same workbook.

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

Usage Guidelines2/5

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

No guidance on when to use copy_sheet versus other operations like export or duplicate via other means. No alternatives mentioned.

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

create_workbookA

Create a new Excel workbook at the given absolute path.

The file is not written to disk until save_workbook. Fails if the file already exists unless overwrite=True. Returns a session_id for editing.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
overwriteNo

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description discloses key behaviors: delayed writing, overwrite requirement, and session_id return. It does not cover all edge cases but is adequate for a create tool.

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?

The description is three sentences, each earning its place: purpose, writing behavior, and overwrite handling. No fluff, front-loaded with main action.

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?

Given the tool's simplicity (2 params, no output schema), the description covers purpose, key behaviors, and parameter details. It omits that the workbook starts empty, but that is implicit.

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 has 0% description coverage, but the description adds meaning by specifying 'absolute path' for the path parameter and explaining overwrite's behavior, compensating for the schema gap.

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 verb 'Create' and the resource 'a new Excel workbook' with an absolute path, distinguishing it from sibling tools like open_workbook or save_workbook.

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?

It explains that the file is not saved until save_workbook is called and that overwrite=True is needed if the file exists, providing clear context. However, it does not explicitly state when to avoid using this tool (e.g., when opening an existing workbook, use open_workbook).

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

define_named_rangeA

Create a workbook-level named range, e.g. 'SalesData' for 'Sheet1!A1:C10'. The name can then be used in formulas: '=SUM(SalesData)'.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
rangeYes
session_idYes

TDQS

A3.6/5.0
Behavior3/5

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

Without annotations, the description carries full burden. It discloses that the tool creates a workbook-level named range and explains how the name can be used in formulas. However, it does not cover side effects, authorization needs, or error handling.

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?

The description is a single sentence followed by a brief example, conveying essential information without any waste. The key action and benefit are front-loaded.

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

Completeness3/5

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

For a tool with 3 required parameters and no output schema, the description provides a basic understanding but lacks details about prerequisites (e.g., workbook open), naming rules, or what happens on failure.

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

Parameters2/5

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

Schema coverage is 0%, so parameter descriptions are missing entirely. The description only illustrates 'name' and 'range' via example but does not explain the 'session_id' parameter or provide format/constraints for the parameters.

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 verb ('Create') and resource ('workbook-level named range') with a concrete example ('SalesData' for 'Sheet1!A1:C10'). It distinguishes from siblings like delete_named_range and list_named_ranges by focusing on creation.

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?

The description implies usage (when you need a named range for formulas) but provides no explicit guidance on when not to use it or alternatives. No mention of prerequisites or comparison with sibling tools.

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

delete_chartB

Delete a chart by its index (see list_charts). The data is unaffected.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheetNo
session_idYes
chart_indexYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations provided. The description discloses key behavioral detail: 'The data is unaffected.' However, it does not mention permissions, reversibility, or error conditions, leaving gaps.

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?

Two concise sentences with no unnecessary words. Front-loaded with the core action and immediate reference to list_charts.

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

Completeness3/5

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

Basic delete tool with no output schema. Description covers the main action and data safety, but lacks parameter explanations and return information, adequate but incomplete.

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

Parameters1/5

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

Schema description coverage is 0%. The description does not explain any of the three parameters (session_id, chart_index, sheet), leaving the agent to infer solely from names and schema.

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?

Clearly states verb 'delete', resource 'chart by index', and references sibling 'list_charts' for obtaining the index, effectively distinguishing from other tools.

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?

Implies usage by referencing list_charts, but lacks explicit when-to-use or when-not-to-use guidance, and doesn't mention alternatives or prerequisites beyond the index.

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

delete_columnsC

Delete columns starting at the given column ('B' or 1-based index).

ParametersJSON Schema
NameRequiredDescriptionDefault
countNo
sheetNo
columnYes
session_idYes

TDQS

C2.9/5.0
Behavior2/5

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

The description states a destructive action (delete) but provides no additional behavioral context such as that the deletion is irreversible, requires a valid session_id, or modifies the sheet permanently. With no annotations, the description should explain side effects, but it only gives the basic operation.

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 a single sentence that is front-loaded and efficient, containing no redundant words. It could be slightly expanded to include more detail without losing conciseness, but as a minimal viable description it earns a 4.

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

Completeness2/5

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

For a destructive tool with 4 parameters and no output schema, the description lacks key context: it does not mention the count parameter (which controls how many columns to delete), the optional sheet parameter, or that the effect is limited to columns starting at the given one and moving right. This leaves gaps for correct invocation.

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?

The description adds useful meaning to the 'column' parameter by noting it can be a letter ('B') or 1-based index. However, the count, sheet, and session_id parameters are not described. Since schema coverage is 0%, the description partially compensates for one parameter, leaving others ambiguous.

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?

The description clearly states the tool deletes columns starting at a given column, using a verb and resource. It distinguishes from siblings like delete_rows and delete_sheet by specifying 'columns'. However, it does not specify the direction of deletion (to the right) or whether the starting column itself is included, which could cause confusion.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like delete_rows or insert_columns. It does not mention that the count parameter defaults to 1 or that only columns from the starting point onward are affected. An agent would need to infer usage from the name alone.

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

delete_commentB

Remove the comment from a cell.

ParametersJSON Schema
NameRequiredDescriptionDefault
cellYes
session_idYes

TDQS

B3/5.0
Behavior2/5

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

With no annotations provided, the description must fully convey behavioral context. It only states the action but omits details like idempotency, error behavior if no comment exists, or return value, leaving significant gaps for the agent.

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 extremely concise with a single, front-loaded sentence. However, it sacrifices necessary detail for brevity, which could be improved by adding brief parameter explanations.

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

Completeness2/5

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

Given the lack of output schema, annotations, and param descriptions, the description is inadequate. It does not cover return behavior, error handling, or parameter semantics, leaving the tool under-specified for an AI agent.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description does not explain the purpose or format of the two required parameters (session_id and cell). The agent is left guessing what these parameters represent or how to format the cell reference.

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 'Remove the comment from a cell.' clearly states the verb (Remove), resource (comment), and scope (from a cell), effectively distinguishing it from sibling tools like add_comment and get_comments.

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?

The description implies usage for deleting comments but provides no explicit guidance on when to use this tool versus alternatives, such as checking if a comment exists first via get_comments. No exclusions or prerequisites are mentioned.

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

delete_imageA

Delete an embedded picture by its index (see list_images).

ParametersJSON Schema
NameRequiredDescriptionDefault
sheetNo
session_idYes
image_indexYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose whether deletion is permanent, reversible, or has side effects. The destructive nature is implied but not elaborated, leaving the agent uninformed about behavioral implications.

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?

The description is a single sentence that efficiently conveys the core information without superfluous text, front-loaded with the action and resource.

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

Completeness2/5

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

For a destructive operation with no annotations or output schema, the description omits crucial context about return values, error states, or prerequisites. It is too sparse to fully guide an AI agent.

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?

The description explains the image_index parameter by specifying it is used for deletion by index, but does not clarify the session_id or optional sheet parameter. With 0% schema coverage, some meaning is added but not enough for all parameters.

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 (delete) and resource (embedded picture), and specifies the method (by index). It also references a related tool (list_images), making the 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 Guidelines4/5

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

The description advises the agent to use list_images to obtain the index, providing a clear usage hint. While it doesn't explicitly exclude alternatives, the context of siblings makes the tool's niche clear.

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

delete_named_rangeA

Delete a defined name. The cells it referred to are unaffected.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
session_idYes

TDQS

A3.7/5.0
Behavior3/5

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

Without annotations, the description carries the full burden. It discloses that cells are unaffected, which is useful behavioral context. However, it lacks details on permissions, reversibility, or error conditions, keeping it at an adequate but not detailed level.

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?

Two sentences, front-loaded with the action. Every word adds value; no redundancy. Highly concise and well-structured.

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 tool with two basic parameters and no output schema, the description covers the essential behavioral nuance (cells unaffected). It is mostly complete, though it could mention that the named range must exist.

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

Parameters2/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 explain parameters. It only implicitly references 'name' but does not describe 'session_id' at all. The description adds minimal semantic value beyond the schema.

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 ('Delete a defined name') and the resource ('a defined name'). It distinguishes from sibling 'define_named_range' as the inverse operation, and provides clarity that cells are unaffected.

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?

The description implies when to use (to delete a named range) but provides no explicit guidance on when not to use or alternatives. The note about cells being unaffected offers some contextual advice.

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

delete_rowsB

Delete rows starting at the given 1-based row number. Rows below shift up.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowYes
countNo
sheetNo
session_idYes

TDQS

B3/5.0
Behavior2/5

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

The description mentions that rows below shift up, which is a key behavioral trait. However, with no annotations, it omits other important details like whether the operation is reversible, permissions required, or side effects. More context is needed for a deletion 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 description is very concise and front-loaded with the action. However, it misses the opportunity to add parameter information in a compact way. Still, it avoids verbosity.

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

Completeness2/5

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

Given the tool's destructive nature, lack of annotations, and missing output schema, the description is incomplete. It does not address edge cases (e.g., invalid row number, zero count) or provide usage context. Sibling tools provide some context but the description itself is insufficient.

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

Parameters1/5

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

The input schema has 4 parameters (row, count, sheet, session_id) with 0% description coverage. The description does not mention any parameters, leaving agents to infer semantics from names and types alone. For example, 'count' defaults to 1 but its purpose is not explained.

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 tool deletes rows starting at a given 1-based row number, and that rows below shift up. This distinguishes it from siblings like 'delete_columns' and 'clear_range' which have different purposes.

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?

The description implies usage for deleting rows, but no explicit guidance on when to use this tool vs alternatives like 'clear_range' or 'delete_sheet'. The sibling list includes related tools, but the description does not differentiate them.

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

delete_sheetA

Delete a sheet and all its data. A workbook must keep at least one sheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
session_idYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It states deletion of data and the constraint, implying irreversibility. However, lacks details on side effects (e.g., dependencies like charts) or error cases.

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?

Two short sentences, no redundant words. Front-loaded with the core action and constraint.

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

Completeness3/5

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

Minimal but covers the essential behavior and constraint. Lacks error scenarios or prerequisites, but for a simple delete operation, it is reasonably complete given the absence of output schema.

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

Parameters2/5

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

Schema description coverage is 0%, but the description adds no parameter explanations beyond their names. 'Name' and 'session_id' are somewhat clear, but no guidance on format or valid values.

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 'Delete a sheet and all its data' with specific verb+resource. It also distinguishes from siblings like copy_sheet or rename_sheet by focusing on deletion.

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?

Provides one important constraint: 'A workbook must keep at least one sheet.' But no explicit when-to-use, when-not-to-use, or alternatives among sibling tools.

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

export_csvA

Export a range (or a sheet's whole used range) to a CSV file.

Formula cells export their formula text; run recalculate_workbook and read from read_calculated_range if you need computed values instead. Dates become ISO strings, empty cells become empty fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeNo
sheetNo
csv_pathYes
delimiterNo,
overwriteNo
session_idYes

TDQS

A4.1/5.0
Behavior4/5

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

Discloses how formulas, dates, and empty cells are handled. Though annotations are absent, the description adds important behavioral traits. Could mention overwrite behavior and file creation, but overall informative.

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?

Two sentences with no filler. Front-loaded purpose, every sentence adds value. Efficiently explains key behaviors and alternatives.

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

Completeness3/5

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

Given 6 parameters and no output schema, the description covers main behaviors but omits details on delimiter, overwrite, and file path. It includes helpful alternative guidance, but gaps remain for complete understanding.

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?

Parameter schema has 0% coverage, so description must compensate. It explains range/sheet usage implicitly but does not detail csv_path, delimiter, overwrite, or format. Adds some context but not comprehensive.

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 tool exports a range or sheet's used range to CSV, distinguishing it from siblings like export_json and export_pdf.

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?

Provides specific guidance on when to use alternatives (recalculate_workbook + read_calculated_range for computed values). Does not explicitly compare to export_json/export_pdf, but gives clear context for a common scenario.

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

export_jsonA

Export a range (or a sheet's whole used range) to a JSON file.

With first_row_is_header=true (default) the output is a list of objects keyed by the header row; otherwise a list of row arrays.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeNo
sheetNo
json_pathYes
overwriteNo
session_idYes
first_row_is_headerNo

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must disclose behavior. It explains the effect of first_row_is_header and range, but omits details about overwrite behavior, session_id usage, and whether json_path creation or overwrite occurs. The overwrite parameter is not explained.

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 two sentences, efficient and front-loaded. However, it could briefly explain key parameters like overwrite and json_path without significant bloat.

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

Completeness3/5

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

Given 6 parameters, no output schema, and no annotations, the description covers the core behavior and key parameter but omits explanations for session_id, overwrite, and file path details. Sibling context is clear (distinct format), but completeness suffers.

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 coverage is 0%, so description should compensate. It adds meaning for first_row_is_header and range/sheet (whole used range vs specific range), but session_id, json_path, and overwrite are not explained beyond their names, leaving gaps.

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 tool exports a range or sheet's used range to JSON. It distinguishes from siblings like export_csv and export_pdf by specifying the output format.

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?

The description explains when to use first_row_is_header=true vs false, giving context for output structure. However, it lacks explicit guidance on when to choose this over export_csv/export_pdf.

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

export_pdfA

Export the workbook (or one sheet) to a PDF file via Excel.

Saves the session first. Requires Microsoft Excel on Windows (uv sync --extra com).

ParametersJSON Schema
NameRequiredDescriptionDefault
sheetNo
pdf_pathYes
overwriteNo
session_idYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, description reveals key behavioral trait: saves session before export. Also notes platform requirement. Lacks detail on side effects of overwrite parameter, but overall informative.

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?

Three concise sentences. First sentence states core function, second adds a behavioral detail, third covers requirements. No extraneous text, though could be slightly more structured.

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

Completeness3/5

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

Covers purpose, prerequisites, and a key behavioral trait. Missing details on return value or success indication, and no elaboration on parameter formats given lack of output schema. Adequate but not comprehensive.

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 has 0% description coverage. Description adds context for sheet parameter (workbook or one sheet) but does not explain pdf_path format, overwrite behavior, or session_id purpose. Partially compensates.

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?

Description clearly states verb 'export' and resource 'workbook (or one sheet)' to PDF, distinguishing from sibling export tools like export_csv and export_json.

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?

Provides prerequisites (Excel on Windows, uv sync --extra com) and notes the tool saves the session first. Does not explicitly contrast with alternative export methods but implies PDF-specific use.

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

fill_formulaA

Fill a range with a formula, adjusting relative references like Excel's fill handle.

The formula is written as given to the range's top-left cell and translated for the rest: '=B22' filled into C2:C4 becomes '=B32' in C3 and '=B42' in C4. Use $ to pin references ('=$B$1B2').

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
formulaYes
session_idYes

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It explains the relative reference adjustment mechanism with an example, which is the key behavioral trait. It does not mention if the operation overwrites existing content or any safety considerations, which would have earned a 5.

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?

Two sentences plus a compact example. No wasted words. The description is front-loaded with purpose, then behavior, then illustration. Every sentence earns its place.

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 tool of moderate complexity, the description covers the core mechanism and absolute references. It doesn't mention what happens with non-contiguous ranges, error handling, or that it overwrites existing data. Minor gap but still fairly complete given the context.

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

Parameters5/5

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

With 0% schema description coverage, the description adds substantial meaning: it explains that 'range' is the target range, 'formula' is the formula to fill, and how the formula is adjusted (top-left written as-is, rest translated). The example clarifies the expected format for range and formula, compensating fully for the lack of schema descriptions.

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 'Fill a range with a formula, adjusting relative references like Excel's fill handle.' This specific verb+resource combination distinguishes it from siblings like set_formula or write_range, which operate on single cells or static values.

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?

The description provides a concrete example and explains relative vs absolute references ($), giving clear context for usage. However, it does not explicitly contrast with alternatives like set_formula or copy-paste operations, but the purpose is distinct enough.

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

find_in_workbookA

Find cells whose value contains the query text (or matches the regex).

Searches one sheet if given, otherwise the whole workbook. Values are matched against their string form; formulas match on formula text. Returns up to 500 matches with their cell addresses.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
regexNo
sheetNo
match_caseNo
session_idYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so description must compensate. It discloses matching rules (string form for values, formula text for formulas) and a 500-match limit. This gives good insight into tool behavior, though it could mention case sensitivity handling.

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?

Three sentences, front-loaded with purpose, then scope, then details. No wasted words, easy to scan.

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?

No output schema, but description states returns up to 500 matches with cell addresses. Sufficient for a search tool. Could specify output format but not necessary for agent decision.

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 0%, but description adds meaning for query, regex, and sheet parameters. It explains matching semantics and scope. Match_case is not directly explained, but parameter name is self-explanatory. Overall, description provides context beyond parameter names.

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 tool finds cells based on query text or regex, specifies scope (single sheet or whole workbook), and gives matching behavior and result limit. It distinguishes from sibling tools like read_range or find/replace.

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?

The description explains when to specify a sheet vs search entire workbook. It does not explicitly mention when not to use or compare to other find/replace tools, but the guidance is sufficient for typical use.

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

format_as_tableB

Convert a range into a native Excel table with a built-in style.

The first row of the range must be unique, non-empty headers. Styles are Excel's built-ins: TableStyleLight1-21, TableStyleMedium1-28, TableStyleDark1-11.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
styleNoTableStyleMedium9
session_idYes
table_nameNo
banded_rowsNo

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description must fully convey behavioral traits. It states that styling uses built-in Excel table styles, which is helpful, but it fails to disclose whether the conversion is destructive (overwrites data), what happens to existing formatting, or if the tool works on existing tables. Important side effects and constraints are omitted.

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?

The description is extremely concise: two sentences with no redundant information. The first sentence immediately states the core purpose, and the second adds essential constraints. Every word serves a purpose, making it easy for an AI agent to quickly grasp the tool's function.

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

Completeness2/5

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

Given the tool has 5 parameters (including optional ones) and no output schema, the description is insufficiently complete. It lacks details on return values, error handling, behavior of optional parameters, and any side effects. An agent would need to infer or test missing aspects, reducing reliability.

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?

The schema has 0% description coverage, so the description needs to compensate. It explains that the first row of the range must be headers, which adds context to the 'range' parameter, and it lists the available style names for the 'style' parameter. However, it does not describe the 'table_name' or 'banded_rows' parameters, nor does it clarify the purpose of 'session_id'. The description adds moderate value but leaves gaps.

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 tool's function: 'Convert a range into a native Excel table with a built-in style.' This uses a specific verb ('convert') and resource ('range'), and the target is uniquely identified as a native Excel table. The description also distinguishes this tool from siblings like 'apply_style_preset' by emphasizing the table conversion aspect rather than merely applying a style.

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

Usage Guidelines2/5

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

The description mentions a prerequisite ('first row must be unique, non-empty headers') but provides no guidance on when to use this tool versus alternatives such as 'apply_style_preset' or 'write_range'. It does not indicate when it is appropriate or inappropriate to use, nor does it address error conditions or limitations.

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

freeze_panesA

Freeze rows above and columns left of the given cell.

'A2' freezes row 1; 'B1' freezes column A; 'B2' freezes both. Omit cell (or pass 'A1') to unfreeze.

ParametersJSON Schema
NameRequiredDescriptionDefault
cellNo
sheetNo
session_idYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description fully carries the burden of disclosing behavior. It clearly explains the effect of different cell inputs, including the unfreeze action. While it does not discuss edge cases (e.g., existing freeze replacement), the core behavior is well articulated.

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?

The description is extremely concise: two clear sentences that front-load the purpose and follow with illustrative examples. Every word serves a purpose, and there is no filler or unnecessary detail.

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 tool that manipulates view settings, the description covers the main behavior well. It explains the expected input format and the unfreeze action. It does not detail return values (no output schema) or error conditions, but the tool's simplicity makes this acceptable. A small gap is the lack of mention about replacing an existing freeze.

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?

The description adds significant meaning for the 'cell' parameter, detailing how different values affect freezing/unfreezing. However, it does not explain 'sheet' or 'session_id', which are present in the schema. Given 0% schema coverage, the description should compensate for all parameters, but it only covers one partially.

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 ('Freeze rows above and columns left of the given cell') and uses concrete examples ('A2' freezes row 1; 'B1' freezes column A; 'B2' freezes both). It effectively distinguishes this tool from its many siblings (e.g., set_column_width, set_font) by specifying a unique spreadsheet operation.

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?

The description provides explicit guidance on when to use the tool (to freeze specific rows/columns by cell reference) and how to unfreeze (omit cell or pass 'A1'). However, it does not state when not to use it or mention alternative approaches, though given the tool's specificity, that is less critical.

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

get_cell_formatA

Inspect a cell's formatting: font, fill, alignment, borders, number format, dimensions, and merge status.

ParametersJSON Schema
NameRequiredDescriptionDefault
cellYes
session_idYes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It explicitly states that the tool inspects formatting, implying a read-only, non-destructive operation. The list of formatting aspects gives good coverage of what behavior to expect, though it omits details like response structure or limitations (e.g., handling of merged cells).

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?

The description is a single sentence that efficiently conveys the tool's purpose and scope. It lists the formatting aspects concisely, with no redundant words. The structure is front-loaded with the key action ('Inspect a cell's formatting').

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

Completeness3/5

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

Without an output schema or annotations, the description should provide more context. It lists what formatting aspects are inspected but does not describe the return format, potential edge cases (e.g., empty cells, merged cells), or whether all aspects are returned in a single call. For a read tool, this leaves some ambiguity about the response structure.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds no information about the parameters 'cell' or 'session_id'. It does not specify the expected format for 'cell' (e.g., A1 notation) or the purpose of 'session_id'. The name and context imply basic meaning, but the description fails to add value beyond the schema.

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 ('Inspect a cell's formatting') and lists specific formatting aspects (font, fill, alignment, borders, number format, dimensions, merge status). This distinguishes it from sibling tools that write or modify formatting, making 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 Guidelines3/5

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

The description implies usage for inspecting formatting but provides no explicit guidance on when to use it versus alternative tools like read_cell (which retrieves values) or set_* tools. No 'when not to use' or alternative names are mentioned, leaving the agent to infer from context.

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

get_commentsB

List all comments on a sheet with their cells, text, and authors.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheetNo
session_idYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It indicates a read operation but does not disclose behavioral traits such as permissions, pagination, or behavior when the optional 'sheet' parameter is null. Minimal transparency.

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?

Single sentence that is concise and front-loaded with the action ('List all comments'). Every word adds value; no redundancy.

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

Completeness3/5

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

For a simple retrieval tool, the description covers the basic purpose but lacks output format details (e.g., returns a list) and does not address potential edge cases with the optional sheet parameter. Adequate but not comprehensive.

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

Parameters2/5

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

With 0% schema description coverage, the description should compensate but fails to explain the 'session_id' parameter or provide details about the 'sheet' parameter's allowed values or behavior. Only implies 'sheet' specifies the target sheet.

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 tool lists all comments on a sheet with specific attributes (cells, text, authors), distinguishing it from sibling tools like add_comment and delete_comment.

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?

The description implies use for retrieving comments but lacks explicit guidance on when to use versus alternatives or when not to use. No mention of prerequisites or context.

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

get_formulaA

Read the formula stored in a cell. formula is null when the cell holds a plain value instead of a formula.

ParametersJSON Schema
NameRequiredDescriptionDefault
cellYes
session_idYes

TDQS

A3.9/5.0
Behavior4/5

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

Since no annotations are provided, the description carries the full burden. It discloses that the formula is null when the cell holds a plain value, which is key behavioral information for the agent. However, it does not mention any other traits like idempotency or authorization needs.

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?

The description is a single, efficient sentence with no wasted words. It front-loads the core purpose and adds a critical behavioral detail about null values.

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 read tool with no output schema, the description covers the return value behavior (formula or null). However, it lacks parameter descriptions, which limits completeness. Given the tool's simplicity, it is mostly adequate but could be improved.

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

Parameters2/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 explain parameters. It does not mention what 'cell' or 'session_id' represent or their expected formats (e.g., cell reference like 'A1'). The agent is left to infer the meaning from the tool name and context.

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 tool reads a formula from a cell ('Read the formula stored in a cell'), which is a specific verb+resource. It distinguishes from sibling tools like read_cell (value) or set_formula (write) by focusing on formula retrieval.

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?

The description implies usage for retrieving formulas but does not explicitly state when to use this tool versus alternatives like read_cell for values or set_formula for writing. No exclusions or when-not-to-use guidance is provided.

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

get_used_rangeB

Get the bounding range of used cells on a sheet, e.g. 'A1:F120'.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheetNo
session_idYes

TDQS

B3.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It states the tool gets bounding range, implying read-only, but does not clarify what constitutes 'used cells' (e.g., includes empty cells within bounds?) or mention side effects, auth needs, or rate limits. Adequate but minimal.

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?

Single sentence with an example, no unnecessary words. Efficient and direct.

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

Completeness3/5

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

Despite simplicity, lacks detail on return value format (e.g., string like 'A1:F120'?), output schema absent, and no clarification on what 'used cells' entails. Adequate for a trivial tool but could be more informative.

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

Parameters1/5

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

Description adds no meaning beyond the input schema. Schema coverage is 0%, and description does not explain the 'sheet' parameter (optional, null) or 'session_id'. The example implies a sheet name but no parameter details.

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 verb 'Get' and the resource 'bounding range of used cells', with an example 'A1:F120'. This distinguishes it from sibling tools like read_range or read_sheet.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like read_range or read_sheet. No exclusions or context provided beyond the basic description.

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

get_workbook_infoC

Get workbook details: sheet names plus each sheet's used-range dimensions.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states what information is returned, not whether the operation is read-only, safe, or requires special permissions. There is no mention of side effects or mutations, but given the nature, it's likely safe. However, the description omits explicit behavioral transparency.

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?

The description is extremely concise and front-loaded, using a single sentence to convey exactly what information the tool returns. No wasted words.

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

Completeness3/5

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

The description tells what the tool outputs but fails to explain the input parameter or confirm the operation's behavior (e.g., read-only). With no output schema, describing the output format would be helpful. For a simple tool, it is minimally adequate but has clear gaps.

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

Parameters1/5

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

The input schema has a single required parameter 'session_id' with no description. The tool description does not mention this parameter or explain how to obtain it or what it represents. With 0% schema description coverage, the description fails to add any semantic context for the parameter.

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?

The description clearly identifies the tool's purpose: retrieving workbook-level information including sheet names and their used-range dimensions. The verb 'Get' and resource 'workbook details' are specific, and the output is well-defined. However, it does not explicitly differentiate from siblings like 'list_sheets' or 'get_used_range' in the description, though the combination is unique.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool over siblings. It doesn't mention that for individual sheet details one might use 'get_used_range' or 'list_sheets', or that this tool provides aggregated info. Usage context is implied but not explicit.

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

import_csvB

Import a CSV file into a sheet, starting at start_cell.

With detect_types=true (default), numeric fields become numbers and empty fields become empty cells; otherwise everything is written as text. Existing cells in the target area are overwritten.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheetNo
csv_pathYes
encodingNoutf-8-sig
delimiterNo,
session_idYes
start_cellNoA1
detect_typesNo

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description bears the full burden. It discloses key behavioral traits such as overwriting existing cells and the effect of detect_types on numeric fields. However, it does not mention error handling, file path requirements, or whether the sheet must exist.

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 concise with two sentences, front-loading the purpose. It avoids unnecessary detail, though the second sentence could be more structured for readability.

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

Completeness2/5

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

Given 7 parameters and no output schema, the description is too sparse. It fails to mention prerequisites like an open session, file accessibility, or whether a new sheet is created. The lack of these details reduces completeness.

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

Parameters2/5

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

Schema coverage is 0%, meaning the description does not elaborate on individual parameters beyond the schema. While start_cell and detect_types are mentioned implicitly, parameters like encoding, delimiter, session_id, csv_path, and sheet are left unexplained.

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 tool's function: 'Import a CSV file into a sheet, starting at start_cell.' This is a specific verb+resource combination that distinguishes it from siblings like export_csv (export) and read_range (read).

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?

The description provides some usage context (detect_types behavior, overwriting), but no explicit when-to-use or when-not-to-use guidance relative to alternatives. The behavior around detect_types is explained, but broader usage scenarios are not addressed.

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

insert_columnsB

Insert empty columns before the given column ('B' or 1-based index).

Columns at and right of it shift right. Note: formulas are not re-adjusted.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNo
sheetNo
columnYes
session_idYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description discloses key behavior: columns shift right and formulas are not re-adjusted. However, it omits details like permissions required, failure conditions (e.g., invalid column), or whether the operation is reversible.

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?

Two sentences, front-loaded with the primary action. Every word serves a purpose. The note about formulas is essential and placed at the end without clutter.

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

Completeness2/5

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

The tool has 4 parameters, no output schema, and moderate complexity. The description fails to mention return values, the effect of the 'count' parameter, or behavior when the sheet is null. It is incomplete for an agent to reliably use.

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

Parameters2/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 clarify parameters. It explains the 'column' parameter well but fails to describe 'count' (default 1, inserts multiple columns) or 'sheet' (optional scope). This leaves ambiguity for the agent.

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 ('Insert empty columns'), the resource ('before the given column'), and the effect ('Columns at and right of it shift right'). It distinguishes from siblings like delete_columns or insert_rows by specifying columns and direction.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., insert_rows, add_sheet). The description does not provide context for appropriate usage or mention any prerequisites or constraints beyond column existence.

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

insert_imageA

Insert a picture with its top-left corner at the given cell.

Supports png, jpg, gif, bmp. Give width_px and/or height_px to resize; a single dimension scales proportionally. The image file is embedded in the workbook, so the source file is not needed afterwards.

ParametersJSON Schema
NameRequiredDescriptionDefault
cellYes
width_pxNo
height_pxNo
image_pathYes
session_idYes

TDQS

A4/5.0
Behavior3/5

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

The description discloses that the image is embedded in the workbook, so the source file is not needed afterwards. This adds useful behavioral info beyond the input schema. However, it lacks details about error handling, permissions, or file requirements, which would enhance transparency.

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?

The description is two sentences with no superfluous words. It is front-loaded with the main purpose and efficiently adds supporting details.

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 tool that inserts an image, the description covers the core behavior (embedding, resizing, formats). It does not describe return values, but that is acceptable given no output schema. It could mention assumptions about the image path, but overall it is sufficiently complete.

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?

Although the input schema has 0% description coverage, the description adds meaning for 'cell' (top-left corner) and 'width_px'/'height_px' (resize with proportional scaling). It does not describe 'session_id' or 'image_path', but the context of inserting an image implies their roles.

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 ('Insert a picture'), the target location ('top-left corner at the given cell'), and specifies supported formats (png, jpg, gif, bmp) and resizing options. It distinguishes the tool from siblings like 'add_chart' or 'add_comment'.

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?

The description provides context for using the tool (supported formats, resizing behavior, embedding) but does not explicitly state when not to use it or compare to alternatives. It is clear enough for basic usage.

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

insert_rowsA

Insert empty rows before the given 1-based row number.

Rows at and below row shift down. Note: formulas are not re-adjusted.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowYes
countNo
sheetNo
session_idYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries full disclosure burden. It mentions rows shift down and formulas are not re-adjusted, which is useful but lacks details on formatting, merged cells, or potential side effects on other data.

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?

The description is two sentences with essential information front-loaded. No wasted words; every sentence adds value. It is appropriately sized for the tool's simplicity.

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

Completeness2/5

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

Given no output schema and 4 parameters, the description fails to explain the count and sheet parameters, how to target specific sheets, or what the tool returns. For a simple insertion tool, this leaves gaps that force the agent to guess.

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

Parameters2/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. It clarifies 'row' as 1-based and the insertion direction, but does not explain 'count' (default 1), 'sheet', or 'session_id'. This leaves key parameters underspecified.

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 verb ('insert'), resource ('empty rows'), and location logic ('before given 1-based row number'). It distinguishes from sibling tools like delete_rows, append_rows, and insert_columns by specifying the insertion direction and row behavior.

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?

The description implies when to use (before a row number) but does not provide explicit guidance on when not to use or alternatives. For example, it doesn't mention when to use insert_columns or append_rows, leaving room for ambiguity.

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

list_chartsB

List the charts embedded in a sheet, with the index used by delete_chart.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheetNo
session_idYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. The description only states that charts are listed and the index is returned; it does not mention side effects (likely read-only), authentication needs, rate limits, or behavior when the sheet parameter is null. For a listing operation with no annotations, this is insufficient transparency.

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 a single sentence with no redundant information, making it concise. However, it omits important details about parameters and output format, so brevity comes at the cost of completeness. Still, every word earns its place.

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

Completeness2/5

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

Given the simplicity of the tool (2 params, no output schema), the description should fully cover what the tool does and how to use it. It fails to explain the output format (e.g., list of chart names with indices) and the role of session_id. For a tool that interfaces with a chart deletion workflow, more detail is needed.

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

Parameters2/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. The description mentions the sheet parameter implicitly by stating 'charts embedded in a sheet', but it does not explain the session_id parameter at all. The default behavior of the sheet parameter (null meaning active sheet?) is not clarified. This adds minimal value beyond the schema.

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 tool lists charts in a sheet, specifying the verb 'List' and the resource 'charts embedded in a sheet'. It also adds value by mentioning that the returned index is used by delete_chart, distinguishing it from other list tools among siblings like list_images or list_sheets.

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?

The description implies usage for obtaining chart indices to delete charts via delete_chart, but it does not explicitly state when to use this tool versus alternatives (e.g., list_images) or provide prerequisites. The sibling set includes many list tools, and the description lacks guidance on when not to use it.

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

list_imagesA

List the pictures embedded in a sheet, with the index used by delete_image.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheetNo
session_idYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations exist; the description does not confirm read-only behavior, permissions, or side effects. While listing images is likely safe, the lack of explicit behavioral cues (e.g., 'This operation does not modify the sheet') leaves uncertainty.

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?

The description is a single, well-constructed sentence that front-loads the core purpose. Every word contributes meaning, with no redundancy or unnecessary text.

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

Completeness3/5

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

No output schema exists; the description mentions an index but does not specify output format or content. It lacks details on error conditions or handling missing sheets. Functional but minimally complete for an agent to rely on.

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

Parameters2/5

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

With 0% schema coverage, the description should explain parameters. It vaguely mentions 'in a sheet' but does not define the role of session_id or how to specify the sheet. The agent must guess that session_id identifies the workbook session.

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 verb 'list' and the resource 'pictures embedded in a sheet', and explicitly ties it to the sibling tool 'delete_image' by mentioning the index, making its purpose and differentiation from other list tools evident.

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?

The description implies usage before delete_image but does not explicitly state when to use or avoid this tool, nor does it compare with alternatives among siblings like list_charts. No exclusion criteria or context for selection are provided.

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

list_named_rangesA

List the workbook's defined names and the ranges they refer to.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

A3.8/5.0
Behavior4/5

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

The description accurately indicates a read operation with no side effects. No annotations are provided, but the description's simplicity is sufficient for this tool.

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?

The description is a single, concise sentence with no unnecessary information.

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

Completeness3/5

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

Describes the basic operation, but lacks details about the output format, which is not provided by an output schema.

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

Parameters2/5

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

The sole parameter session_id has no description in the schema (0% coverage), and the tool description does not add any context about its format or usage.

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 verb 'list' and the resource 'the workbook's defined names and the ranges they refer to,' which distinguishes it from sibling tools like define_named_range and delete_named_range.

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?

No explicit guidance on when to use this tool versus alternatives, but the purpose is straightforward and implied by its read-only nature.

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

list_open_workbooksA

List all currently open workbook sessions with their session_ids.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations exist, so the description must disclose behavior. It correctly implies a read-only operation, but doesn't mention permissions or other traits. Adequate for a simple list tool.

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?

Single sentence with zero wasted words. Content is front-loaded and every word serves a purpose.

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?

Given no parameters and an existing output schema, the description sufficiently covers the tool's functionality. It is complete for a simple list operation.

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?

No parameters present, so baseline score of 4 applies. Schema coverage is 100%, and the description adds no parameter info, which is acceptable.

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 tool lists open workbook sessions with session IDs, using a specific verb and resource. It distinguishes itself from siblings like close_workbook or open_workbook.

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

Usage Guidelines2/5

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

No guidance provided on when to use this tool versus alternatives. While the tool is straightforward, a brief note on context (e.g., prior to closing a session) would help.

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

list_sheetsB

List all sheets in the workbook, in tab order.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations available, so the description is the sole source of behavioral information. It correctly implies a read operation but omits details like whether the tool modifies state or requires specific permissions.

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 is front-loaded, direct, and free of extraneous information. Every word is essential.

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

Completeness3/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 an output schema, the description covers the core functionality but misses context about prerequisites (e.g., a valid session) and potential results when the workbook has no sheets.

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

Parameters2/5

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

The schema has 0% description coverage for the single parameter session_id. The description adds no information about this parameter, leaving the agent to guess its meaning and source.

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 (list), the resource (all sheets), and ordering (in tab order). It distinguishes from sibling tools like list_charts or list_images which target different resources.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, no prerequisites or context provided. The agent must infer that session_id links to an open workbook.

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

merge_cellsB

Merge a range into one cell. Only the top-left value is kept.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
session_idYes

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that only the top-left value is kept, which is an important behavioral detail. However, it does not explain side effects such as deletion of other cell contents, formatting impact, or range contiguity requirements.

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 very concise, with one short sentence containing no fluff. It is front-loaded with the core purpose. However, it omits necessary details about parameters, making it slightly too minimal.

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

Completeness2/5

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

Given no output schema and no annotations, the description should cover behavior, parameters, and return value. It partially covers behavior but misses parameter semantics completely and does not mention what the tool returns (e.g., success indication).

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

Parameters1/5

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

Schema coverage is 0%, and the description does not explain the parameters beyond their names. The 'range' parameter format (e.g., A1 notation) is not specified, and 'session_id' is not explained at all.

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 (merge) and resource (range), and includes a critical behavioral detail that only the top-left value is kept, distinguishing it from sibling tools like unmerge_cells.

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?

No explicit guidance on when to use this tool versus alternatives like clear_range or write_range. The usage is implied by the name and description, but no when-not or alternative tools are mentioned.

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

open_in_excelA

Open the workbook in a visible Excel window for the user to see.

Saves the session first so Excel shows the latest edits. Edits the user then makes in Excel do NOT flow back into this session — to continue editing here afterwards, have the user save and close Excel, then close_workbook and open_workbook again to reload.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

A4.9/5.0
Behavior5/5

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

Discloses key behaviors: saves the session, opens visible window, edits in Excel are one-way (no backflow). No annotations exist, so description carries full burden effectively.

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?

Three sentences, front-loaded with the core action, no redundant words, efficiently conveys all needed information.

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?

Covers all necessary context: saving before open, one-way edit flow, recovery procedure. No output schema, but behavior is fully described.

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?

Only one parameter (session_id) with no schema description (0% coverage). The tool name and context make session_id self-explanatory, and the description adds context about saving the session, but does not elaborate on the parameter itself.

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 'Open the workbook in a visible Excel window for the user to see,' specifying the action and resource, and distinguishes it from sibling tools like open_workbook (likely background).

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?

Explicitly mentions that it saves the session first, and provides clear instructions on handling edits: they do not flow back, and to continue editing, user must save/close Excel and use close_workbook and open_workbook again.

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

open_workbookA

Open an existing Excel file (.xlsx or .xlsm) for reading and editing.

Returns a session_id that every other tool requires. Changes are kept in memory until save_workbook is called. Use an absolute file path.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description covers key behaviors: the file is opened for editing, a session_id is returned, changes are held in memory until saved, and an absolute path is required. Missing error handling details but sufficient.

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?

Three concise sentences, each adding value: purpose, return value/memory behavior, and path requirement. No unnecessary words. Front-loaded with purpose.

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 simple open tool with one parameter and no output schema, the description covers purpose, return, state management, and a usage hint. It is complete enough for an AI agent to invoke correctly.

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?

The schema has no description for the 'path' parameter, but the description adds crucial context: it must be an absolute file path and points to an existing file, which compensates for the 0% schema coverage.

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 tool opens an existing .xlsx or .xlsm file for reading and editing, and its return of a session_id distinguishes it from siblings like create_workbook and close_workbook.

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?

The description provides context: changes are in-memory until save_workbook, and to use an absolute path. However, it does not explicitly mention when not to use this tool or name alternatives like create_workbook.

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

protect_sheetA

Protect a sheet so locked cells cannot be edited in Excel.

All cells are locked by default — use set_cell_locked(range, locked=false) BEFORE protecting to keep specific cells editable. The allow_* flags let users still format, sort, or filter while protected. A password (optional) is required to unprotect in Excel; note this is Excel's standard sheet protection, a deterrent rather than encryption.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheetNo
passwordNo
session_idYes
allow_sortingNo
allow_filteringNo
allow_formattingNo
allow_select_locked_cellsNo

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses that password is optional, required to unprotect in Excel, and that protection is a deterrent. Adds context about Excel's standard sheet protection.

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?

Description is concise, front-loaded with the main purpose, then adds prerequisite and caveats in a logical order. Every sentence adds value with no redundancy.

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?

Covers the core workflow (pre-unlock, allow flags, password) and identifies Excel's protection nature. Could mention that protection applies to the specified sheet or explain the default for allow_select_locked_cells, but overall sufficient for 7 parameters.

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 0%, so description must compensate. It explains the allow_* flags generically but does not detail each parameter individually (e.g., allow_filtering, allow_formatting). The sheet and password parameters are only implied.

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 verb 'Protect' and resource 'sheet', and explains the effect: locked cells cannot be edited. It distinguishes from sibling tools like 'unprotect_sheet' by its function.

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?

Provides explicit prerequisite: use 'set_cell_locked' before protecting to keep cells editable. Explains the allow_* flags purpose. Lacks explicit when-not-to-use or alternatives beyond the prerequisite.

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

read_calculated_rangeA

Read computed formula results (cached values) from the saved file.

Reads the last saved copy on disk, so run recalculate_workbook first — formula cells that were never calculated come back null with a hint. Non-formula cells return their stored values as usual. Truncates at 10,000 cells with a next_range cursor, like read_range.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
session_idYes

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries full burden. It fully discloses that the tool reads from disk (not live), that uncalculated formula cells return null with a hint, and non-formula cells return stored values. It also mentions truncation at 10,000 cells with a next_range cursor, similar to read_range.

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?

The description is concise (three sentences) and front-loaded with the purpose. Every sentence adds value: the first states the action, the second explains the prerequisite and behavior, and the third covers truncation. No wasted words.

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?

Given the tool's complexity (formula vs non-formula, prerequisite, truncation) and no output schema, the description is fairly complete. It covers key edge cases and limitations. The mention of next_range cursor and hint behavior provides sufficient context for correct usage.

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

Parameters2/5

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

The input schema has two parameters with 0% description coverage. The description does not elaborate on the format or constraints of range or session_id. While their names are self-explanatory, the lack of parameter documentation forces the agent to infer, which may lead to misuse.

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 tool's purpose: it reads computed formula results (cached values) from disk. It distinguishes itself from siblings like read_range by focusing on formula calculations and mentioning the prerequisite of recalculate_workbook.

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?

The description advises to run recalculate_workbook first, which is explicit usage guidance. It implies that for live formula values, this tool is not appropriate, but it does not explicitly name alternatives or exclude cases. The context is clear enough for an agent to decide.

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

read_cellA

Read one cell's value. cell is A1 notation, e.g. 'B2' or 'Sheet1!B2'.

Returns the stored value; for formula cells this is the formula text (e.g. '=SUM(A1:A5)'), since files edited outside Excel hold no cached result.

ParametersJSON Schema
NameRequiredDescriptionDefault
cellYes
session_idYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that formula cells return the formula text, not a computed result, which is a non-obvious behavioral trait. No contradictions.

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?

Two concise sentences with no wasted words. Front-loaded with the purpose, immediately followed by essential parameter and behavior details.

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 read tool with no output schema or annotations, the description explains core behavior and a potential confusion (formula cells). Missing details on error handling or missing cells, but acceptable for the scope.

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 coverage is 0%, so description must add meaning. It explains the 'cell' parameter format with examples (A1 notation), but does not explain 'session_id'. Partially compensates for schema gaps.

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 it reads one cell's value and specifies the A1 notation format. It distinguishes from sibling tools like read_range and read_calculated_range by focusing on single cell and clarifying behavior for formula cells.

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?

The description implies usage for reading a single cell but does not explicitly state when to use this tool over alternatives (e.g., read_range for multiple cells). No exclusion criteria or alternative recommendations.

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

read_rangeA

Read a rectangular range as a 2D array (rows of cell values).

Large ranges are truncated at 10,000 cells; the response then includes truncated=true and next_range to continue reading from.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
session_idYes

TDQS

A4/5.0
Behavior4/5

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

The description discloses the truncation limit (10,000 cells) and the inclusion of truncated and next_range in the response. With no annotations provided, the description carries the full burden, and it covers important behavioral aspects.

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?

The description is concise with two sentences, no redundant information. It front-loads the main purpose and adds essential details about truncation.

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 tool with two parameters and no output schema, the description covers the core behavior: reading a range, truncation, and continuation. It lacks guidance on range format but is otherwise complete.

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?

The input schema has no descriptions for params (0% coverage), but the description adds meaning by explaining the output is a 2D array. However, it does not specify the expected format of the range string (e.g., 'A1:C10'), leaving ambiguity.

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 tool reads a rectangular range and returns a 2D array of cell values. It distinguishes from siblings like read_cell (single cell) and read_sheet (whole sheet) by specifying the output format.

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?

No explicit guidance on when to use this tool versus alternatives. The purpose is clear from the name, but the description does not provide contextual cues for selection.

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

read_sheetA

Read a whole sheet's used range. Omit sheet to read the active sheet.

With first_row_is_header=true, returns records as a list of dicts keyed by the header row. Truncates at 10,000 cells like read_range.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheetNo
session_idYes
first_row_is_headerNo

TDQS

A4.4/5.0
Behavior4/5

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

Discloses truncation at 10,000 cells and explains the return format when first_row_is_header is true. No annotations are provided, so the description takes on the transparency burden well, though it omits default return format and error conditions.

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?

The description is very concise with two sentences, front-loading the main purpose. Every sentence provides essential information without waste.

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?

Given no output schema, the description covers the return format for the header case and mentions truncation. It does not mention default output format (list of lists) or error handling, but for a simple read tool it is reasonably complete.

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 0% schema description coverage, the description explains the sheet parameter (omit for active sheet) and the first_row_is_header parameter (changes return format). The required session_id is not explained but is likely standard. Overall, it adds meaningful value.

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 'Read a whole sheet's used range', which specifies the verb and resource. It distinguishes from sibling tools like read_range (which reads a specific range) and read_cell (single cell).

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?

Provides guidance on omitting the sheet parameter for the active sheet and notes the truncation limit. However, it does not explicitly compare to alternatives like get_used_range or read_calculated_range, leaving some usage ambiguity.

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

recalculate_workbookA

Recalculate all formulas using a hidden desktop Excel instance and cache the results in the file, so read_calculated_range can return computed values.

Saves the session to disk first (flushing pending edits), then opens the file invisibly in Excel, recalculates, and saves. The in-memory session keeps formulas as text; only the file on disk gains cached results. Requires Microsoft Excel on Windows (uv sync --extra com).

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

A4.4/5.0
Behavior5/5

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

No annotations are provided, so the description fully carries the burden. It transparently describes the process (saves session, opens Excel invisibly, recalculates, saves) and notes that the in-memory session retains formulas as text while only the file on disk gets cached results. It also discloses the requirement for desktop Excel.

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?

The description is three sentences, front-loading the main purpose. Every sentence adds value: purpose, process details, and a requirement. No unnecessary words.

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?

Given the tool has no output schema and is a side-effect operation, the description explains input (session_id), process, and prerequisites. It could add notes about performance or that the file is modified, but it is largely complete.

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 coverage is 0%, but the single parameter session_id is implicitly clear from the context ('Saves the session to disk'). However, the description could explicitly document session_id as the workbook session identifier.

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 tool's function: it recalculates formulas using a hidden Excel instance and caches results for read_calculated_range. It distinguishes from sibling tools by explaining the caching purpose.

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?

The description provides context: it requires Microsoft Excel on Windows and a specific uv extra. It implies usage when computed values are needed, but does not explicitly state when not to use it or mention alternatives beyond read_calculated_range.

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

remove_duplicatesA

Delete duplicate rows within a range, keeping each first occurrence.

columns lists the sheet column letters that decide uniqueness, e.g. ["A","C"] (each must fall inside the range); omit to compare whole rows. Text comparison ignores case, like Excel's Remove Duplicates. Set has_header=true to leave the range's first row in place. Remaining rows shift up and the freed rows at the bottom are cleared. Only values are compared and moved, not formatting.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
columnsNo
has_headerNo
session_idYes

TDQS

A4.2/5.0
Behavior4/5

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

Discloses that only values are compared (not formatting), rows shift up, freed rows are cleared, and header can be preserved. No annotations provided, so description carries full burden – adequately transparent.

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?

Concise, front-loaded with main action, every sentence adds value. No redundancy.

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?

Covers key behaviors, parameters, and edge cases (e.g., case sensitivity, header). No output schema, but return value is implied. Slightly lacking in session_id context but overall complete.

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?

Explains columns and has_header well, but session_id and range are not described (schema coverage 0%). Baseline 3 due to partial compensation, but missing parameter context lowers score from 4.

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 tool deletes duplicate rows within a range, keeping first occurrence. It specifies optional columns and header handling, distinguishing it from sibling tools like clear_range or delete_rows.

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?

Provides clear guidance on column specification and header behavior, and notes case-insensitive comparison. Does not explicitly compare to alternatives but context is sufficient.

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

rename_sheetB

Rename a sheet. Note: formulas referencing the old name are not rewritten.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
new_nameYes
session_idYes

TDQS

B3.2/5.0
Behavior3/5

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

The description includes a critical behavioral note that formulas referencing the old name are not rewritten. However, with no annotations, it should additionally cover other behavioral aspects like required permissions or impact on sheet references, which are missing.

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?

The description is extremely concise—two sentences with no redundant information. Every word serves a purpose, making it easy to parse.

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

Completeness3/5

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

For a simple operation like renaming a sheet, the description covers the core action and a key side-effect. However, it lacks context about return values, error conditions, or prerequisites (e.g., sheet must exist), and no output schema is provided.

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

Parameters1/5

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

The parameter names are self-explanatory (name, new_name, session_id), but the description adds no extra meaning. For example, it does not clarify that session_id identifies the workbook session or specify constraints on new_name (e.g., uniqueness, allowed characters).

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 verb 'Rename' and the resource 'a sheet', making the action unambiguous. It is distinct from sibling tools like copy_sheet or delete_sheet.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., 'Use this to rename an existing sheet; if you need to duplicate a sheet, use copy_sheet'). The description lacks contextual cues for optimal selection.

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

replace_in_rangeA

Replace text in every matching cell within a range.

Only text (string) cells are modified; numbers, dates, and formulas are left untouched. With regex=True, replace may use groups like \1.

ParametersJSON Schema
NameRequiredDescriptionDefault
findYes
rangeYes
regexNo
replaceYes
match_caseNo
session_idYes

TDQS

A3.5/5.0
Behavior3/5

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

Discloses that only text cells are modified and regex group usage, which adds value beyond no annotations. But missing details like whether range refers to current sheet, if operation is undoable, or error handling for no matches.

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?

Two sentences, clear and front-loaded. No unnecessary words. Each sentence adds distinct value.

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

Completeness2/5

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

Lack of output schema and no parameter descriptions for half the params. Does not explain range format, case sensitivity behavior, or what happens if no matches. For a mutation tool with 6 params, much more context needed.

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

Parameters2/5

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

Schema has 0% parameter description coverage. Description only explains 'regex' and 'replace' groups. 'range', 'match_case', and 'session_id' are not explained. Insufficient for a 6-parameter tool.

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?

Description clearly states verb 'replace' and resource 'matching cells within a range'. Distinguishes from sibling tools like write_cell/write_range by specifying that only text cells are modified.

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?

Implies usage for replacing text in string cells by stating that numbers/dates/formulas are untouched. However, no explicit when-to-use or when-not-to-use guidance, and no alternatives are named.

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

run_macroA

Run a VBA macro in the workbook via Excel, then reload the session so changes the macro made are visible to the other tools.

Only .xlsm workbooks can hold macros. macro_name is the procedure name (e.g. 'FormatReport' or 'Module1.FormatReport'); args are passed through. The workbook is saved after the macro runs. Requires Microsoft Excel on Windows (uv sync --extra com), and macros must be trusted for automation.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
macro_nameYes
session_idYes

TDQS

A4.3/5.0
Behavior4/5

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

Given no annotations, the description carries full burden and discloses key behaviors: session reload after macro, workbook save, and requirement for trusted macros. It could mention potential errors or side effects, but the provided information is adequate for understanding the tool's operation.

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 concise, with three sentences each adding value. The main purpose is front-loaded. It could be slightly more structured, but overall it is efficient and clear.

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 macro execution tool with 3 parameters and no output schema, the description covers prerequisites, behavior, and parameter details. It is nearly complete; missing error handling or return info is acceptable given the tool's nature.

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?

The description explains macro_name as the procedure name with examples, and notes args are passed through. With 0% schema description coverage, this adds essential meaning to the parameters. session_id is not explained but is a common pattern.

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 tool runs a VBA macro in a workbook via Excel, with a specific verb ('Run') and resource ('VBA macro'). It distinguishes from sibling tools by being the only macro execution tool among many Excel manipulation tools.

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?

The description provides prerequisites (only .xlsm workbooks, requires Excel on Windows, macros must be trusted), guiding when the tool can be used. However, it does not explicitly mention when not to use it or compare with alternatives, but the context of siblings makes it clear this is the sole macro tool.

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

save_workbookB

Write the workbook's in-memory changes to its file on disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

B3.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It correctly identifies the tool as a write/persist operation. However, it lacks details on side effects (e.g., overwriting file, failure conditions) or whether the workbook remains open after save.

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?

Single sentence, no wasted words, immediately conveys the core action. Ideal length for a simple tool.

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

Completeness3/5

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

Adequate for a basic save operation, but missing information about overwriting behavior, return value (if any), and interactions with other tools like 'close_workbook'. Given no output schema, the description should clarify what the agent can expect after calling.

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

Parameters1/5

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

Schema coverage is 0% and the description does not explain the 'session_id' parameter at all. The agent gets no help understanding what value to provide or how to obtain it, significantly hindering correct invocation.

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?

Description clearly states the action 'write', the resource 'workbook's in-memory changes', and the destination 'its file on disk'. It effectively distinguishes from sibling like 'save_workbook_as' which saves to a different location.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like 'save_workbook_as' or 'close_workbook'. The description implies saving unsaved changes but does not explicitly state prerequisites or typical usage context.

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

save_workbook_asA

Save the workbook to a new absolute path; the session then points at that file.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_pathYes
session_idYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the session points to the new file after saving, which is a key behavioral trait. However, it does not mention permissions, overwrite behavior, or error handling, which are important for a file save operation.

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?

The description is a single concise sentence that includes the action, the target (absolute path), and the side effect (session points to that file). Every word adds value.

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 tool with 2 parameters and no output schema, the description is largely complete. It explains the core behavior and the session change. It could mention return value or errors, but not essential given the tool's simplicity.

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 coverage is 0%, so the description must compensate. It adds meaning for 'new_path' by specifying it must be an absolute path. However, it does not describe the 'session_id' parameter beyond its name. This partial compensation earns a 3.

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 tool saves a workbook to a new absolute path, with the additional behavioral note that the session then points to that file. This distinguishes it from the sibling 'save_workbook' which likely saves to the current path.

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?

The description implies when to use this tool (to save to a different path) and distinguishes it from the sibling 'save_workbook'. However, it does not explicitly state when not to use it or mention alternatives like 'save' vs 'save as'.

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

set_active_sheetB

Set which sheet unqualified ranges like 'A1:C10' refer to.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
session_idYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as side effects (e.g., whether it affects subsequent operations), error conditions, or permissions. The minimal description lacks transparency for 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 description is a single short sentence with no fluff. It is concise, but could be slightly more informative without losing conciseness.

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

Completeness3/5

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

For a simple setter with no annotations and no output schema, the description is adequate. It gives the basic purpose but lacks details about prerequisites (whether the sheet must exist), error handling, or return behavior.

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

Parameters2/5

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

The schema has 0% description coverage, and the description only indirectly explains the 'name' parameter via the range reference context. It does not explain 'session_id' or add any additional meaning beyond what the schema provides (which is none).

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 tool's function: setting which sheet unqualified range references (like 'A1:C10') refer to. It uses specific language ('set', 'sheet', 'unqualified ranges') and distinguishes it from sibling tools like 'list_sheets' or 'rename_sheet'.

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?

The description implies usage context (when you need to reference a sheet without its name prefix) but does not explicitly state when to use this tool versus alternatives, nor does it provide any conditions or exclusions.

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

set_alignmentB

Set text alignment on a range.

horizontal: left, center, right, justify. vertical: top, center, bottom. text_rotation: degrees 0-180.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
verticalNo
wrap_textNo
horizontalNo
session_idYes
text_rotationNo

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden but fails to disclose crucial behavioral traits like whether existing alignment is overwritten, if changes are immediate, or any side effects. It also omits the wrap_text parameter entirely.

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?

The description is extremely concise (three lines), front-loads the purpose, and lists values without any redundant text. Every sentence adds value.

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

Completeness2/5

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

Given the tool has 6 parameters, no output schema, and no annotations, the description is incomplete. It covers only alignment parameters but omits wrap_text, session_id, and range descriptions, and provides no behavioral or usage context.

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?

The description adds meaning to three parameters (horizontal, vertical, text_rotation) by listing allowed values. However, it fails to explain session_id, range, or wrap_text, and has 0% schema coverage, so it only partially compensates.

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 'Set text alignment on a range' and enumerates valid values for horizontal, vertical, and text_rotation, making the tool's purpose distinct from siblings like set_borders or set_font.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., set_borders, set_font) or any prerequisites. The description does not help the agent decide between similar formatting tools.

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

set_auto_filterA

Add Excel's filter dropdowns to a data range (one filter per sheet).

range should cover the header row plus data, e.g. 'A1:D50'; omit it to use the sheet's whole used range. Pass remove=true to clear the sheet's filter. This adds the filter UI — choosing filter values happens in Excel.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeNo
sheetNo
removeNo
session_idYes

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, but the description discloses key behaviors: it adds filter UI only (not selecting values), can remove filters, range scope, and one filter per sheet. This covers the essential behavioral traits for 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.

Conciseness5/5

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

Three sentences, all front-loaded with purpose. Each sentence adds unique value: function, parameter guidance, and behavioral note. No waste.

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 simple tool with no output schema, the description fully covers purpose, parameter usage, and behavioral nuances. Sufficient for an agent to select and invoke correctly.

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 0%, so description compensates by explaining 'range' (header+data or whole used range) and 'remove' (clear filter). 'Sheet' and 'session_id' are not elaborated, but session_id is standard context. Two of four parameters get meaningful explanation beyond schema.

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 tool adds Excel's filter dropdowns to a data range, with the clarifying note 'one filter per sheet'. This is specific and distinguishes it from sibling tools like add_data_validation or format_as_table.

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?

The description provides clear usage guidance: range should cover header row plus data, omit for whole used range, and remove=true clears the filter. It also clarifies that filter selection happens in Excel, not via this tool. Lacks explicit when-not-to-use, but context is sufficient.

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

set_bordersA

Draw borders on a range.

edges: ["all"] (default) borders every cell on all sides, ["outline"] only the range perimeter, or any of ["top","bottom","left","right"] applied to every cell. style: thin, medium, thick, double, dashed, dotted, hair.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoblack
edgesNo
rangeYes
styleNothin
session_idYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description describes parameter behavior well (edges options, style types). However, it does not disclose whether existing borders are overwritten or if there are any side effects, which limits transparency.

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?

The description is two sentences: the first conveys the main purpose, and the second efficiently details parameter options. No extraneous information.

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

Completeness3/5

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

Given the tool's simplicity and lack of output schema, the description covers the primary parameters but omits behavioral details like overwriting behavior and the role of color. It is adequate but not fully comprehensive.

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 0% schema description coverage, the description adds meaningful details for edges and style (e.g., 'all', 'outline', individual directions; style options). It does not explain color or session_id, but the key parameters are well-covered.

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 'Draw borders on a range.' It specifies the verb and resource, distinguishing it from sibling formatting tools like set_fill_color and set_font.

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?

The description explains the possible values for edges and style, including defaults. While it doesn't explicitly state when to use vs. alternatives, the parameter descriptions imply usage for adding borders, and the context is clear.

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

set_cell_lockedA

Mark cells as locked or unlocked. Takes effect only while the sheet is protected (protect_sheet); all cells start locked, so unlock the cells users should edit, then protect the sheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
lockedYes
session_idYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses a key behavioral trait: that the locking/unlocking is conditional on sheet protection. It also notes that all cells start locked. This adds value beyond the input schema.

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?

Two concise sentences. The first sentence states the core purpose, and the second provides essential context. No redundant or unnecessary information. Front-loaded and efficient.

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

Completeness3/5

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

The description explains the tool's purpose and key dependency but lacks details about the return value, error conditions, and the 'session_id' parameter. For a tool with 3 parameters and no output schema, this is adequate but with clear gaps.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate. It implicitly explains 'range' and 'locked' but completely omits 'session_id', which is required. The description only adds meaning for two of three parameters, leaving a significant gap.

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 tool marks cells as locked or unlocked, which distinguishes it from sibling tools like protect_sheet. It specifies the resource (cells) and action (lock/unlock), making the 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 Guidelines4/5

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

The description provides clear context: locking only takes effect when the sheet is protected, and explains the typical workflow (unlock cells first, then protect). However, it doesn't explicitly state when not to use this tool or mention alternatives.

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

set_column_widthB

Set the width of one column ('B') or a span ('B:D'). Width is in Excel character units (default column width is about 8.4).

ParametersJSON Schema
NameRequiredDescriptionDefault
sheetNo
widthYes
columnsYes
session_idYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, description must carry burden. It mentions units and default width but does not disclose effects of zero/negative widths, error handling, or impact on existing widths. Minimal behavioral insight.

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?

Two sentences, no fluff, efficiently delivers core functionality and unit info. Could be slightly more structured but highly concise.

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

Completeness2/5

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

Despite simple operation, description lacks context on error scenarios, return values (no output schema), and effects of invalid inputs. Incomplete for a tool with 0% schema description coverage.

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 coverage is 0%. Description explains 'columns' format and 'width' unit, adding meaning. However, 'sheet' and 'session_id' are left undefined. Partial coverage of 4 parameters.

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?

Description clearly states the tool sets column width, specifies format (single column 'B' or span 'B:D'), and uses Excel character units, distinguishing it from siblings like set_row_height or auto_fit_columns.

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

Usage Guidelines2/5

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

No guidance on when to use this tool over alternatives (e.g., auto_fit_columns) or prerequisites (e.g., active sheet). Missing context for optimal usage.

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

set_fill_colorA

Set a solid background fill on every cell in a range.

color accepts hex ('#FFFF00') or names like yellow, light_blue, light_gray. Pass 'none' to remove the fill.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorYes
rangeYes
session_idYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It states the tool sets a solid background fill on every cell in the range, which is transparent but does not disclose behavior for invalid range, existing fills, or performance. Adequate but minimal.

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?

The description is concise, with two sentences and no filler. Purpose is front-loaded, and color instructions are clearly separated. Every sentence earns its place.

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?

Given the tool's simplicity and lack of output schema, the description is fairly complete for setting fill color. It explains how to specify and remove fill, though it could note that it replaces existing fill. Slightly above adequate.

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?

With schema_description_coverage at 0%, the description adds value for the 'color' parameter (hex names, 'none' to remove) but does not explain 'range' or 'session_id'. Partially compensates but not fully.

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 verb 'Set' and resource 'solid background fill on every cell in a range', making the tool's purpose immediately obvious. It distinguishes from sibling formatting tools like set_borders or set_font by specifying 'fill color' as the target.

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?

The description provides color format options and removal instructions, but does not explicitly state when to use this tool versus alternatives like apply_style_preset or clear_range. Usage guidance is implied but lacks explicit when-not or alternative comparisons.

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

set_fontB

Set font properties on every cell in a range. Only the properties you pass are changed; others are preserved.

color accepts hex ('#FF0000') or names like red, blue, white, dark_blue.

ParametersJSON Schema
NameRequiredDescriptionDefault
boldNo
sizeNo
colorNo
rangeYes
italicNo
font_nameNo
underlineNo
session_idYes
strikethroughNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description partially compensates by noting that 'only the properties you pass are changed; others are preserved.' However, it lacks details on side effects, permissions, or other behavioral traits.

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?

Two concise sentences. The first sentence front-loads the purpose and behavior; the second adds color details. No extraneous information.

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

Completeness2/5

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

Given 9 parameters (2 required), no output schema, and many sibling formatting tools, the description is incomplete. It does not explain the range format, session_id role, or other parameter specifics beyond color.

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

Parameters2/5

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

Schema description coverage is 0%. The description adds meaning only for the color parameter (accepts hex or color names). Other parameters (bold, size, italic, font_name, underline, strikethrough, range, session_id) have no extra explanation.

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 ('set font properties') and the target ('every cell in a range'), distinguishing it from sibling tools like set_fill_color or set_borders.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention scenarios or exclusions.

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

set_formulaA

Write an Excel formula to one cell, e.g. 'SUM(B2:B10)' (leading '=' optional).

Formulas are stored, not calculated — Excel evaluates them when the file is next opened. Reading the cell back returns the formula text.

ParametersJSON Schema
NameRequiredDescriptionDefault
cellYes
formulaYes
session_idYes

TDQS

A3.8/5.0
Behavior4/5

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

Given no annotations, the description discloses key behavioral traits: formulas are stored but not calculated until the file is opened, and reading the cell returns the formula text. This goes beyond a basic description, though it could mention error handling or overwriting behavior.

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?

Two sentences, no wasted words. First sentence defines action, second provides critical behavioral context. Efficiently front-loaded.

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

Completeness3/5

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

The description is adequate for basic use but lacks details on what happens if the cell already contains data, if the formula is invalid, or if the session is invalid. Sibling tools imply more context might be needed for error handling.

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

Parameters2/5

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

With 0% schema coverage, the description only adds meaning for the 'formula' parameter (example shows format, leading '=' optional). It does not clarify the 'cell' or 'session_id' parameters. This is insufficient.

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 tool writes an Excel formula to a single cell, with an example 'SUM(B2:B10)'. It distinguishes itself from related tools like write_cell (which writes values) and fill_formula (which fills a range).

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?

The description implies usage by stating what the tool does, but does not explicitly guide when to use it over alternatives. For instance, it doesn't mention that write_cell should be used for writing constant values or that fill_formula is for ranges.

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

set_number_formatB

Set the number format for a range.

Accepts an alias — general, integer, decimal, currency, percent, date, datetime, time, text, scientific — or any Excel format code like '#,##0.00 "kg"' or '€#,##0.00'.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
session_idYes
number_formatYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits such as whether the operation is permanent, if it overwrites existing formats, or any side effects. Listing valid inputs adds minimal transparency.

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?

Two sentences: first states the core action, second lists accepted inputs. No wasted words, front-loaded. Excellent conciseness.

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

Completeness2/5

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

Given the tool has 3 required parameters, no output schema, and no annotations, the description is incomplete. It fails to explain the range and session_id parameters, does not describe return behavior, and does not mention prerequisites like workbook being open.

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 0%, so the description must compensate. It adds value for 'number_format' by listing aliases and examples, but provides no explanation for 'range' or 'session_id', leaving them less documented.

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 verb ('Set') and resource ('number format for a range'), and distinguishes from siblings by listing specific aliases and custom format code examples. It is specific and unambiguous.

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?

The description implies usage for formatting numbers but does not explicitly state when to use this tool versus alternatives like setting font or alignment, or contrast with other formatting methods. No when-not or alternative tool guidance is provided.

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

set_row_heightC

Set the height of one row ('2') or a span ('2:5'), in points.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsYes
sheetNo
heightYes
session_idYes

TDQS

C2.5/5.0
Behavior1/5

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

No annotations are provided, and the description only states the basic operation without disclosing any behavioral traits such as side effects, limits, or requirements.

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 concise, one sentence with no wasted words, and front-loads the action. However, it could include more essential context without becoming verbose.

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

Completeness2/5

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

Given 4 parameters, no output schema, and no annotations, the description lacks essential details about return values, error handling, and how this tool relates to other similar tools.

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

Parameters2/5

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

The description adds meaning for the 'rows' parameter (format '2' or '2:5') and 'height' (in points), but does not explain 'session_id' or 'sheet' parameters. With 0% schema coverage, the description is insufficient.

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?

The description clearly states it sets row height, specifies single row or span notation, and unit. However, it does not explicitly distinguish it from sibling tools like set_column_width.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, no prerequisites or conditions for use are provided.

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

sort_rangeA

Sort the rows of a range by one column's values.

by_column is the sheet column letter (e.g. 'B') and must fall inside the range. Set has_header=true if the range's first row is a header to keep in place. Numbers and dates sort before text; blank cells always sort last. Only values move — formatting stays put, and formulas move as text (their relative references are NOT adjusted). For multi-key sorts, call once per key from least to most significant column (the sort is stable).

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
by_columnYes
descendingNo
has_headerNo
session_idYes

TDQS

A4.5/5.0
Behavior5/5

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

Discloses important behaviors: sorting order (numbers/dates before text, blanks last), that formatting stays put, formulas move as text without adjusting relative references, and stability for multi-key sorts. No annotations provided, so description fully covers transparency.

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?

Front-loaded with main action, then concise bullet-like details. Each sentence adds value, though slightly long for a description.

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?

Given no output schema and 5 parameters, the description covers key behaviors and parameter usage. Explains important side effects (formatting, formulas). Lacks mention of return value, but sorting typically modifies sheet in place.

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?

Adds meaning to by_column (sheet column letter) and has_header (keep header). Does not explain range format or descending, but schema coverage was 0% so description compensates well. Could be slightly more explicit on range format.

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 tool sorts rows by one column's values, specifying verb, resource, and method. It distinguishes itself from sibling tools like remove_duplicates or apply_auto_filter.

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?

Provides explicit guidance on using by_column as a column letter, has_header to keep header, and multi-key sort procedure. Does not explicitly state when not to use, but sufficient for correct invocation.

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

unmerge_cellsA

Unmerge a previously merged range (must match the merged area exactly).

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
session_idYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so the description carries full burden. It states 'unmerge' implies mutation but doesn't detail side effects like potential data loss or required permissions. The exact match constraint is a useful behavioral detail.

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?

Single sentence with no wasted words; the constraint 'must match the merged area exactly' is essential and efficiently included.

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

Completeness3/5

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

With 2 parameters, no output schema, and no annotations, the description covers the core action and constraint but lacks additional context like return values or prerequisites. Adequate for a simple tool but could be more thorough.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds no parameter-level details for 'session_id' or 'range' beyond implying that range must be a merged area. This partially compensates for 'range' but not for 'session_id'.

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 uses a specific verb 'unmerge' with the resource 'merged range', clearly distinguishing it from the sibling tool 'merge_cells'. The additional constraint 'must match the merged area exactly' adds precision.

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?

The description implies usage when a previously merged range needs to be undone, and specifies the exact match condition. While it doesn't explicitly list alternatives, the context of sibling tools makes the inverse relationship clear.

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

unprotect_sheetB

Remove sheet protection (no password needed here — this edits the file directly, unlike Excel's UI).

ParametersJSON Schema
NameRequiredDescriptionDefault
sheetNo
session_idYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description must cover behavior. It reveals that no password is needed and the edit is direct, which is helpful. However, it does not address potential side effects, permissions, or the case when the sheet is already unprotected.

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 short and front-loaded with the action. It is concise but could be restructured to separate the action from the clarifying remark. Overall, it is efficient without extra wordiness.

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

Completeness3/5

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

Given simple tool with 2 params and no output schema, the description adds useful context about direct editing and no password. However, it lacks details about parameter behavior and outcomes, making it somewhat incomplete.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain the parameters. The 'sheet' parameter (optional, default null) and 'session_id' are not mentioned, leaving the agent without guidance on their meaning or usage.

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 'Remove sheet protection' with the resource 'sheet'. It also distinguishes from Excel's UI by noting 'no password needed here — this edits the file directly, unlike Excel's UI', which differentiates it from sibling tools like protect_sheet.

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?

The description implies usage for removing sheet protection but does not explicitly state when to use or when not to use. No alternatives or exclusions are provided, relying solely on context from the tool name and sibling list.

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

write_cellA

Write a value to one cell. Strings starting with '=' are stored as formulas.

Pass null to clear the cell. Dates should be ISO strings; they are stored as text unless the cell already has a date number format.

ParametersJSON Schema
NameRequiredDescriptionDefault
cellYes
valueYes
session_idYes

TDQS

A4.2/5.0
Behavior4/5

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

Without annotations, the description discloses key behaviors: formula detection, null clearing, and date handling. It does not mention overwrite behavior or error conditions, but covers main edge cases well.

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?

Three concise sentences, each adding unique value. Front-loaded with the main action, no fluff.

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?

Covers main behaviors and edge cases for a write operation. Missing explicit mention of overwriting and return value, but sufficient given simple nature and no output schema.

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 0%. The description adds meaning for the 'value' parameter (formulas, null, dates) but does not explain 'cell' or 'session_id'. It partially compensates for the lack of schema descriptions.

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 tool writes a value to one cell, distinguishes from write_range (writes to a range) and clear_range (clears), and specifies special behaviors for formulas and dates, providing a specific verb and resource.

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?

The description provides clear usage context: it mentions how to clear a cell (pass null), how dates are stored, and that strings starting with '=' are formulas. However, it does not explicitly say when not to use it versus alternatives like write_range.

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

write_rangeA

Write a 2D array of values starting at start_cell (top-left corner).

values is a list of rows, e.g. [["Name","Age"],["Ana",31]]. Strings starting with '=' are stored as formulas. null leaves a gap (clears that cell).

ParametersJSON Schema
NameRequiredDescriptionDefault
valuesYes
session_idYes
start_cellYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must cover behavioral traits. It states that values are stored as formulas if they start with '=' and that null clears a cell, but it does not disclose whether the write overwrites existing data, what happens if the range extends beyond the sheet, or any error conditions. More context is needed.

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 concise (3 sentences) and front-loaded with the main action. It efficiently explains key parameter behavior. Could be slightly improved by mentioning return value or side effects.

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

Completeness3/5

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

Given no annotations or output schema, the description is reasonably complete for a basic write operation but lacks details on return value, error handling, and behavior when overwriting existing data or exceeding sheet bounds.

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 0% schema coverage, the description adds significant meaning to the 'values' parameter by explaining it is a list of rows with examples and special handling of formulas and nulls. However, 'session_id' and 'start_cell' are not elaborated beyond their names, which are self-explanatory.

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 'Write a 2D array of values starting at start_cell', specifying the verb 'Write', the resource (range of cells), and the data format (2D array). This distinguishes it from sibling tools like write_cell (single cell) or append_rows (appending).

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?

The description implies usage for writing a rectangular block of data, but it does not explicitly state when to use this tool versus alternatives like write_cell, append_rows, or replace_in_range. No alternatives or exclusions are mentioned.

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

TDQS

B3.4/5.0
Disambiguation5/5

Each tool targets a specific Excel operation or resource (e.g., charts, comments, ranges, sheets) with no apparent overlap. The descriptions clearly differentiate similar actions like reading cells at different granularities.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (add_chart, delete_rows, set_font). Minor deviations like 'define_named_range' and 'format_as_table' do not break the overall predictability.

Tool Count2/5

74 tools is far beyond the typical 3-15 range for a well-scoped server. While Excel is complex, this volume risks overwhelming users and agents, and many tools could be consolidated.

Completeness4/5

The tool set covers a wide range of Excel operations including CRUD, formatting, charts, data validation, macros, and exports. Minor gaps like pivot tables are understandable given the scope.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ShubhamDbug/Excel-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server