Skip to main content
Glama

Excel MCP Server

A Python-based Model Context Protocol (MCP) server for Excel and CSV automation. It enables LLMs to work with .xlsx, .xlsm, .xls, and .csv files through 69 structured tools, 2 JSON resources, and 20 prompts spanning workbook operations, formatting, charts, ETL, analysis, financial/statistical workflows, and HTTP file transfer.

Features

NOTE: Custom actions are not supported as first-class tools. Use execute_custom_code as the sanctioned, sandboxed path for custom data transformations. This uses AST validation and blocks dangerous operations.

Workbook & Sheet Management

  • Create workbooks; inspect workbook metadata and per-sheet summaries.

  • Rename, delete, copy, move, hide/unhide, and recolour sheet tabs.

  • Write data to multiple sheets in a single call.

Related MCP server: Excel MCP Server

Cell & Range Operations

  • Read and write individual cells, contiguous ranges, and large sheets in chunks.

  • Include formulas and cell metadata when reading ranges.

  • Copy ranges, clear range values, transpose data, and search/replace with optional regex support.

Row & Column Operations

  • Insert and delete rows and columns by index.

Formatting & Styling

  • Apply fonts, colours, alignment, borders, and number formats to cells.

  • Use built-in number format presets and named Excel styles.

  • Merge and unmerge cells, auto-fit columns, clear formatting, and copy cell formatting.

Conditional Formatting

  • Apply colour scales, data bars, icon sets, and targeted highlight rules.

  • Add formula, top/bottom, and above/below-average rules; list and remove rules.

Formulas

  • Set single or batch formulas and drag-fill them across ranges with relative-reference translation.

  • Insert AutoSum formulas and audit formula values, errors, precedents, dependents, and sheet formulas.

Tables

  • Create, list, resize, and read native Excel tables.

  • Toggle totals rows and convert tables back to plain ranges.

Data Validation

  • Add dropdown, numeric, date, and formula-based validation rules.

  • Remove validation rules.

Protection

  • Protect and unprotect sheets and workbooks.

  • Lock individual cells.

Charts

  • Create, list, delete, and update charts across 10 chart types: column, bar, line, pie, scatter, area, radar, doughnut, bubble, and stock.

  • Add series and configure axes, trendlines, combo charts, data labels, legends, and category ranges.

Data Analysis

  • Filter and sort data by multiple conditions or columns.

  • Compute column statistics, grouped aggregates, value counts, and correlation matrices.

  • Find duplicates, profile datasets, insert subtotals, and perform VLOOKUP-style enrichment.

  • Run OLS regression and exponential smoothing with forecasting support.

CSV Operations

  • Preview CSV content.

  • Convert between CSV and XLSX formats.

Pivot & ETL

  • Create pivot tables and refresh them from stored definitions.

  • Unpivot wide data, merge datasets with SQL-style joins, and deduplicate rows.

  • Add computed columns with safe expressions, cumulative sums, or rolling calculations.

Financial Calculations

  • Run IRR, FV, PV, NPER, RATE, and depreciation time-value calculations.

  • Build DCF models, loan amortisation schedules, budget variance reports, financial ratio analysis, and break-even analysis.

  • Perform goal seek, constrained solver optimisation, sensitivity tables, and scenario analysis.

Data Cleaning

  • Run a configurable cleaning pipeline to trim whitespace, remove empty rows/columns, normalise text, fix number formats, deduplicate, and fill missing values.

  • Use preview mode before saving changes.

  • Split columns and parse/normalise date columns.

Comments

  • Add, read, delete, and list comments.

  • Add internal or external hyperlinks.

  • Read, delete, and list hyperlinks.

Images

  • Insert images into worksheets.

Named Ranges

  • Create, list, update, and delete named ranges.

Worksheet Operations

  • Freeze and unfreeze panes.

  • Set/remove auto-filters, and toggle gridlines.

  • Group/ungroup rows and columns; set row heights and column widths.

  • Configure print area, page setup, print titles, and manual page breaks.

  • Copy ranges across sheets, copy sheets across workbooks, merge workbooks, and stack sheets into a consolidated sheet.

Document Properties

  • Read workbook metadata and set calculation mode.

Cross-file Operations

  • Aggregate, filter, validate, and compare data across multiple files.

File Transfer

  • Upload files (base64, HTTP URL, or local path) for server-side processing.

  • Download processed files as base64.

  • Release session files to free server disk space.

  • Supports single and multi-file upload workflows.

69 Tools | 2 Resources | 20 Prompts

Prerequisites

Below are the requirements for running this MCP:

  • Python 3.12+

  • uv for dependency management and execution

  • Optional: Node.js (for running the MCP Inspector via npx)

Setup & Run

Installing all project dependencies:

uv sync

Running in STDIO Mode (default)

uv run src/mcp_server/main.py   # or: uv run excel-mcp

The default transport is STDIO, preserving compatibility with local CLI-based clients.

GitHub Copilot (VS Code) — STDIO

In .vscode/mcp.json:

{
  "servers": {
    "excel-mcp": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "excel-mcp"
      ],
      "env": {
        "PYTHONPATH": "src"
      }
    }
  }
}

Running in HTTP Mode

uv run excel-mcp --transport http --host 127.0.0.1 --port 8765

With defaults (host 127.0.0.1, port 8000):

uv run excel-mcp --transport http

GitHub Copilot (VS Code) — HTTP

In .vscode/mcp.json:

{
  "servers": {
    "excel-mcp-http": {
      "url": "http://127.0.0.1:8765/mcp"
    }
  }
}

Other MCP Clients

In the .vscode/mcp.json add:

"excel-mcp": {
  "command": "uv",
  "args": [
    "run",
    "--with",
    "mcp[cli]",
    "excel-mcp"
  ],
  "env": {
    "PYTHONPATH": "src"
  }
}
  • Anthropic Claude

Expose the FastMCP server via the Streamable HTTP transport and register it with Claude/Claude Code for direct tool use. For development you can also use the MCP Inspector or run a small HTTP adapter that forwards Claude Messages to the MCP server.

Example (from research spec):

claude mcp add --transport http my-excel-mcp http://localhost:8000/mcp
  • Anthropic Claude Code

Claude Code supports stdio, HTTP/SSE, and plugin-bundled MCP servers. For local development add a project-scoped .mcp.json or register a stdio command; for sharing use a plugin that bundles a .mcp.json entry.

Example (project .mcp.json from research spec):

{
  "mcpServers": {
    "excel-mcp": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "src/mcp_server/main.py"],
      "env": { "PYTHONPATH": "src" }
    }
  }
}
  • OpenAI / ChatGPT

OpenAI supports an mcp tool via the Responses API (remote MCP/SSE or streamable HTTP), ChatGPT plugins (OpenAPI + ai-plugin.json), or a local function-calling wrapper that mediates calls to the local MCP server. Protect public endpoints with TLS/auth or prefer the local wrapper for private data.

Example (Responses API mcp tool from research spec):

from openai import OpenAI
client = OpenAI()

resp = client.responses.create(
    model="gpt-5",
    tools=[{
        "type": "mcp",
        "server_label": "excel-mcp",
        "server_description": "Excel MCP server",
        "server_url": "https://your-public-host.example.com/sse",
        "authorization": "Bearer YOUR_MCP_TOKEN",
        "require_approval": "always",
    }],
    input="Read first 20 rows from /tmp/demo.xlsx"
)
print(resp.output_text)

Try it with the MCP Inspector

Inspect tools, resources, and prompts without an LLM in the loop:

npx @modelcontextprotocol/inspector uv run --directory . src/mcp_server/main.py

Verifications

Run tests with:

uv run pytest -v

Run linting with:

uv run ruff check src/ tests/

Run MyPy type checks with:

uv run mypy src/mcp_server

Prompts

The server ships 20 MCP prompts (src/mcp_server/prompts.py) for common workflows:

Prompt

Description

excel-quickstart

Create a new Excel workbook, populate it with formatted data, and auto-fit columns

excel-data-analysis

Profile, filter, aggregate, sort, and find duplicates in an Excel dataset

excel-data-cleaning

Full data cleaning pipeline: profile, clean, validate, deduplicate, and export

excel-chart-builder

Create, style, and annotate charts with trendlines, axis labels, data labels, and legends

excel-report-builder

Assemble a multi-sheet formatted report with data, charts, statistics, and print setup

excel-financial-model

Build a financial model workbook with loan amortisation, DCF analysis, and financial ratios

excel-pivot-etl

Create pivot tables and run ETL transforms: merge, unpivot, add computed columns

excel-multi-file

Aggregate, filter, compare, and validate schema consistency across multiple Excel files

excel-statistical-analysis

Run OLS regression and exponential smoothing with forecasting on Excel data

excel-formula-builder

Write, fill, auto-sum, and audit Excel formulas across a sheet

excel-data-governance

Apply data validation, protection, named ranges, and scenario management to a workbook

excel-csv-workflow

Preview a CSV, convert to Excel, clean, analyse, and export results

excel-readonly-audit

Inspect workbook structure, formulas, tables, and data quality without mutating the file

excel-formula-diagnosis

Diagnose formula errors, trace precedents and dependents, and apply the smallest safe fix

excel-workbook-maintenance

Perform conservative workbook housekeeping: sheets, layout, print setup, and sizing

excel-table-manager

Create, inspect, resize, total, and convert native Excel tables

excel-what-if-analysis

Run goal seek, solver, sensitivity, and scenario analysis

excel-multi-file-reconciliation

Validate, compare, aggregate, and filter multiple files with schema checks

excel-search-repair

Find and repair text or formula content with a read-before-write workflow

excel-safe-transform

Apply a sandboxed custom transform only when built-in tools are not enough

Tools

This section merges the previous "Tool Overview" and the full grouped tool list. Each group includes a short description of its purpose and the individual tools provided by the server.

  • Workbook management (5) — Manage workbooks and sheets (create, inspect, rename, delete, copy, move)

    • get_workbook_metadata — Return workbook metadata (sheets, active sheet, named ranges).

    • create_workbook — Create a new workbook file with optional initial sheets.

    • get_sheet_summary — Summarise a sheet (header detection, used range, dimensions).

    • write_multi_sheet — Create/overwrite a workbook from multiple sheet definitions.

    • sheet_management — Rename, delete, copy, hide/unhide, tab color, and move sheets.

  • Cell & range operations (6) — Read and write cells/ranges and perform range transforms

    • read_cells — Read a single cell, a rectangular range, or stream large sheets in chunks.

    • write_cells — Write a single cell, a 2D range, generate series, merge/unmerge ranges.

    • clear_range — Clear values from a rectangular range.

    • copy_range — Copy a range between sheets (values and/or styles, optional paste-values-only).

    • find_replace — Find and replace text (optionally in formulas) across a sheet.

    • transpose_range — Transpose rows↔columns and write the result at a target cell.

  • Formatting & styling (5) — Apply and manage cell formatting at scale

    • format_cells — Apply fonts, fills, alignment, borders and number formats to a range.

    • auto_fit_columns — Auto-fit column widths to their contents.

    • copy_cell_format — Copy formatting from a source cell to every cell in a target range.

    • clear_cell_format — Remove formatting from a range without changing values.

    • apply_named_style — Apply built-in Excel named styles (e.g. Heading, Good, Bad).

  • Formulas (2) — Write and audit formulas

    • formula_write — Set single formulas, batch-set, drag-fill, or insert AutoSum formulas.

    • formula_audit — Inspect formula values, list errors, find precedents/dependents, or list formulas.

  • Charts (1) — Create and manage chart lifecycle and series

    • chart — Create, list, delete, update, add series, and configure axes, trendlines, combo charts, legends, and data labels.

  • Worksheet operations (4) — UI, structure, print and cross-workbook transfers

    • worksheet_view — Freeze panes, set/remove auto-filter, toggle gridlines.

    • worksheet_structure — Insert/delete rows/cols, group/ungroup, set sizes.

    • worksheet_print — Set print area, page setup, print titles, and page breaks.

    • worksheet_transfer — Copy ranges across sheets within a workbook, copy sheets across workbooks, merge workbooks, and stack sheets.

  • Data analysis (9) — Filtering, aggregation, profiling and helper utilities

    • sort_data — Sort worksheet rows by one or more columns.

    • column_statistics — Compute descriptive statistics for a numeric column.

    • aggregate_data — Group rows and aggregate values using common operations.

    • find_duplicates — Identify duplicate rows based on a set of columns.

    • vlookup_helper — Cross-file lookup helper (exact or fuzzy matching) to enrich data.

    • filter_data_advanced — Filter rows using multiple conditions combined with AND/OR logic.

    • insert_subtotals — Insert SUBTOTAL formula rows after groups in a sorted sheet.

    • profile_data — Produce a per-column data profile (types, nulls, unique counts, samples).

    • value_counts — Frequency counts (optionally normalized, top-n) for a column.

  • Pivot & ETL (6) — Pivot tables and ETL-style transforms

    • create_pivot_table — Build a pivot table and optionally write it to a sheet/file.

    • refresh_pivot_table — Re-run a stored pivot definition to refresh output.

    • unpivot_data — Melt wide-form data into long-form (id_vars/value_vars).

    • merge_datasets — Join two sheets using SQL-style join semantics.

    • add_computed_column — Add a computed column via safe expressions or cumsum/rolling operations.

    • deduplicate_data — Remove duplicate rows (with keep strategy) from a sheet.

  • Financial (8) — Time-value calculations, DCF, goal-seek and financial modelling tools

    • goal_seek — Solve for a variable cell value that makes an expression equal a target.

    • loan_amortization — Generate an amortization schedule for a loan.

    • dcf_analysis — Discounted cash flow valuation with terminal value calculation.

    • budget_variance_analysis — Compare budget vs actual by category and report variances.

    • financial_ratio_analysis — Compute common financial ratios and compare to benchmarks.

    • break_even_analysis — Compute break-even units and revenue from cost structure.

    • create_sensitivity_table — Build 1- or 2-variable sensitivity tables in the workbook.

    • time_value_calc — FV/PV/NPER/RATE/depreciation/IRR operations and helpers.

  • Cleaning & CSV (4) — Data cleaning primitives and CSV helpers

    • split_column — Split a delimited text column into multiple columns.

    • data_cleaner — Run a configurable cleaning pipeline (trim, dedupe, fill, normalize).

    • parse_date_column — Parse varied date formats and normalise output formatting.

    • csv_ops — Preview CSVs and convert between CSV and XLSX.

  • Statistical & solver (4) — Regression, smoothing and optimisation

    • run_regression — Run OLS regression and return coefficients and diagnostics.

    • run_exponential_smoothing — Apply simple/Holt/Holt-Winters smoothing and optional forecasting.

    • run_solver — Constrained optimisation using scipy for minimisation/maximisation objectives.

    • correlation_matrix — Compute Pearson correlation matrix for numeric columns.

  • Governance (4) — Protection, validation, document properties and conditional formats

    • protection — Protect/unprotect sheets or workbooks and lock cell ranges.

    • data_validation — Add/remove dropdown, numeric, date, and formula-based validation rules.

    • doc_properties — Read document properties or set calculation mode.

    • conditional_format — Apply, list, or remove conditional formatting rules.

  • Metadata & tables (5) — Comments, hyperlinks, scenarios, named ranges and tables

    • comment — Add, read, delete or list comments on cells.

    • hyperlink — Add, read, delete or list hyperlinks attached to cells.

    • scenario — Save, list and apply what-if scenarios persisted in a hidden sheet.

    • named_range — List, create, delete or update named ranges.

    • table — Create, list, resize, toggle totals, read, or convert Excel tables.

  • Multi-file operations (1) — Bulk and cross-workbook operations

    • multi_file — Aggregate, filter, validate, or compare across multiple workbooks.

  • File transfer (3) — Upload, download, and release session-managed files

    • upload_file — Upload a file via base64 or HTTP URL for server-side processing (supports single and multi-file uploads).

    • download_file — Download a server-side file as base64 after processing.

    • release_file — Release a session file and delete it from server disk.

  • Custom code & images (2) — Sandboxed code execution and images

    • insert_image — Insert an image into a worksheet anchored at a target cell.

    • execute_custom_code — Run sandboxed Python/pandas code against a workbook and return results.

Architecture

  • Modular design: src/mcp_server/ is split into tools/ (25 pure domain modules), routes/ (15 registration/dispatch modules), models/ (Pydantic response schemas), and utils/ (shared workbook, logging, and expression-safety helpers).

  • Entry point: src/mcp_server/main.py creates the FastMCP server, registers 2 JSON resources directly (excel://workbook/{file_path}/sheets, excel://workbook/{file_path}/sheet/{sheet_name}/preview), calls register_all_routes(mcp) to register the tool surface, and calls _register_prompts(mcp) from src/mcp_server/prompts.py to register 20 prompts. Supports both STDIO (default) and HTTP transport selection via --transport {stdio,http} CLI flags.

  • Data flow: MCP client → FastMCP (stdio/JSON-RPC or HTTP) → main.pyroutes/*.py (registration/dispatch) → tools/*.py (domain logic) → openpyxl / pandas / scipy and related libraries → Pydantic models → JSON-RPC response. HTTP mode uses temp-file resolution (utils/file_resolver.py) to convert remote inputs to local paths before reaching the tool layer.

  • Utilities: src/mcp_server/utils/excel_helpers.py centralises safe workbook access and workbook path validation; logger.py keeps logs on stderr; expression_validator.py provides shared AST validation for user-supplied expressions.

  • Safety: Workbook paths are checked against an extension whitelist and optional EXCEL_MCP_ALLOWED_DIRS sandbox; AST validation is reused by goal_seek, create_sensitivity_table, and computed-column expressions; execute_custom_code uses a separate sandboxed validation path.

  • Workbook lifecycle: Openpyxl-backed workbook tools generally use load_workbook_safe() / save_workbook_safe() with explicit close handling, while pandas/CSV flows and hidden-sheet state (_mcp_pivots, _mcp_scenarios) follow separate storage paths.

Extending

  • Add new tool functions under src/mcp_server/tools/ (pure functions, no decorators).

  • Expose that logic through an existing src/mcp_server/routes/ module, or add a new route module with a register(mcp) function and include it in register_all_routes() in src/mcp_server/routes/__init__.py.

  • Add tests in tests/ using pytest and the tmp_path fixture where appropriate.

  • Run uv run ruff check src/ tests/ to lint and uv run pytest -v to test.

References

Available Tools

69 tools
add_computed_columnA

Add a computed column either via pandas-eval formula or as a cumsum/rolling operation.

Args: file_path: Workbook path. sheet_name: Worksheet name. new_column_name: Column name to add. expression: Expression string for pandas.eval when column_type=='formula'. has_header: Whether the sheet has a header row. column_type: One of 'formula', 'cumsum', 'rolling'. source_col: Required for 'cumsum' and 'rolling'. window: Integer window for rolling operations. rolling_func: Aggregation for rolling (default 'mean').

Returns: str: Message indicating success and destination column.

Notes: - Accepts user-provided expressions — underlying code performs AST checks; docstring should link to safety doc.

ParametersJSON Schema
NameRequiredDescriptionDefault
windowNo
file_pathYes
expressionYes
has_headerNo
sheet_nameYes
source_colNo
column_typeNoformula
rolling_funcNomean
new_column_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It DOES disclose that user-provided expressions are accepted and that AST checks are performed, which is valuable safety context. However, it does not state whether the operation modifies the file in place, whether it can overwrite existing columns, or what happens on invalid expressions. The final note 'docstring should link to safety doc' is a meta instruction rather than user-facing behavior, adding confusion without improving 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 structured clearly with a one-sentence summary, Args list, Returns, and Notes. It is appropriately sized for 9 parameters. However, the last note 'docstring should link to safety doc' is an internal development instruction that does not belong in a user-facing tool description, adding unnecessary noise. Otherwise, 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 with 9 parameters and two distinct operation modes, the description is quite thorough: it covers all parameters, the return type, and a safety check. It lacks explicit when-to-use guidance relative to siblings and does not mention side effects like file persistence, but given the complexity and the existence of an output schema describing a string message, the description is largely complete. The confusing meta note slightly detracts from completeness.

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 Args list describes all 9 parameters, adding meaning well beyond the schema (which has 0% description coverage). It explains each parameter's role, gives conditional requirements (e.g., 'source_col: Required for cumsum and rolling'), notes defaults (rolling_func) and type-specific usage (expression for pandas.eval). This fully compensates for the schema's lack of 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 opens with a specific verb and resource: 'Add a computed column either via pandas-eval formula or as a cumsum/rolling operation.' It clearly distinguishes from sibling tools like formula_write by focusing on adding a new column rather than writing formulas to existing cells. The two operation modes provide additional precision.

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 explains the two operation modes (formula, cumsum, rolling) and identifies which parameters are required for each, giving implicit context for when to use certain arguments. However, it does not explicitly state when to prefer this tool over siblings such as formula_write or aggregate_data, nor does it mention exclusions or prerequisites like file locks or existing column constraints.

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

aggregate_dataB
Read-only

Group rows by column(s) and aggregate values using the specified operation.

Args: file_path: Workbook path. sheet_name: Worksheet name. group_by: Column or list of columns to group by. value_column: Column to aggregate. operation: Aggregation operation (e.g. 'sum', 'mean', 'count'). has_header: Whether the sheet has a header row. aggfunc: Optional pandas-style aggfunc or mapping.

Returns: dict: Aggregated results (may be written to sheet if underlying tool provides an option).

ParametersJSON Schema
NameRequiredDescriptionDefault
aggfuncNo
group_byYes
file_pathYes
operationNosum
has_headerNo
sheet_nameYes
value_columnYes

TDQS

B3.4/5.0
Behavior1/5

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

The annotation readOnlyHint=true indicates the tool is read-only, but the description states 'may be written to sheet if underlying tool provides an option,' which suggests a possible write side effect. This contradicts the annotation, so it must be scored 1.

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 purpose is stated in one sentence, followed by a well-structured parameter list and return description. No unnecessary words or repetition; every sentence adds useful 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?

All parameters are covered and the return type is mentioned, but the return description is vague ('Aggregated results') and there is no detail on error handling, edge cases, or detailed output format. The ambiguous write statement also reduces completeness. For a tool with no output schema, more specificity is needed.

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%, but the description provides definitions for all seven parameters in the Args section, including examples for operation and a note on aggfunc. This fully 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.

Purpose4/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: 'Group rows by column(s) and aggregate values using the specified operation.' This provides a specific verb and resource. However, it does not explicitly differentiate from sibling tools like create_pivot_table or column_statistics, which also aggregate data.

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 core statement implies the use case for grouping rows and aggregating, but there is no explicit guidance on when to prefer this tool over alternatives, nor any exclusions or prerequisites. The context is clear but not comprehensive.

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

apply_named_styleA

Apply a named built-in Excel style to a range (e.g. 'Good', 'Heading 1').

Args: file_path: Workbook path. sheet_name: Worksheet name. range_str: Target range. style_name: Name of the named style to apply.

Returns: dict: Result metadata.

Notes: - Mutates formatting and depends on openpyxl named style availability.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
range_strYes
sheet_nameYes
style_nameYes

TDQS

A3.5/5.0
Behavior3/5

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

The Notes mention that the tool 'mutates formatting' and depends on 'openpyxl named style availability,' which adds safety-relevant context beyond the input schema. However, with no annotations, key details are missing: what happens if the style is unavailable, whether existing formatting gets overwritten, and error 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?

The description is well-structured with dedicated Args, Returns, and Notes sections. It is concise, front-loaded with the purpose, and contains no redundant 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?

For a mutation tool with no annotations and no output schema, the description provides the basic purpose, parameters, return type, and one behavioral note. However, it omits prerequisites, error scenarios, detailed return contents, and usage context, leaving gaps for an agent to fully understand the tool.

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 lists all four parameters with short definitions, but schema coverage is 0%, so the description must compensate. It provides basic meaning (e.g., 'Target range', 'Name of the named style to apply') but lacks expected formats or constraints (e.g., range string notation like 'A1:B2', file path requirements).

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 specific action: 'Apply a named built-in Excel style to a range' with concrete examples ('Good', 'Heading 1'). This distinguishes it from sibling formatting tools like format_cells or conditional_format, which handle different formatting tasks.

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 is given on when to use this tool versus alternatives like format_cells, copy_cell_format, or conditional_format. The only implication is from the tool's purpose, but there are no stated exclusions or preferred scenarios.

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

auto_fit_columnsA

Auto-fit column widths to their contents for a worksheet.

Args: file_path: Workbook path. sheet_name: Worksheet name.

Returns: str: Success message.

Notes: - Mutates column widths and may be expensive on large sheets.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
sheet_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description discloses key behavioral traits: 'Mutates column widths' and 'may be expensive on large sheets.' This informs the agent of side effects and operational characteristics, exceeding typical descriptions.

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 and front-loaded with the purpose, followed by clearly labeled Args, Returns, and Notes sections. Every sentence serves a purpose.

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 two-parameter tool, the description covers the purpose, parameter meanings, side effects, performance, and return value. It is sufficiently complete for an 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 provides no descriptions (0% coverage), but the description explains both parameters: 'file_path: Workbook path' and 'sheet_name: Worksheet name.' This adds meaningful semantics that the schema lacks.

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: 'Auto-fit column widths to their contents for a worksheet.' This uses a specific verb and resource, and is distinct from sibling tools.

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 explicit guidance on when to use this tool versus alternatives. The note about expense on large sheets is a caution but does not frame usage context or exclusions.

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

break_even_analysisB

Calculate break-even units and revenue given fixed and variable costs.

Args: fixed_costs: Total fixed costs. price_per_unit: Selling price per unit. variable_cost_per_unit: Variable cost per unit.

Returns: dict: break_even_units and break_even_revenue.

ParametersJSON Schema
NameRequiredDescriptionDefault
fixed_costsYes
price_per_unitYes
variable_cost_per_unitYes

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 carries the full burden. It describes the return dict and inputs, but it does not mention potential errors (e.g., division by zero if price <= variable cost) or explicitly state that this is a pure calculation with no side effects. The behavior is implied by 'Calculate' but not fully 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?

The description is concise and well-structured: a single-purpose opening sentence followed by standard Args/Returns documentation. No wasted words, and the format is easy to parse.

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 calculation tool, the description covers the essentials: inputs, output, and core formula. The absence of an output schema is compensated by the explicit return dict description. However, it does not mention edge cases like the requirement that price exceed variable cost, leaving a minor gap in 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?

The description adds one-line definitions for each parameter ('Total fixed costs', 'Selling price per unit', 'Variable cost per unit'), which marginally supplements the schema titles. Since the schema description coverage is 0%, this is helpful but not extensive. The return dict explanation is useful, though it pertains to output, not parameter semantics.

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's function: 'Calculate break-even units and revenue given fixed and variable costs.' It uses a specific verb and resource, making the purpose unambiguous. However, it does not explicitly distinguish itself from sibling financial tools like dcf_analysis or financial_ratio_analysis, so it falls short of a 5.

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 versus alternatives or any prerequisites. It simply states what it does without mentioning any exclusions or comparison to other tools. No conditions or context for use are given.

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

budget_variance_analysisA

Compare budget vs actual values in a sheet and return variances per category.

Args: file_path: Workbook path. sheet_name: Worksheet name. category_column, budget_column, actual_column: Column identifiers for the analysis. header_row: 1-based header row index. output_file: Optional path to write results.

Returns: dict: Per-category variance and status.

Notes: - Mutates workbook only if output_file provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
header_rowNo
sheet_nameNoSheet1
output_fileNo
actual_columnNoC
budget_columnNoB
category_columnNoA

TDQS

A4.4/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 the full burden. It discloses the key behavioral trait: 'Mutates workbook only if output_file provided.' It also describes the return value shape. This is strong transparency, though it could have also mentioned error conditions or performance implications, but the mutation note is the most critical 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?

The description is appropriately sized, structured into Args, Returns, and Notes sections. Every sentence adds value: the purpose, parameter descriptions, return type, and side-effect note. There is no fluff, and the formatting makes it easy to scan.

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?

The description is complete for a tool with 7 parameters and no output schema. It covers the operation purpose, all parameter semantics, the return value, and the mutating side effect. No critical information is missing for an AI agent to select and invoke it correctly.

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 coverage is 0% (no descriptions in the schema). The description compensates by listing each parameter with brief meaning: file_path as 'Workbook path', sheet_name as 'Worksheet name', column identifiers as 'Column identifiers for the analysis', header_row as '1-based header row index', and output_file as 'Optional path to write results.' This fully clarifies the purpose of each parameter beyond types and defaults.

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 opens with a specific verb+resource: 'Compare budget vs actual values in a sheet and return variances per category.' This clearly states the tool's function and differentiates it from sibling financial tools like financial_ratio_analysis or dcf_analysis, which address different computations.

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 ('Compare budget vs actual values in a sheet') but does not explicitly state when to use this tool over alternatives or provide exclusions. It lacks guidance like 'Use when you need variance analysis' or 'Do not use for simple cell reads.' The safety note about mutating the workbook is useful but not usage guidance.

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

chartB

Perform chart lifecycle and series/configuration operations on a worksheet.

Args: action: One of "create", "delete", "list", "add_series", "set_axes", "trendline", "combo", "data_labels", "legend", "update". - "create": create a chart from data_range at target_cell; optional categories_range overrides x-axis category labels. - "delete": remove a chart (optionally chart_index). Destructive. - "list": return list of charts (read-only). - "add_series": add a series to an existing chart (requires chart_index, data_range). - "set_axes": configure axis titles/ranges/number format; optional categories_range sets x-axis category labels. - "trendline": add a trendline to a series. - "combo": create a combo chart; requires bar_columns and line_columns. - "data_labels": configure data labels by chart_title. - "legend": configure legend by chart_title. - "update": update basic title/size/anchor of an existing chart. file_path: Workbook path. sheet_name: Worksheet name containing chart or data. chart_index: Optional index of target chart (default 0 or required for some actions). data_range: Range string used for chart creation or series. chart_type: Chart kind (e.g. "column", "line"). target_cell: Anchor cell for new chart. ... (other visual/series parameters)

Returns: str or list[ChartInfo]: Created chart id/string or list of ChartInfo for "list".

Raises: ValueError: If required parameters are missing for the selected action.

Notes: - Dispatch mapping: see function source; common destructive actions include "delete". - Chart creation mutates the workbook; consider documenting expected anchor and sizing units.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
styleNo
titleNo
widthNo
x_maxNo
x_minNo
y_maxNo
y_minNo
actionYes
heightNo
x_titleNo
y_titleNo
file_pathYes
chart_typeNocolumn
data_rangeNo
sheet_nameYes
show_valueNo
anchor_cellNoF1
bar_columnsNo
chart_indexNo
chart_titleNo
log_scale_yNo
show_legendNo
target_cellNoE1
line_columnsNo
series_indexNo
x_axis_titleNo
y_axis_titleNo
show_categoryNo
x_axis_columnNo
label_positionNo
trendline_typeNolinear
legend_positionNo
periods_forwardNo
show_percentageNo
title_from_dataNo
y_number_formatNo
categories_rangeNo
periods_backwardNo
show_series_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It notes destructive actions ('delete' is labeled 'Destructive') and mutation ('Chart creation mutates the workbook'), and marks 'list' as read-only. However, it lacks detail on side effects beyond these, such as permission requirements or what happens to existing charts during updates.

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 organized into clear sections (Args, Returns, Raises, Notes) and uses bullet points for actions, which aids readability. However, it includes unhelpful meta-commentary like 'consider documenting expected anchor and sizing units' and 'Dispatch mapping: see function source', which adds noise without 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?

For a complex tool with 10 actions and 40 parameters, the description is incomplete. It covers each action's purpose but not the full parameter set, and the Notes section is weak. The output schema is mentioned but not detailed, and many parameter interactions and requirements are omitted, making it insufficient for robust agent 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 schema has 40 parameters with 0% description coverage, so the description must compensate. It explains the 'action' parameter in depth and briefly mentions file_path, sheet_name, chart_index, data_range, chart_type, and target_cell, but the vast majority of parameters (e.g., width, height, show_value, label_position) are left to the '...' placeholder, leaving a significant semantic gap.

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 handles chart lifecycle and series/configuration operations, with a detailed list of actions ('create', 'delete', 'list', etc.) that specify exact functions. It distinguishes itself from sibling tools by being the only chart-focused tool, though the umbrella phrase is somewhat broad.

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 listing actions and their requirements (e.g., 'add_series' requires chart_index and data_range), but it does not explicitly state when to prefer this tool over alternatives. Since no sibling tools are chart-related, usage is implicitly clear, yet no explicit exclusions or alternative guidance are provided.

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

clear_cell_formatA

Clear formatting from cells in range_str without altering cell values.

Args: file_path: Workbook path. sheet_name: Worksheet name. range_str: Range whose formatting should be reset.

Returns: dict: Summary of cleared cells.

Notes: - Non-destructive to cell values but destructive to formatting state.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
range_strYes
sheet_nameYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It adds the key behavioral trait: 'Non-destructive to cell values but destructive to formatting state.' It also mentions the return type. It does not discuss permissions or error conditions, so it's not a 5, but it goes beyond a minimal statement.

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 with clear sections (Args, Returns, Notes). It is concise, with no redundant text or filler. The main action is front-loaded, and each section serves a purpose.

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?

The tool is relatively simple with three required parameters. The description covers the core action, return value, and a key behavioral note. It lacks details on error handling or file access prerequisites, but it is reasonably complete for its complexity.

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 the description must compensate. It includes an Args section with one-line definitions for each parameter, adding meaning beyond the names. For example, range_str is described as 'Range whose formatting should be reset.' This is helpful, though not exhaustive.

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 specific action: 'Clear formatting from cells in `range_str` without altering cell values.' This distinguishes it from sibling tools like clear_range (which likely clears values) and format_cells (which applies formatting), and it specifies the target 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 context that the tool is for resetting formatting while preserving values, which implies when to use it. However, it does not explicitly mention alternatives or when-not-to-use scenarios, so it falls short of a 5.

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

clear_rangeA
Destructive

Clear values from a rectangular range of cells.

Args: file_path: Path to workbook. sheet_name: Worksheet name. start_cell: Top-left cell of range to clear. end_cell: Bottom-right cell of range to clear.

Returns: str: Success message.

Raises: (Propagates exceptions from the underlying tools on I/O or invalid ranges.)

Notes: - Destructive: clears cell values (but not necessarily styles) — mention in API docs.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_cellYes
file_pathYes
sheet_nameYes
start_cellYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

The description adds useful behavioral context beyond the destructiveHint annotation: it specifies that cell values are cleared but styles may not be, and it discloses exception propagation behavior. This enriches the annotation rather than contradicting it.

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 with Args, Returns, Raises, and Notes sections. It is concise with no filler, and each line 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?

The description covers all required parameters, return type, error behavior, and destructive nature. Even with an output schema present, it provides necessary context for a destructive operation, making it complete.

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 fully compensates by providing one-line explanations for all four parameters (file_path, sheet_name, start_cell, end_cell) that clarify their roles beyond what the schema gives.

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 'Clear values from a rectangular range of cells' with a specific verb and resource, and it is distinct from siblings like clear_cell_format (which clears 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 explains what the tool does but provides no explicit guidance on when to use it versus alternatives like clear_cell_format or write_cells. The destructive note implies caution, but no 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.

column_statisticsA
Read-only

Compute descriptive statistics for a numeric column (mean, median, std, min, max, sum).

Args: file_path: Workbook path. sheet_name: Worksheet name. column: Column name or letter to analyse. has_header: Whether the sheet has a header row.

Returns: ColumnStats: Pydantic model with statistical measures.

Notes: - Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
columnYes
file_pathYes
has_headerNo
sheet_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
stdNoStandard deviation, or None if unavailable.
meanNoArithmetic mean, or None if unavailable.
countYesNumber of non-empty numeric values.
columnYesColumn letter or header name.
medianNoMedian value, or None if unavailable.
max_valNoMaximum value, or None if unavailable.
messageNoInformational message, e.g. when column is non-numeric.
min_valNoMinimum value, or None if unavailable.
sum_valNoSum of values, or None if unavailable.
kurtosisNoKurtosis of the distribution, or None if insufficient data.
skewnessNoSkewness of the distribution, or None if insufficient data.

TDQS

A4.4/5.0
Behavior3/5

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

The only behavioral trait mentioned is 'Read-only,' which is already declared by the readOnlyHint annotation. The description adds no new behavioral context beyond that, such as handling of non-numeric values or edge cases. Since annotations already cover the safety profile, this is acceptable but not enriched.

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 appropriately sized: a one-sentence purpose, a terse Args section, a Returns note, and a Read-only note. It is well-structured and front-loaded with the key information, with no unnecessary fluff.

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 analysis tool with a read-only annotation and an existing output schema, the description covers all necessary aspects: purpose, all parameters, return type, and safety. It is complete enough for an agent to select and invoke the tool correctly.

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?

Despite the schema having 0% description coverage, the description provides clear, meaningful explanations for all four parameters, including column as name or letter and has_header's purpose. This fully compensates for the schema's lack of 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 a specific action: 'Compute descriptive statistics for a numeric column' and enumerates the exact statistics (mean, median, std, min, max, sum). This distinguishes it from sibling tools like value_counts or aggregate_data, though it doesn't name them explicitly.

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 gives clear context for when to use the tool: when you need descriptive statistics for a numeric column. However, it does not explicitly mention alternatives or when not to use it, so it stops short of a 5.

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

commentA

Add, read, delete or list cell comments on a sheet.

Args: action: "add", "read", "delete", or "list". - "add": requires cell_ref and text; optional author. - "read": requires cell_ref; returns CommentInfo or None. - "delete": requires cell_ref; destructive. - "list": returns list of CommentInfo for the sheet. file_path: Workbook path. sheet_name: Worksheet name. cell_ref: Cell reference for single-cell operations. text: Comment text for "add". author: Optional author string.

Returns: str | CommentInfo | list[CommentInfo] | None: Depends on action.

Notes: - Deletions mutate the workbook.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNo
actionYes
authorNoExcel MCP
cell_refNo
file_pathYes
sheet_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 carries the burden of disclosure. It explicitly warns that deletions mutate the workbook and that 'read' returns None when no comment exists. It also specifies return types for each action, offering solid 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.

Conciseness5/5

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

The description is concise and well-structured: a one-sentence summary, a clear Args section, a Returns line, and a Notes section. Every sentence adds value without repetition or fluff.

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?

The tool is complex due to four distinct actions and six parameters, but the description covers all actions, parameter requirements, return types, and mutation effects. The output schema further clarifies return formats, making this description complete for an agent to select and use the tool.

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 0% description coverage, but the description compensates by explaining every parameter's role and the conditional requirements based on action. It adds meaning beyond the bare schema, though it could elaborate on formats like cell_ref or the structure of CommentInfo.

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 opens with 'Add, read, delete or list cell comments on a sheet,' which precisely specifies the tool's verbs and resource (cell comments). This distinguishes it from sibling tools like 'read_cells' or 'write_cells' and clearly conveys the multi-action nature.

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 per-action usage requirements (e.g., 'add' requires cell_ref and text; 'read' requires cell_ref) and notes that 'list' returns all comments for the sheet. While it does not explicitly mention exclusions or alternatives, the action enum itself clearly delineates the intended use cases.

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

conditional_formatA

Apply, list, or remove conditional formatting rules on a sheet.

Args: action: One of "apply", "highlight", "formula_rule", "remove", "top_bottom", "above_below_average", "list". file_path, sheet_name: Target workbook and sheet. cell_range: Range to apply/remove rules. format_type, start_color, mid_color, end_color, bar_color, icon_style: Visual rule parameters. operator, formula: Rule parameters for highlight/formula rules. font_color, bg_color, is_top, rank, percent, is_above, equal_average: Additional rule params.

Returns: str | dict | list: Depends on action.

Notes: - Removing rules is destructive to formatting state. - Consider documenting rule precedence and Excel-specific limitations.

ParametersJSON Schema
NameRequiredDescriptionDefault
rankNo
actionYes
is_topNo
formulaNo
percentNo
bg_colorNoFFC7CE
is_aboveNo
operatorNo
bar_colorNoFF638EC6
end_colorNo00FF00
file_pathYes
mid_colorNoFFFF00
cell_rangeNo
font_colorNo9C0006
icon_styleNo3Arrows
sheet_nameYes
format_typeNo
start_colorNoFF0000
stop_if_trueNo
equal_averageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

There are no annotations, so the description carries the full burden. It does disclose one meaningful behavioral trait: 'Removing rules is destructive to formatting state.' However, it gives only a vague return-type note and does not explain side effects of applying rules, rule precedence, or Excel-specific limitations—even though it acknowledges these as gaps.

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 structured with Args, Returns, and Notes sections, making it easy to scan. The parameter list is long but necessary given the 20-parameter schema. The final note 'Consider documenting rule precedence and Excel-specific limitations' is more of a meta-suggestion than tool guidance, which slightly detracts.

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?

This is a high-complexity, multi-action tool with 20 parameters and no annotations. The description provides a high-level overview but does not explain which parameters are required for each action, how actions interact, or behavioral edge cases. The output schema covers return structures, but the usage context for such a flexible tool remains incomplete.

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 by grouping parameters into categories like 'Visual rule parameters' and 'Rule parameters for highlight/formula rules,' and it explains the action enum values. However, many parameters (e.g., rank, percent, equal_average) are only labeled as 'Additional rule params' without detailed semantics.

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 begins with a specific verb phrase: 'Apply, list, or remove conditional formatting rules on a sheet.' This clearly states the tool's core function and differentiates it from sibling formatting tools like format_cells or clear_cell_format by focusing on conditional formatting rules. The multi-action scope is explicit.

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 through the action enum list, but it does not explicitly state when to use this tool versus alternatives such as format_cells or data_validation. It also lacks exclusion criteria or context for choosing between the different actions beyond their names.

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

copy_cell_formatA

Copy formatting from a single source cell to every cell in a target range.

Args: file_path: Workbook path. sheet_name: Worksheet name. source_cell: Reference of the cell to copy formatting from. target_range: Range to apply the copied format.

Returns: dict: Summary of changed cells.

Notes: - Mutates formatting; does not touch values.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
sheet_nameYes
source_cellYes
target_rangeYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the burden of disclosing behavior. It explicitly notes that it mutates formatting and does not touch values, and it describes the return type ('dict: Summary of changed cells'). This gives essential behavioral context, though it could mention that the target range formatting is overwritten.

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 with clear sections (Args, Returns, Notes). It is concise, front-loaded with the main purpose, and every sentence adds value without redundancy or fluff.

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?

The description fully covers the tool's operation, parameters, return value, and side effects. Given the lack of annotations and output schema, it provides a complete picture for an agent to select and invoke the tool correctly, including the crucial note that values are not touched.

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 compensate. The Args section provides meaningful definitions for all four parameters (file_path, sheet_name, source_cell, target_range), adding clarity beyond raw parameter names. This fully 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 action ('Copy formatting'), the resource ('cell format'), and the scope ('from a single source cell to every cell in a target range'). This distinguishes it from sibling tools like copy_range (copies values) and format_cells (applies formatting), 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 by indicating that it mutates formatting and does not touch values, implying it is for formatting-only copy operations. However, it does not explicitly name alternative tools or state when not to use it, so it stops short of full usage guidance.

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

copy_rangeA

Copy a range of cells to a destination range (same workbook or across sheets).

Args: file_path: Source workbook path (when copying within same workbook). source_sheet: Source worksheet name. source_range: Range to copy (e.g. "A1:B10"). dest_sheet: Destination worksheet name. dest_range: Destination top-left target (e.g. "C1"). copy_values: If True, copy values. copy_styles: If True, copy styles. paste_values_only: If True, read resolved values and write values (not formulas).

Returns: str: Success message.

Notes: - May open the workbook twice if paste_values_only is True (read-only pass then write pass).

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
dest_rangeYes
dest_sheetYes
copy_stylesNo
copy_valuesNo
source_rangeYes
source_sheetYes
paste_values_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/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 of behavioral disclosure. It discloses that the workbook may be opened twice when paste_values_only is True, explains the difference between copying formulas versus values, and mentions the return success message. It does not discuss overwriting behavior or permission requirements, but the provided context is substantive.

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 with labeled Args and Notes sections. Every sentence provides necessary information, and the parameter explanations are compact. The Notes section adds a valuable behavioral caveat without unnecessary padding.

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 an 8-parameter tool with no annotations and no schema descriptions, the description covers the core invocation details well: parameters, behavior, and return type. It could be more complete by disclosing whether the destination range is fully overwritten or merged, but the provided information is largely sufficient for correct invocation.

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 compensate. It does so effectively by explaining all 8 parameters, including the meaning of dest_range as a top-left target with an example ('C1') and the nuanced behavior of paste_values_only versus copy_values. This adds significant meaning beyond the raw schema 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 clearly states the tool's function: 'Copy a range of cells to a destination range (same workbook or across sheets).' This is a specific verb+resource combination that distinguishes it from siblings like transpose_range and copy_cell_format, and it explicitly notes the cross-sheet capability.

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 through its purpose statement and parameter list, but it does not explicitly explain when to prefer this tool over alternatives such as write_cells or copy_cell_format. The Notes section provides a caveat about paste_values_only, but no direct comparison or exclusionary guidance is given.

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

correlation_matrixA
Read-only

Compute a Pearson correlation matrix for numeric columns.

Args: file_path: Workbook path. sheet_name: Worksheet name. columns: Optional list of column names to include. If None, all numeric columns are used. output_sheet: Optional sheet name to write the matrix. output_file: Optional file path to write results. header_row: 1-based header index.

Returns: dict: {"columns": [...], "matrix": [[float, ...], ...]}.

Notes: - Read-only unless output_sheet/output_file is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
columnsNo
file_pathYes
header_rowNo
sheet_nameYes
output_fileNo
output_sheetNo

TDQS

A4.6/5.0
Behavior5/5

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

The annotations include readOnlyHint: true, and the description adds valuable nuance: 'Read-only unless output_sheet/output_file is set.' This transparently discloses the conditional side effect and goes beyond the annotation's binary hint. It also describes the return structure, which is helpful given the lack of an output 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?

The description is front-loaded with the core purpose, then uses a clear structured format for Args, Returns, and Notes. Every line adds value, and the parameter list is appropriately terse given the number of parameters.

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?

Despite having no output schema, the description fully specifies the return format. It covers the read-only/write conditional, parameter semantics, and scope (numeric columns only). For a tool of this complexity, it is remarkably complete and leaves minimal ambiguity.

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, meaning the description is the sole source for parameter meaning. It thoroughly explains each of the six parameters (file_path, sheet_name, columns, output_sheet, output_file, header_row) with concise, accurate semantics, including defaults and the 1-based header_row note.

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 opens with a specific verb and resource: 'Compute a Pearson correlation matrix for numeric columns.' This clearly distinguishes it from sibling tools like column_statistics or run_regression, which compute different statistical outputs.

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 clear context for what the tool does but does not explicitly state when to use it over alternatives or mention exclusions. For example, it does not say 'use this when you need pairwise correlations among numeric columns, not for single-column summaries.' This leaves the agent to infer usage from the function 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.

create_pivot_tableA

Build a pivot table from a source sheet and optionally write it to output_sheet/output_file.

Args: file_path: Workbook path. sheet_name: Source data sheet. index_cols: List of column names to use as index (rows). value_cols: Columns to aggregate. aggfunc: Aggregation function or dict (e.g. "sum", "mean" or {col: "sum"}). output_sheet: Optional destination sheet for pivot output. output_file: Optional file to write the pivot output. column_field: Optional field used for pivot columns. date_freq: Optional date grouping alias (e.g. 'ME', 'YE', 'W').

Returns: dict: Details about output including created sheet and saved pivot metadata.

Notes: - Writes to workbook when output_sheet/output_file is provided. Stores pivot definitions in _mcp_pivots for refresh.

ParametersJSON Schema
NameRequiredDescriptionDefault
aggfuncNosum
date_freqNo
file_pathYes
index_colsYes
sheet_nameYes
value_colsYes
output_fileNo
column_fieldNo
output_sheetNo

TDQS

A4.3/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 side effects: 'Writes to workbook when output_sheet/output_file is provided. Stores pivot definitions in _mcp_pivots for refresh.' It also states the return value contains output metadata. However, it does not mention potential overwriting of existing sheets or required 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?

The description uses a clean Args/Returns/Notes structure. Each line addresses one parameter or behavioral note without redundancy. Despite covering nine parameters, it remains efficient and scannable.

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?

The description covers all parameters, the return value, and the key side effect of storing pivot definitions. It is reasonably complete for a complex tool, but falls short of explaining the precedence when both output_sheet and output_file are provided, and the exact semantics of column_field.

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 compensate for all 9 parameters. Every parameter is explained with added meaning: index_cols are 'List of column names to use as index (rows)', aggfunc gives examples ('sum', 'mean', {col: 'sum'}), date_freq provides format aliases ('ME', 'YE', 'W'), and output_sheet/output_file are contextualized as optional destinations. This is far more informative than the raw 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 opens with a specific verb and resource: 'Build a pivot table from a source sheet and optionally write it to output_sheet/output_file.' This clearly states what the tool does and differentiates it from siblings like refresh_pivot_table (refresh vs create) and aggregate_data (pivot vs generic aggregation).

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 the tool (when building pivot tables) but does not explicitly discuss alternatives or exclusions relative to other tools such as aggregate_data or value_counts. No '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.

create_sensitivity_tableA

Create a 1- or 2-variable sensitivity table in the workbook.

Evaluates expression over supplied value grids.

Args: file_path: Workbook path. sheet_name: Worksheet containing the base formula or output cell. output_cell: Cell that contains or references the expression to evaluate. expression: Expression that will be evaluated relative to variable names. var1_name, var1_values: Name and values for variable 1. var2_name, var2_values: Optional name/values for a second variable (two-way table).

Returns: dict: Summary including output range and written values.

Notes: - Mutates workbook by inserting the table; confirm overwrite semantics when the target output area overlaps data.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
var1_nameYes
var2_nameNo
expressionYes
sheet_nameYes
output_cellYes
var1_valuesYes
var2_valuesNo

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 carries the full burden. It explicitly discloses that the tool mutates the workbook by inserting a table and warns about overwrite semantics when output overlaps data, which is valuable 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.

Conciseness5/5

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

The description is well-structured with Args, Returns, and Notes sections. It is front-loaded with the main purpose and each sentence provides useful information without 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?

Given the tool has 8 parameters, no output schema, and no annotations, the description covers the essential aspects: purpose, parameter semantics, return summary, and mutation warning. It could be more explicit about the output cell placement or provide an example, but it is largely 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?

Schema description coverage is 0%, so the description compensates by providing concise explanations for each parameter (e.g., 'Cell that contains or references the expression to evaluate'). It clarifies the role of var1/var2 and the expression, adding meaning beyond the raw 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 it creates a 1- or 2-variable sensitivity table, with a specific verb and resource. It distinguishes from siblings like goal_seek or run_solver by focusing on sensitivity analysis over value grids.

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 sensitivity table) but does not explicitly state when to use this tool versus alternatives or provide exclusions. No clear guidance on selection against sibling tools is given.

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 file_path with optional initial sheets.

Args: file_path: Destination path for the new workbook. sheet_names: Optional list of sheet names to create. sheet_name: Optional single sheet name (legacy convenience).

Returns: WorkbookCreatedResult: Contains file path and sheet information.

Notes: - Mutates filesystem by creating a new .xlsx. Parent directory will be created if permitted by utils.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
sheet_nameNo
sheet_namesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
sheetsYesNames of sheets in the new workbook.
file_pathYesAbsolute path of the created workbook file.

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 carries the burden and does disclose that it mutates the filesystem and may create parent directories. However, it does not mention behavior when the target file already exists (e.g., overwrite vs. error) or interaction between the two sheet parameters.

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 docstring format is well-structured and front-loads the main purpose. Arguments, returns, and a key behavioral note are each described in one concise line without 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?

The description covers purpose, arguments, return type, and a filesystem side effect, which is good for a simple creation tool. Missing details like existing-file behavior and parameter exclusivity leave minor but relevant gaps.

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?

Each parameter gets a meaningful description beyond the schema: file_path is the destination path, sheet_names is an optional list, and sheet_name is a legacy single-string convenience. The schema has no property descriptions, so this fully compensates, though it could note mutual exclusivity.

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 it creates a new Excel workbook at a specified path with optional initial sheets. The verb and resource are specific, and it is distinguished from sibling tools that read, modify, or analyze existing workbooks.

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 context of creating a new workbook is clear, but there is no explicit guidance on when to use this tool versus alternatives, nor any exclusions. It does not mention that other tools handle existing workbooks or that multi-sheet creation might be done differently.

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

csv_opsA

CSV helper operations: preview CSV, convert CSV→XLSX, and export XLSX→CSV.

Args: action: "preview", "to_xlsx", or "to_csv". - "preview": requires file_path (CSV path); returns a small preview as dict. - "to_xlsx": requires csv_path (or file_path) and xlsx_path (or output_path). - "to_csv": requires file_path (XLSX) and output_path (CSV destination). file_path, csv_path, xlsx_path, output_path: Path parameters as described above. sheet_name: Sheet to export when converting XLSX→CSV. rows: Number of preview rows to return. delimiter, encoding: CSV parameters.

Returns: dict or str: Preview dict for "preview" or destination path for conversions.

Raises: ValueError: If required path parameters are missing for the selected action.

Notes: - "to_xlsx" and "to_csv" perform file writes; document whether they overwrite existing files.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsNo
actionYes
csv_pathNo
encodingNoutf-8
delimiterNo,
file_pathNo
xlsx_pathNo
sheet_nameNoSheet1
output_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden. It discloses that 'to_xlsx' and 'to_csv' perform file writes and that ValueError is raised for missing paths. However, the note 'document whether they overwrite existing files' is a meta-instruction rather than an actual disclosure: it never states whether existing files are overwritten. This leaves a critical side-effect ambiguous, and for a mutation action this is a notable transparency gap.

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 well-structured with clear sections for purpose, args, returns, raises, and notes. The content is fairly concise for a tool with multiple actions and 9 parameters. The only slight issue is the final note, which is written as a reminder to document overwrite behavior instead of documenting it directly, adding a bit of noise.

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 various actions, required parameters, return values, and error conditions, making it usable for most scenarios. However, the overwrite behavior is explicitly left undocumented, and details about the preview dict's structure rely on the output schema (which is present). This is a meaningful completeness gap for a file-writing tool, so it falls short of being fully 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 schema description coverage at 0%, the description compensates by mapping parameters to actions: it explains that file_path is used for preview and to_csv, that csv_path and file_path are interchangeable for to_xlsx, and that sheet_name, rows, delimiter, and encoding have specific roles. While it doesn't dive deeply into all parameter value formats, it covers the essential conditional dependencies and provides enough context for an agent to pick the right arguments.

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 'CSV helper operations: preview CSV, convert CSV→XLSX, and export XLSX→CSV' and then enumerates the three specific actions. This gives a concrete verb+resource pairing for each operation and distinguishes csv_ops from sibling tools that handle XLSX workbooks or other formatting tasks.

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 action-specific parameter requirements, e.g., 'preview' requires file_path, 'to_xlsx' requires csv_path (or file_path) and xlsx_path (or output_path), and 'to_csv' requires file_path and output_path. This clearly implies when each action should be used. It does not explicitly mention alternative tools or when not to use the tool, so it does not reach a 5.

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

data_cleanerA

Run a pipeline of cleaning operations (trim, dedupe, fill missing, normalize, etc.) on a sheet.

Args: file_path: Workbook path. sheet_name: Worksheet to operate on. operations: Ordered list of operations to run (see tool docs for allowed names). columns: Optional subset of columns to target. preview: If True, return a preview without persisting changes. output_file: Optional path to write cleaned results. header_row: 1-based header index. fill_missing_strategy: Strategy name for filling missing values. fill_value: Literal value to use if strategy is "value".

Returns: dict: Summary including rows modified and operations applied.

Notes: - Document allowed operations strings in the route or underlying tool docs.

ParametersJSON Schema
NameRequiredDescriptionDefault
columnsNo
previewNo
file_pathYes
fill_valueNo
header_rowNo
operationsNo
sheet_nameNoSheet1
output_fileNo
fill_missing_strategyNovalue

TDQS

A3.7/5.0
Behavior3/5

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

The description discloses some behavioral traits: preview mode 'without persisting changes', ordered operations, and a return summary. However, it does not clarify whether changes are written in-place to the original file or only to output_file, what happens if output_file is omitted, or side effects on existing data. The note 'Document allowed operations strings in the route or underlying tool docs' reveals a documentation gap, and with no annotations, the description carries the full burden.

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 structure is clear and efficient: a one-sentence purpose, an Args list, a Returns section, and a Notes section. The Notes section contains a developer-facing meta-comment about documentation, which is less useful for an agent, but overall the description is well-organized and front-loaded.

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?

This is a high-complexity tool (9 parameters, no output schema, no annotations) and the description is not complete enough. It does not specify the default persistence behavior (in-place vs output_file), the interaction between fill_missing_strategy and fill_value, or the exact content of the return summary beyond 'rows modified and operations applied'. The note about missing operation documentation further reduces completeness.

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 lists all 9 parameters with brief explanations, adding meaning beyond the schema's bare titles. It provides useful clarifications such as 'preview: If True, return a preview without persisting changes' and 'fill_value: Literal value to use if strategy is "value".' However, it does not explain default values or enumerate allowed fill strategies or operation names, referencing external docs instead.

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: 'Run a pipeline of cleaning operations (trim, dedupe, fill missing, normalize, etc.) on a sheet.' This specifies a verb, resource, and scope, and differentiates it from sibling tools like deduplicate_data or find_duplicates by emphasizing a multi-step pipeline.

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 cleaning workflows but does not explicitly state when to use this tool versus alternatives. It does not mention exclusions or point to specialized sibling tools for single operations. The note about documenting allowed operation strings hints at intended flexibility but does not guide selection.

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

data_validationA

Add or remove data validation rules on a cell range.

Args: action: "dropdown", "numeric", "date", "remove", or "formula". file_path, sheet_name: Target workbook and sheet. cell_range: Range to apply validation. options: For dropdown lists, list of allowed values. source_range: Alternative dropdown source range. operator, value1, value2: Numeric operator and bounds for numeric validation. date1, date2: Date bounds for date validation. allow_blank, error_style, error_title, error_message, prompt_title, prompt_message: UX controls. formula: Custom formula when action=="formula".

Returns: str or dict: Result or validation metadata.

Notes: - "remove" is destructive for validation rules; this does not delete values, only rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
date1No
date2No
actionYes
value1No
value2No
formulaNo
optionsNo
operatorNo
file_pathYes
cell_rangeYes
sheet_nameYes
show_errorNo
allow_blankNo
error_styleNostop
error_titleNo
prompt_titleNo
source_rangeNo
error_messageNo
prompt_messageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It discloses that 'remove' is destructive only for validation rules, not cell values, and notes the return type (str or dict). However, it omits other behavioral details such as permissions, error handling, or whether the file is saved/modified in place.

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 well-structured: a clear first sentence, an Args section that groups related parameters, a Returns line, and a Notes section. It is appropriately sized for 19 parameters, avoiding unnecessary verbosity while still being informative.

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 complex tool with 19 parameters and no annotations, the description provides a solid overview and parameter meanings. However, it does not explicitly map which parameters are required for each action (e.g., 'formula' action likely needs the formula parameter), and it misses 'show_error'. The output schema covers the return structure, so that part is acceptable.

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 0% description coverage, so the description compensates by listing and explaining most parameters. It clarifies action-specific semantics (e.g., options for dropdown, operator/value1/value2 for numeric, date1/date2 for date, formula for custom). However, it omits the 'show_error' parameter that appears in the schema, leaving a small but notable gap.

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 opens with 'Add or remove data validation rules on a cell range,' which is a specific verb+resource that clearly states the tool's function. However, it does not explicitly differentiate from sibling tools such as protection or conditional_format, so it stops short of a 5.

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 data validation scenarios but provides no explicit guidance on when to use this tool versus alternatives. It includes a caution about the 'remove' action being destructive to validation rules, which is useful context, but it does not offer when/when-not direction or name alternative tools.

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

dcf_analysisA
Read-only

Compute Discounted Cash Flow valuation with a Gordon Growth Model terminal value.

Args: cash_flows: List of cash flows (period-ordered), first item normally year 0 investment (negative). discount_rate: Discount rate as decimal. terminal_growth_rate: Perpetuity growth for terminal value. initial_investment: Optional initial outlay to include in NPV.

Returns: dict: NPV, terminal value, IRR and breakdowns.

ParametersJSON Schema
NameRequiredDescriptionDefault
cash_flowsYes
discount_rateYes
initial_investmentNo
terminal_growth_rateNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, so no mutation is implied. The description adds transparency by stating the computation uses Gordon Growth and returns a dict with NPV, terminal value, IRR, and breakdowns, which is more than the annotation alone provides.

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 compact and well-structured with Args and Returns sections. Every sentence provides useful information, and there is no redundancy or filler.

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

Completeness4/5

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

With no output schema, the description correctly specifies the return structure (NPV, terminal value, IRR, breakdowns). It documents all required inputs and key conventions. Some financial edge cases (e.g., IRR with negative cash flows) are unstated, but for selection and basic invocation it is sufficiently complete.

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?

Although the schema description coverage is 0%, the Args block thoroughly documents all four parameters, including period-ordering, negative year-0 convention, decimal discount rate, perpetuity growth, and optional initial investment. This fully compensates for missing 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 opens with a specific verb and resource: 'Compute Discounted Cash Flow valuation with a Gordon Growth Model terminal value.' This clearly distinguishes the tool from siblings like time_value_calc or loan_amortization.

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 gives clear context for when to use the tool: any DCF valuation with a Gordon Growth terminal value. It does not explicitly mention alternatives or exclusions, but the purpose is specific enough to guide selection.

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

deduplicate_dataA
Destructive

Remove duplicate rows from a sheet, optionally using a subset of columns.

Args: file_path: Workbook path. sheet_name: Worksheet name. columns: Optional list of columns to consider for duplicates. keep: Which duplicate to keep: 'first', 'last', or False (drop all duplicates).

Returns: str: Summary message and number of rows removed.

Notes: - Destructive: modifies the workbook unless an output_file variant is implemented upstream.

ParametersJSON Schema
NameRequiredDescriptionDefault
keepNofirst
columnsNo
file_pathYes
sheet_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, and the description adds a note explicitly stating 'Destructive: modifies the workbook unless an `output_file` variant is implemented upstream.' This goes beyond the annotation by explaining the in-place modification and caveat about an alternative output variant. No contradiction with annotations.

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 with Args, Returns, and Notes sections. The opening sentence states the core purpose in one line, and every subsequent line provides necessary details without redundancy. It is concise and information-dense.

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?

The description covers the tool's purpose, all parameters, return type, and the destructive behavior. It addresses the optional columns and the keep options. Given the presence of an output schema, the description sufficiently explains what to expect and the impact of using the tool. No significant gaps are apparent.

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 schema provides no descriptions (coverage 0%), but the description fully defines each parameter: file_path as 'Workbook path', sheet_name as 'Worksheet name', columns as 'Optional list of columns to consider for duplicates', and keep as 'Which duplicate to keep: first, last, or False'. This completely compensates for the missing schema descriptions and adds clear meaning.

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 starts with a specific verb and resource: 'Remove duplicate rows from a sheet', and adds an optional qualifier about using a subset of columns. This clearly differentiates it from sibling tools like find_duplicates, which likely only identifies duplicates rather than removing them.

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: use this when you need to remove duplicate rows. However, it does not explicitly state when not to use it or mention alternatives such as find_duplicates for identifying duplicates first. The guidance is adequate but not explicit about exclusions.

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

doc_propertiesA

Read document properties or set calculation mode.

Args: action: "get" or "set_calc_mode". file_path: Workbook path. calc_mode: "auto", "manual", or "autoNoTable" for setting calculation mode.

Returns: dict or str: Properties dict for "get"; status message for "set_calc_mode".

Notes: - Changing calc mode changes workbook behaviour for formula recalc; mention effect in docs.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
calc_modeNoauto
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/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 the full burden. It discloses a key side effect: changing calc mode alters workbook behavior for formula recalc. It also explains return types for both actions. However, it doesn't state whether the change is saved to the file, which is a minor transparency gap.

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 with Args, Returns, and Notes sections, and is concise at under 150 words. It is front-loaded with the purpose and each sentence adds necessary information without 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?

For a tool with 3 parameters and 2 actions, the description covers purpose, all parameters, return behavior, and a side effect. It lacks error handling or prerequisite info, but is sufficient for basic usage. The presence of an output schema reduces the need to detail return structure, and the description already outlines it.

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 fully explain parameters. It does: action enum values, file_path meaning, and calc_mode options with examples. It also clarifies the behavior and return type per action, adding 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 'Read document properties or set calculation mode', using specific verbs 'read' and 'set' and identifying two distinct resources/actions. It distinguishes from siblings by including the unique 'set_calc_mode' operation, making the tool's scope 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 when to use each action (get for reading properties, set_calc_mode for changing calc mode) and notes the effect of changing calc mode, but it does not explicitly compare with sibling tools like get_workbook_metadata or state when not to use this tool. Guidance is implied rather than directly given.

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

download_fileA
Read-only

Download a file from the server as base64.

Use after tools that modify a workbook to retrieve the updated file content.

Args: file_path: Local path to the file (typically from upload_file or a tool that created a file).

Returns: dict: A mapping containing: - file_content (str): Base64-encoded file bytes. - filename (str): Basename of the file. - size_bytes (int): Size of the file in bytes.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes

TDQS

A4.3/5.0
Behavior4/5

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

The annotation readOnlyHint=true already signals a safe read operation, and the description aligns with that. The description adds value by disclosing the base64 encoding, the return structure (file_content, filename, size_bytes), and the typical file source. It goes beyond what annotations provide, making behavior more predictable.

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 well-structured with a clear one-sentence summary followed by Args and Returns sections. The return detail is necessary because there is no output schema. Every line earns its place, though the Args section could be slightly more compact without losing clarity.

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 1-parameter tool with read-only annotation and no output schema, the description covers the key aspects: what it does, when to use it, what the parameter is, and what it returns. It lacks error-handling or permission notes, but those are less critical given the tool's simplicity and the sibling context.

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 compensates by explaining file_path as 'Local path to the file (typically from upload_file or a tool that created a file).' This adds meaningful context beyond the schema's 'File Path' title, clarifying the parameter's role and expected 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 uses a specific verb+resource ('Download a file from the server as base64') and immediately differentiates from siblings like upload_file by focusing on download. It also adds a clear use case (retrieve updated file content after modifications), which distinguishes it from read-oriented tools like read_cells.

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 explicitly states when to use the tool ('Use after tools that modify a workbook to retrieve the updated file content') and provides context on the file_path source ('typically from upload_file or a tool that created a file'). It does not list exclusions or alternative tools, but the usage context is clear and actionable.

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

execute_custom_codeA

Execute sandboxed Python/pandas code against a workbook or sheet and return result.

Args: file_path: Path to source workbook to load into the sandbox. code: Python code string. Sandbox exposes df (pandas.DataFrame), pd (pandas), np (numpy). sheet: Optional sheet name to load into df. If omitted, the first sheet or a default is used. output_file: Optional path to write results back to a workbook.

Returns: dict: Execution result, typically containing result (from user code), stdout and errors.

Raises: ValueError: If code fails safety checks in the sandbox.

Notes: - High-risk: sandbox uses AST checks — document the allowed AST nodes and forbidden names. - Recommend returning a short example snippet of a safe operation in the route docs.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
sheetNo
file_pathYes
output_fileNo

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description discloses sandboxing, AST safety checks, ValueError, and return structure, but the note about allowed AST nodes is a directive to document rather than an actual disclosure, leaving important safety details unknown.

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 well-structured with clear sections and a front-loaded summary, but the final note about recommending examples is meta-documentation that does not directly help the agent.

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 inputs, outputs, and errors, but for a high-risk tool it omits the actual allowed AST nodes, forbidden names, and any example, leaving critical execution constraints unspecified.

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?

All four parameters receive meaningful semantic explanations beyond the schema: code execution context (df, pd, np), sheet fallback behavior, and output_file purpose, fully compensating for the 0% schema description 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 opening sentence clearly states a specific verb ('Execute') with a resource ('workbook or sheet') and environment ('sandboxed Python/pandas'), making it unmistakable and distinct from the many specialized sibling 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?

The description implies this is for arbitrary custom code, but it does not explicitly state when to use it versus the specialized sibling tools, nor does it mention any exclusions or alternatives.

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

filter_data_advancedA

Filter rows using multiple conditions combined with AND/OR logic.

Args: file_path: Workbook path. sheet_name: Worksheet name. conditions: List of filter conditions, each with 'column' (str), 'operator' (str), and 'value'. logic: "AND" or "OR" to combine conditions. output_sheet: Optional sheet to write filtered output. header_row: 1-based header row index.

Returns: dict: Filtered rows or summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
logicNoAND
file_pathYes
conditionsYes
header_rowNo
sheet_nameYes
output_sheetNo

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description must disclose side effects. It mentions optional output_sheet writing and a returns dict, but it does not clarify whether the original file is modified, the exact behavior when output_sheet is null, or what 'summary' means. This is adequate but has 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?

The description is well-structured with a clear one-line purpose, an Args section, and a Returns section. Every line adds relevant information, and there is no fluff or repetition.

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 return behavior is underspecified ('Filtered rows or summary') and the optional write path is not fully explained. Given the tool's complexity (6 parameters, nested conditions) and absence of annotations and output schema, the description should provide more detail about what is returned in different scenarios.

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 description provides meaningful semantics for all six parameters, explaining the structure of conditions, the purpose of logic, output_sheet's optional write behavior, and header_row indexing. This fully compensates for the schema's lack of top-level parameter descriptions (0% 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 states a specific verb and resource: 'Filter rows using multiple conditions combined with AND/OR logic.' This clearly distinguishes it from sibling tools like sort_data or aggregate_data, and the mention of multiple conditions and logic makes the advanced filtering scope obvious.

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 for when to use the tool (filtering rows with multiple conditions and AND/OR combination). However, it does not explicitly name alternatives or state when not to use it, so it falls short of a perfect score.

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

financial_ratio_analysisA
Read-only

Compute common financial ratios from raw financial metric inputs and compare them to benchmarks.

Args: financial_data: Dict of raw metric values keyed by component name. Valid keys: current_assets, current_liabilities, inventory, total_debt, total_equity, net_income, total_assets, revenue, gross_profit, operating_income, ebitda, interest_expense. E.g. {"current_assets": 500000, "current_liabilities": 250000}. industry_benchmarks: Optional dict of benchmark ratio values to compare against, e.g. {"current_ratio": 2.0, "roe": 0.15}.

Returns: dict: Computed ratios and optional benchmark comparisons.

Notes: - This function is pure math and does not touch files.

ParametersJSON Schema
NameRequiredDescriptionDefault
financial_dataYes
industry_benchmarksNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, and description adds 'pure math and does not touch files,' which clarifies no side effects. It does not disclose error handling for invalid keys, but the transparency is sufficient for a read-only computation 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 well-organized with Args, Returns, and Notes sections, front-loaded with a clear purpose. The long key list is necessary given the untyped schema, and every sentence provides useful 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?

The description provides enough detail to invoke the tool correctly, including valid keys and benchmark format. However, it does not enumerate the specific ratio names returned or the exact structure of benchmark comparisons, which would be needed since no output schema exists.

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 coverage is 0% and the schema only defines generic object types. The description compensates fully by listing all valid financial_data keys with an example, and explaining industry_benchmarks as an optional dict of benchmark ratios.

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 it computes common financial ratios from raw metrics and compares them to benchmarks. This specific verb+resource distinguishes it from sibling financial tools like dcf_analysis and loan_amortization.

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 clearly implies when to use the tool: when financial ratios are needed from raw metric inputs, with optional benchmark comparison. However, it does not explicitly name alternatives or state 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.

find_duplicatesA
Read-only

Identify duplicate rows based on a list of columns.

Args: file_path: Workbook path. sheet_name: Worksheet name. columns: Columns used to determine duplicates. has_header: Whether the sheet has a header row.

Returns: dict: Duplicate groups and row indices.

ParametersJSON Schema
NameRequiredDescriptionDefault
columnsYes
file_pathYes
has_headerNo
sheet_nameYes

TDQS

A4.3/5.0
Behavior4/5

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

The readOnlyHint annotation already indicates a safe read operation. The description aligns with this and adds useful behavioral details by specifying the return format (dict with duplicate groups and row indices) and the basis for duplication (a list of columns). It does not contradict the annotations and adds context beyond the structured fields.

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 compact, well-structured docstring with an Args section and Returns section. Every sentence provides relevant information without unnecessary fluff, making it easy to scan and understand.

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?

The description adequately covers inputs and the return value, which is essential since there is no output schema. It lacks explicit differentiation from deduplicate_data and does not specify how duplicate groups are keyed or whether the first occurrence is included, but the overall tool behavior is clear enough for a tool of this complexity.

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 carries the full burden for parameter semantics. It documents all four parameters with clear, meaningful definitions: file_path as workbook path, sheet_name as worksheet name, columns as the basis for duplicates, and has_header as a header-row indicator. This fully compensates for the schema's lack of 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's function with a specific verb and resource: 'Identify duplicate rows based on a list of columns.' It also differentiates from sibling tools like deduplicate_data by emphasizing identification rather than removal, and the return value of duplicate groups and row indices reinforces this.

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 finding duplicate rows based on selected columns, but it does not explicitly state when to use this tool over alternatives such as deduplicate_data. No exclusions or alternative recommendations are provided, so guidance is only implicit.

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

find_replaceA

Find and replace text across a worksheet.

Args: file_path: Path to workbook to modify. sheet_name: Worksheet name. find_text: Substring or pattern to find. replace_text: Replacement text. match_case: Case-sensitive search when True. match_entire_cell: Match entire cell contents exactly when True. search_formulas: Also search within formulas when True. regex: Treat find_text as a regular expression when True.

Returns: dict: {"count": int, "cells": ["A1", ...]} detailing replacements.

Notes: - Destructive: modifies cells in-place. - Consider returning per-cell before/after pairs for audit logging in high-risk contexts.

ParametersJSON Schema
NameRequiredDescriptionDefault
regexNo
file_pathYes
find_textYes
match_caseNo
sheet_nameYes
replace_textYes
search_formulasNo
match_entire_cellNo

TDQS

A4.3/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 of behavioral disclosure. It clearly warns 'Destructive: modifies cells in-place' and describes the return dict with count and cells. This discloses the key mutation behavior and result shape, though edge cases like no-match behavior are not covered.

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 well-structured docstring with Args, Returns, and Notes sections. Every sentence serves a purpose; the note about audit logging adds useful context without unnecessary verbosity.

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 an 8-parameter write operation with no output schema, the description covers input semantics, return format, and destructive behavior. It could be more complete by mentioning what happens when no matches are found or how defaults affect behavior, but it adequately addresses core usage.

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 description provides a one-line explanation for all 8 parameters in the Args section, adding semantic meaning beyond the input schema's names and titles. Boolean flags like match_case, search_formulas, and regex are explicitly 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's function: 'Find and replace text across a worksheet.' This is a specific verb+resource pairing that distinguishes it from sibling tools like write_cells or clear_range. The worksheet scope and replace operation are explicit.

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 find-and-replace operations and mentions it modifies cells in-place, but it does not explicitly state when to use this tool versus alternatives or provide any exclusion criteria. The audit-logging note is a caution, not usage guidance.

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

format_cellsA

Apply font, fill, alignment, borders and number formats to a cell range.

Args: file_path, sheet_name: Target workbook and sheet. cell_range: Range to format. bold, italic, font_size, font_color, bg_color: Font and fill controls. number_format: Custom number format string. horizontal_alignment, vertical_alignment: Alignment enums. wrap_text, border_style, border_color, font_name, underline, strikethrough, text_rotation, indent, shrink_to_fit: Formatting options. top_border_style, bottom_border_style, left_border_style, right_border_style: Per-side border overrides. number_format_preset: Named preset from NUMBER_FORMAT_PRESETS. preserve_existing: If True, do not overwrite unspecified style attributes.

Returns: str: Result message.

Notes: - Mutates formatting in workbook; recommend documenting idempotency when called multiple times with same args.

ParametersJSON Schema
NameRequiredDescriptionDefault
boldNo
indentNo
italicNo
bg_colorNo
file_pathYes
font_nameNo
font_sizeNo
underlineNo
wrap_textNo
cell_rangeYes
font_colorNo
sheet_nameYes
border_colorNo
border_styleNo
number_formatNo
shrink_to_fitNo
strikethroughNo
text_rotationNo
top_border_styleNo
left_border_styleNo
preserve_existingNo
right_border_styleNo
vertical_alignmentNo
bottom_border_styleNo
horizontal_alignmentNo
number_format_presetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/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 explicitly states 'Mutates formatting in workbook' and adds an idempotency warning. It also explains the preserve_existing behavior, which is a key nuance. However, it does not mention permissions, error conditions, or file-saving behavior, so it is not fully exhaustive.

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 into Args, Returns, and Notes sections. The opening sentence states the core purpose, and every line adds value by cataloging parameters or behavior. Despite covering 26 parameters, it remains readable and free of 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?

Given the high parameter count and no annotations, the description covers the full parameter set, return type, and mutation behavior. It is missing an explicit explanation of what happens when preserve_existing is False (whether unspecified styles are reset to defaults), which is a notable gap, but overall it provides enough context for correct use.

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 schema description coverage at 0%, the description compensates well by listing and grouping all 26 parameters into meaningful categories (e.g., 'Font and fill controls', 'Alignment enums', 'Per-side border overrides') and explains preserve_existing. Some parameters like wrap_text are only listed, but the names and grouping provide adequate semantic clarity.

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 opens with a specific verb 'Apply' and lists concrete resources: 'font, fill, alignment, borders and number formats to a cell range'. This clearly distinguishes it from siblings like copy_cell_format or clear_cell_format, which perform different actions on 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 when to use the tool (when formatting a range), but it does not explicitly state situations to avoid or mention alternatives. No exclusions or comparative guidance are provided, so the usage context is only implied.

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

formula_auditA
Read-only

Inspect formulas: get cached value, list errors, find precedents/dependents, or list all formulas.

Args: action: "value", "errors", "precedents", "dependents", or "list". file_path, sheet_name: Workbook and sheet. cell_ref: Required for "value", "precedents", and "dependents". cell_range: Optional range filter for "errors".

Returns: dict or list: Action-dependent payload (e.g. value, list of FormulaErrorInfo, list of cell refs).

Notes: - Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
cell_refNo
file_pathYes
cell_rangeNo
sheet_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the readOnlyHint annotation, the description reveals that actions return cached values, lists of FormulaErrorInfo, or cell refs, and notes the tool is read-only. This adds meaningful behavioral context without contradicting the annotation. The action-dependent return types are explicitly disclosed.

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 compact and well-structured with Args, Returns, and Notes sections. Every sentence contributes functional information, and the key behavior is front-loaded in the first line.

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 (5 params, enum, conditional requirements), the description covers all critical aspects: actions, parameter applicability, and return type categories. The presence of an output schema reduces the need to detail return structures further. Minor gaps include no explicit error-handling notes or cell format conventions, but these are not critical for correct invocation.

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 compensates by explaining each parameter's role: action values, file_path/sheet_name as workbook/sheet, and conditional requirements for cell_ref and cell_range. It lacks exact cell reference format but provides sufficient semantic mapping for an agent to invoke correctly.

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 opens with a specific action verb 'Inspect formulas' and enumerates five distinct operations (value, errors, precedents, dependents, list). This clearly distinguishes it from sibling write tools like formula_write and read_cells by establishing a focused audit scope.

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 on when to use each action and which arguments are required (e.g., 'cell_ref: Required for "value", "precedents", and "dependents"'). It implies this is the go-to tool for formula inspection, though it doesn't explicitly name alternatives or exclusions.

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

formula_writeA

Set, batch-set, fill or auto-sum formulas in cells.

Args: action: "set", "batch", "fill", or "auto_sum". - "set": requires cell_ref and formula (is_array optional, target_range optional). - "batch": requires formulas dict mapping cell_ref to formula string, e.g. {"A1": "=SUM(B1:B10)", "A2": "=AVERAGE(C1:C10)"}. - "fill": requires cell_ref (source) and target_range. - "auto_sum": requires cell_ref (destination) and optional source_range. file_path, sheet_name: Workbook and sheet to modify. is_array: Whether the formula is an array formula. target_range, formulas, source_range: Operation-specific params.

Returns: str | dict: Success message or batch result.

Notes: - Writing formulas mutates the workbook. fill uses formula translation utilities; verify absolute/relative reference behaviour.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
formulaNo
cell_refNo
formulasNo
is_arrayNo
file_pathYes
sheet_nameYes
source_rangeNo
target_rangeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It explicitly warns 'Writing formulas mutates the workbook' and notes that 'fill' uses formula translation utilities, advising verification of absolute/relative reference behavior. This provides meaningful behavioral context beyond the schema, though it omits details like error conditions or permissions.

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 well-structured with clear sections (Args, Returns, Notes) and a concise bulleted action list. The only minor redundancy is the final line listing operation-specific params, which repeats earlier details, but overall the text is efficient and front-loaded with the purpose.

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 (9 params, 4 operation modes, output schema), the description covers operation semantics, return types, the mutation side effect, and a caveat about fill behavior. It does not address error handling or permission requirements, but the presence of an output schema lessens the need to explain return values, making it reasonably complete.

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?

Despite 0% schema description coverage, the description explains every parameter's role, includes a concrete example for the 'formulas' dict, and specifies operation-specific parameter requirements. This fully compensates for the schema's lack of descriptions, adding meaning beyond the 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 opens with 'Set, batch-set, fill or auto-sum formulas in cells', clearly stating the verb and resource with specific operations. This distinguishes it from sibling tools like formula_audit and write_cells, which serve 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 Guidelines4/5

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

The Args section provides detailed per-action requirements (e.g., 'set' requires cell_ref and formula), offering clear context on when to use each operation. However, it does not explicitly mention alternative sibling tools or exclusions, so the guidance stops short of full when-to-use versus alternatives.

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

get_sheet_summaryA
Read-only

Return a brief summary of a sheet: header row, used range, row/column counts and detected headers.

Args: file_path: Workbook path. sheet_name: Worksheet to summarise.

Returns: SheetSummary: Pydantic model with summary fields.

Notes: - Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
sheet_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYesName of the worksheet.
headersYesColumn header values from the first row.
col_countYesTotal number of used columns.
row_countYesTotal number of used rows.
used_rangeYesUsed cell range in A1 notation, e.g. 'A1:D10'.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true and the description explicitly states 'Read-only', so there is no contradiction. The description adds a useful list of output contents, but it does not disclose further behavioral details such as error behavior, header-detection heuristics, or file-path restrictions.

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 compact and front-loaded with a one-sentence purpose. The Args/Returns/Notes structure is clean and each sentence contributes necessary information, with no filler or redundant detail.

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 the low complexity, presence of an output schema, and a read-only annotation, the description is complete enough for an agent to understand what the tool does and what arguments it needs. It fully specifies the two required parameters and the general nature of the return value, so no critical information is missing.

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?

Because the input schema has 0% description coverage, the description carries the full burden for parameter semantics. The Args section clearly maps file_path to 'Workbook path' and sheet_name to 'Worksheet to summarise', adding meaning beyond the bare field names. This is sufficient for the simple two-parameter interface.

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 opens with a specific verb ('Return') and a clear resource ('a sheet'), enumerating the exact summary elements: header row, used range, row/column counts, and detected headers. This makes the tool's function clear and generally distinct from metadata tools like get_workbook_metadata, though it does not explicitly name sibling tools.

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 versus alternatives such as profile_data, get_workbook_metadata, or column_statistics. There are no exclusions, prerequisites, or context cues beyond the tool's intrinsic purpose, so the agent receives minimal selection support.

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

get_workbook_metadataA
Read-only

Return workbook metadata including sheet names, active sheet, dimensions, and named ranges.

Args: file_path: Path to the workbook to inspect.

Returns: WorkbookMetadata: Pydantic model containing sheet list, active sheet, named ranges, and other metadata.

Notes: - Read-only operation. Underlying implementation may use a lightweight reader for speed.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
sheetsYesDimensional info for each sheet.
file_pathYesAbsolute path to the workbook file.
active_sheetYesName of the currently active sheet.
named_rangesYesNamed ranges defined in the workbook.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, and the description reinforces this with 'Read-only operation.' It adds a minor behavioral detail about a possible lightweight reader for speed, but does not disclose error behavior, file-type limitations, or any other side effects. With annotations already covering the read-only nature, the description adds limited but non-trivial 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 well-structured with a one-line summary, Args, Returns, and Notes sections. It is mostly efficient, though there is some redundancy between the opening line and the Returns section both listing sheet names, active sheet, and named ranges.

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-only metadata tool with one parameter and an output schema, the description covers purpose, parameter, return model, and read-only behavior. It lacks guidance on when to use it relative to sibling tools, but the structure and annotations make it sufficiently complete 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?

There is only one parameter, and the description's 'Args' section restates what the schema shows ('file_path') with a basic explanation ('Path to the workbook to inspect'). It does not add details about accepted file formats, path handling, size limits, or remote paths. Since schema coverage is low, the description should compensate more but barely meets a minimum viable 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 starts with a specific verb-resource pair ('Return workbook metadata') and enumerates concrete contents (sheet names, active sheet, dimensions, named ranges). This clearly distinguishes it from siblings like get_sheet_summary (which is sheet-focused) and doc_properties (which likely covers document-level properties).

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 gives no guidance on when to choose this tool over alternatives, nor does it state exclusions or prerequisites. There is no mention of use cases, fallback tools, or contexts where this tool is not appropriate.

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

goal_seekA

Find a variable cell value that makes an expression evaluate to a target and write the result.

Args: file_path: Workbook path. sheet_name: Worksheet containing the expression. variable_cell: Cell reference to adjust (e.g. "B2"). expression: Arithmetic expression referencing worksheet cells (string). target_value: Numeric target value for the expression. initial_value: Starting guess for the solver. tolerance: Convergence tolerance. max_iterations: Maximum solver iterations.

Returns: dict: Result with solved value, status, and iterations used.

Notes: - Destructive: writes the solved value back to the workbook. - Recommend adding a short example expression in docs.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
toleranceNo
expressionYes
sheet_nameYes
target_valueYes
initial_valueNo
variable_cellYes
max_iterationsNo

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It explicitly states that the tool is destructive, writes the solved value back to the workbook, and returns a dict with status and iterations. This is a strong disclosure, though it could also mention reversibility or side effects on existing formulas.

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 well-structured with a front-loaded summary, then Args, Returns, and Notes sections. However, the final note 'Recommend adding a short example expression in docs' is meta-commentary that does not help the agent invoke the tool and could be omitted.

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 complex tool with 8 parameters and no output schema, the description covers each parameter, states the return value, and highlights destructive behavior. It lacks a concrete example expression and doesn't address error cases, but for the core invocation it is reasonably complete.

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 schema has zero description coverage, but the description's Args section provides concise, meaningful explanations for all 8 parameters (e.g., 'expression: Arithmetic expression referencing worksheet cells'). This fully compensates for the schema's silence.

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 opens with a specific action: 'Find a variable cell value that makes an expression evaluate to a target and write the result.' This clearly states the tool's purpose, distinguishes it from broader optimizers like run_solver, and includes the resource it operates on (a workbook cell).

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?

There is no guidance on when to use this tool over alternatives like run_solver or break_even_analysis. The notes mention destructive behavior but do not provide context for tool selection or exclusion criteria.

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

insert_imageA

Insert an image into a worksheet anchored at a target cell.

Args: file_path: Workbook path to modify. sheet: Worksheet name. image_path: Path to image (PNG/JPG/GIF). cell: Anchor cell where image is placed. width: Optional width in Excel units. height: Optional height in Excel units.

Returns: dict: Metadata about the inserted image (anchor, size, file used).

Notes: - Mutates workbook and depends on Pillow. Document supported image formats and sizing behaviour.

ParametersJSON Schema
NameRequiredDescriptionDefault
cellYes
sheetYes
widthNo
heightNo
file_pathYes
image_pathYes

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 carries the transparency burden. It discloses that the tool mutates the workbook, depends on Pillow, supports PNG/JPG/GIF, and returns metadata. However, it omits details like how sizing works, whether images are replaced, and error behavior. The note "Document supported image formats and sizing behaviour" is a placeholder, not actual behavioral documentation.

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 organized with sections for Args, Returns, and Notes, making it scannable. The main purpose is front-loaded. The Notes section includes a meta-instruction to "Document supported image formats and sizing behaviour," which is not useful to the agent and could be considered filler, but overall the length is appropriate.

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 tool has 6 parameters, no annotations, and no output schema, so the description is the sole reference. It covers the basic use case, parameter meanings, return type, and a side effect (mutation). However, it lacks details on image resizing, how the anchor cell is interpreted, and failure modes, leaving gaps that the placeholder note explicitly acknowledges.

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 the description must compensate. The Args section explains each parameter, adding value such as "Optional width in Excel units" and "Path to image (PNG/JPG/GIF)." This goes beyond the raw schema, clarifying optional status and units, though it does not fully elaborate on all edge cases.

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 begins with a clear, specific statement: "Insert an image into a worksheet anchored at a target cell." This identifies the action (insert), the resource (worksheet image), and the key detail (anchored at a cell), which distinguishes it from siblings like chart or 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 when to use the tool (when inserting an image) but does not explicitly contrast it with alternatives such as chart, hyperlink, or comment. It lacks exclusions or specific scenarios, yet the purpose is clear enough for an agent to infer basic usage.

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

insert_subtotalsA

Insert SUBTOTAL formula rows after each group in a sorted sheet.

Args: file_path: Workbook path. sheet_name: Worksheet name. group_col: Column used to group rows. value_col: Column to subtotal. subtotal_func: Excel subtotal function code (9=SUM by default). include_grand_total: Whether to append a grand total row.

Returns: dict: Summary including ranges where subtotals were inserted.

Notes: - Destructive: modifies the sheet structure and inserts new rows.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
group_colYes
value_colYes
sheet_nameYes
subtotal_funcNo
include_grand_totalNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly notes that the tool is destructive, modifies the sheet structure, and inserts new rows, and it describes the return format. This covers key concerns, though it does not mention error handling or side effects beyond structural changes.

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 with a one-sentence purpose followed by clear Args, Returns, and Notes sections. It is concise, avoids redundancy, and every line 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?

The description covers all parameters, notes destructiveness, and describes the return value, providing a solid basis for invocation. However, some details remain unspecified, such as the exact format for group_col/value_col and the full list of subtotal_func codes, leaving minor gaps.

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%, making the description's parameter explanations essential. It provides concise but meaningful definitions for all six parameters, including the default for subtotal_func and the purpose of include_grand_total, adding 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 tool inserts SUBTOTAL formula rows after each group in a sorted sheet, providing a specific verb, resource, and scope. This distinguishes it from sibling aggregation tools that may not modify the sheet structure.

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 indicates the need for a sorted sheet as a precondition, but does not provide explicit guidance on when to use this tool versus alternatives like aggregate_data or column_statistics. No exclusions or alternative recommendations are given, leaving usage to inference.

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

loan_amortizationA

Generate a loan amortization schedule for given principal, rate and term.

Args: principal: Loan principal amount. annual_rate: Annual interest rate (fractional, e.g. 0.05 for 5%). years: Term in years. payments_per_year: Payment frequency (default 12).

Returns: dict: Schedule rows and totals including payment amount, interest, principal breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearsYes
principalYes
annual_rateYes
payments_per_yearNo

TDQS

A4.3/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 the return shape ('dict: Schedule rows and totals including payment amount, interest, principal breakdown') and parameter format (e.g., annual_rate is fractional). However, it omits assumptions like payment timing or rounding, which are small gaps for a calculation 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 compact and well-organized: a one-sentence summary, an Args block, and a Returns block. Every sentence contributes valuable information without 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?

The tool is moderately complex, and the description explains the return value at a high level but not the exact structure of the schedule rows. Since there is no output schema, a bit more detail would improve completeness, but the core input/output semantics are adequately covered.

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%, but the description fully compensates by explaining each parameter: principal amount, annual rate as fractional, term in years, and payment frequency default. This adds critical meaning beyond raw schema 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 clearly states the tool's function: 'Generate a loan amortization schedule for given principal, rate and term.' This is a specific verb+resource combination and distinguishes it from sibling financial tools like dcf_analysis or break_even_analysis.

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 a loan amortization schedule is needed, but provides no explicit guidance on when to prefer this over alternatives or any exclusions. It simply states what the tool does without contextualizing alternatives.

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

merge_datasetsA

Join two sheets within the workbook similar to SQL join semantics.

Args: file_path: Path to workbook. sheet1, sheet2: Names of the two sheets to join. join_key: Column name(s) common to both sheets (shorthand for left_on/right_on). how: One of "left", "right", "inner", "outer". output_sheet: Optional sheet name to write merged results. left_on, right_on: Optional explicit join keys for differently named columns.

Returns: dict: Key counts and output information.

ParametersJSON Schema
NameRequiredDescriptionDefault
howNoleft
sheet1Yes
sheet2Yes
left_onNo
join_keyNo
right_onNo
file_pathYes
output_sheetNo

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that output_sheet optionally writes merged results and describes the return type, but does not mention safety, side effects on source sheets, or permission requirements.

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 with a concise one-line summary, a clear Args block, and a Returns section. It is appropriately sized for an 8-parameter tool, with each parameter explanation earning 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 complexity (8 params, no output schema, no annotations), the description covers parameter semantics and return info well. However, it falls short on detailing the exact structure of the returned dict and potential side effects of writing output_sheet, which would make it fully complete.

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?

All 8 parameters are explicitly explained in the Args section, providing meaning beyond the schema. Since schema description coverage is 0%, this full explanation is essential and well done, covering defaults and the distinction between join_key and left_on/right_on.

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 'joins two sheets within the workbook similar to SQL join semantics', using a specific verb and resource. It conveys the core operation effectively, but does not explicitly distinguish it from sibling tools like vlookup_helper or aggregate_data.

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 SQL join semantics analogy implies a suitable use case, but the description does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention exclusions or prerequisites.

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

multi_fileB

Perform cross-workbook operations: aggregate, filter, validate schema consistency, compare two workbooks.

Args: action: "aggregate", "filter", "validate", or "compare". - "aggregate": requires file_paths and column; returns aggregated metric. - "filter": requires file_paths, column, operator, value; returns filtered rows or writes to output_file. - "validate": requires file_paths and key_column; checks schema/consistency across files. - "compare": requires file_a and file_b; returns diff summary and optionally writes a report. file_paths, file_a, file_b: File list / pair for relevant actions. column, operation, operator, value: Parameters for aggregation/filtering. output_file: Optional path to write the result.

Returns: dict: Operation-specific result (e.g. aggregation numbers, diffs, validation errors).

Notes: - When output_file is provided operations may write new files — document overwrite policy.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueNo
actionYes
columnNo
file_aNo
file_bNo
operatorNo
operationNosum
file_pathsNo
header_rowNo
key_columnNo
sheet_nameNoSheet1
output_fileNo
sheet_name_bNo
check_columnsNo
compare_valuesNo
compare_formulasNo

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 must carry the full transparency burden. It states that operations 'may write new files' when output_file is provided, but then says 'document overwrite policy' instead of actually documenting it, and it omits auth, error, or file-state details. The generic return description does not disclose behavioral nuances for each action.

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 well-structured with an opening purpose sentence, action bullets, returns, and notes, making it easy to scan. The only real waste is the meta-instruction 'document overwrite policy,' which is not user-facing and adds no agent 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?

For a 16-parameter, four-action tool with no annotations and no output schema, this description is insufficient. It gives a good high-level map of actions but lacks key parameter semantics, overwrite behavior, and precise return structures, so an agent would still need to guess or inspect examples 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?

With 0% schema description coverage, the description must compensate for all 16 parameters, but it only explains action-level requirements and loosely mentions 'column, operation, operator, value.' It leaves crucial parameters like header_row, sheet_name, sheet_name_b, check_columns, compare_values, and compare_formulas effectively unexplained, making precise invocation difficult.

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 first sentence uses specific verbs and resources: 'aggregate, filter, validate schema consistency, compare two workbooks,' clearly distinguishing it from single-workbook siblings like filter_data_advanced and aggregate_data. Each action is then briefly explained with its own 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 explicit per-action required parameters ('aggregate requires file_paths and column', 'compare requires file_a and file_b'), giving clear conditional usage guidance. It lacks explicit alternatives or exclusions relative to sibling tools, but the cross-workbook framing supplies enough context for selection.

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

named_rangeA

List, create, delete, or update named ranges within a workbook.

Args: action: "list", "create", "delete", or "update". file_path: Workbook path. name: Named range name for create/delete/update. destination: Destination range string for create. scope: "workbook" or sheet-scoped identifier. new_destination: New range for update.

Returns: list[NamedRangeInfo] | str

Notes: - Creating/updating named ranges mutates workbook metadata but typically does not alter cell values.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
scopeNoworkbook
actionYes
file_pathYes
destinationNo
new_destinationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description correctly discloses a key behavioral trait: creating or updating named ranges mutates workbook metadata but typically does not alter cell values. This is useful safety-relevant context, though it does not detail every side effect or permission requirement.

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 compact and well-organized: a one-line purpose statement, a parameter list, a return-type line, and a single note about mutation behavior. No sentence is wasted, and the most important action/resource information is front-loaded.

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 six-parameter multi-action tool, the description covers the action dispatch, parameter usage, return type, and a meaningful side-effect note. The presence of an output schema reduces the need to document return structure, but the description could be slightly richer on optional parameter dependencies and edge cases.

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%, but the Args section compensates by explaining each parameter's role and linking parameters to specific actions (e.g., destination for create, new_destination for update). It adds meaning beyond the schema, though it does not fully specify range-string syntax or scope identifier formats.

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 opens with 'List, create, delete, or update named ranges within a workbook,' using specific action verbs and naming the exact resource. This clearly differentiates the tool from sibling spreadsheet tools by focusing on named-range metadata rather than cell values or formatting.

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 by enumerating the supported actions and noting that create/update alter workbook metadata rather than cell values. It does not explicitly name alternative tools or state when not to use it, but the action-oriented parameter explanations make the intended use unambiguous.

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

parse_date_columnA
Destructive

Parse varying date formats in a column and write normalized results to an output column.

Args: file_path: Workbook path. sheet_name: Worksheet name. column: Column to parse. output_column: Optional target column; if omitted, overwrites column. output_format: Strftime format for normalized output. dayfirst: Whether to parse day-first dates. header_row: 1-based header index.

Returns: dict: Summary including number of parsed rows and parse errors.

Notes: - Destructive by default when output_column targets existing column.

ParametersJSON Schema
NameRequiredDescriptionDefault
columnYes
dayfirstNo
file_pathYes
header_rowNo
sheet_nameYes
output_columnNo
output_formatNo%Y-%m-%d

TDQS

A4.2/5.0
Behavior4/5

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

The notes explicitly disclose that the operation is destructive by default when targeting an existing column, and that omitting output_column overwrites the original column. This adds behavioral context beyond the destructiveHint annotation, such as the specific condition and the return summary.

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 front-loaded with a clear summary, followed by organized Args, Returns, and Notes sections. Every line contributes useful information with no redundancy or 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?

The description covers the tool's purpose, parameters, return value, and destructive behavior. This is sufficiently complete for a tool with 7 parameters and no output schema, though it could include an example or supported formats.

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 Args section provides brief descriptions for all seven parameters, which is crucial given the 0% schema description coverage. It clarifies the meaning of output_column, output_format, dayfirst, and header_row, though some definitions are terse.

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 first sentence clearly states the tool parses varying date formats in a column and writes normalized results to an output column. This specific verb+resource description distinguishes it from sibling tools like split_column or data_cleaner.

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 when-to-use guidance or alternatives are provided. The description implies its use for normalizing dates but does not contrast with other column/data tools, leaving usage to be inferred from the purpose.

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

profile_dataA
Read-only

Produce a data profile for a sheet or range listing types, null counts, unique counts and samples.

Args: file_path: Workbook path. sheet: Optional sheet name. data_range: Optional range to restrict profiling.

Returns: dict: Per-column profile metadata.

Notes: - Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheetNo
file_pathYes
data_rangeNo

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, and the description only repeats 'Read-only' without adding new behavioral context. No side effects, permissions, or performance characteristics are disclosed beyond what annotations already convey.

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 front-loaded with a one-sentence summary, followed by clearly labeled Args, Returns, and Notes sections. Every sentence serves a purpose, with no redundancy or 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?

The description covers purpose, parameters, return type, and read-only nature, sufficient for a simple tool. However, it lacks details on the exact structure of the returned dict and how to specify the range, but given the tool's simplicity, it is mostly 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 schema description coverage at 0%, the description compensates by explaining each parameter: file_path as workbook path, sheet as optional sheet name, and data_range as optional range restriction. This gives meaning beyond the bare schema titles.

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 produces a data profile for a sheet or range, listing types, null counts, unique counts, and samples. This specific verb+resource+output makes its purpose unambiguous and distinguishes it from sibling analytics tools.

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 versus alternatives like column_statistics or value_counts. It does not mention prerequisites, exclusions, or alternative tools. The usage is only implied by the definition.

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

protectionA

Sheet and workbook protection utilities.

Args: action: One of "protect_sheet", "unprotect_sheet", "protect_cells", "protect_workbook", "unprotect_workbook". file_path: Workbook path. sheet_name: Sheet name for sheet-scoped operations. password: Optional password string used for protection/unprotection. locked_range: Range to lock for "protect_cells". unlocked_ranges: List of ranges allowed for edits. allow_*: Flags controlling allowed operations on protected sheets.

Returns: str: Result message.

Notes: - Protect/unprotect modify workbook security. Warn users about lost passwords.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
passwordNo
file_pathYes
allow_sortNo
sheet_nameNo
allow_filterNo
lock_windowsNo
locked_rangeNo
lock_structureNo
unlocked_rangesNo
allow_delete_rowsNo
allow_insert_rowsNo
allow_delete_columnsNo
allow_insert_columnsNo
allow_formatting_rowsNo
allow_formatting_cellsNo
allow_formatting_columnsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that protect/unprotect modify workbook security and warns about lost passwords. However, it omits specific side effects like irreversible lockouts, interaction with other operations, and the fact that protecting cells may require sheet protection. The note is a good start but incomplete.

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?

Structured with Intro, Args, Returns, and Notes. Each sentence adds value with no fluff. Parameters are grouped logically, and the note about password warning is useful. It is a model of concise, well-organized documentation.

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 17 parameters, no annotations, and an output schema, the description provides a return type and basic parameter semantics. It lacks important interaction details, such as how protect_cells relates to sheet protection, the meaning of lock_structure/lock_windows, and the implications of optional passwords. It is sufficient for basic use 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?

Schema description coverage is 0%, so the description must compensate. It does so by listing each parameter in Args with concise semantics: action enum values, file_path purpose, sheet_name scope, password optionality, locked_range/unlocked_ranges, and allow_* as flags. It misses lock_windows and lock_structure, and doesn't detail specific allow_* flags, but overall it adds 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?

Description clearly identifies the tool as 'Sheet and workbook protection utilities' and lists five specific actions (protect_sheet, unprotect_sheet, protect_cells, protect_workbook, unprotect_workbook). This makes the purpose unambiguous and distinguishes it from sibling tools like worksheet_structure or format_cells.

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 through its action list and notes, but does not explicitly state when to use this tool versus alternatives. It does provide a clear caution: 'Protect/unprotect modify workbook security. Warn users about lost passwords.' That is useful guidance, though no explicit exclusions or alternative tool references are given.

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

read_cellsA
Read-only

Read cell data from a worksheet.

Args: mode: One of "single", "range", or "chunked". Determines the behaviour and required parameters. - "single": returns a single cell value. Requires cell_ref. - "range": returns a rectangular range. Requires start_cell and end_cell. - "chunked": returns a chunked reader result for large sheets. Optional: start_row, chunk_size. file_path: Path to the workbook (validated by utils). sheet_name: Worksheet name. cell_ref: Cell reference for single-cell reads (e.g. "A1"). start_cell: Top-left cell for range reads. end_cell: Bottom-right cell for range reads. include_formula: If True, include formula text when available. include_metadata: If True, include additional metadata (styles, comment presence, etc.). show_formula: For range reads, include formulas instead of values when True. show_style: For range reads, include style information when True. output_format: Format for range output; typically "json". max_cells: Maximum cells to return for range reads (to avoid huge payloads). start_row: For chunked reads, starting row index (0-based). chunk_size: Number of rows per chunk for chunked reads.

Returns: dict or ChunkReadResult: Single value, range payload, or chunked reader object depending on mode.

Raises: ValueError: If required parameters for the chosen mode are missing or mode is unknown.

Notes: - Read-only: this function only reads workbook data and should not mutate files. - Dispatch mapping: "single"→tools.cell_ops.read_cell, "range"→tools.cell_ops.read_range, "chunked"→tools.cell_ops.read_file_chunked.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
cell_refNo
end_cellNo
file_pathYes
max_cellsNo
start_rowNo
chunk_sizeNo
sheet_nameYes
show_styleNo
start_cellNo
show_formulaNo
output_formatNojson
include_formulaNo
include_metadataNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description explicitly states 'Read-only: this function only reads workbook data and should not mutate files.' It also discloses the return type (dict or ChunkReadResult), error conditions (ValueError for missing/invalid mode), and internal dispatch mapping, which provides substantial 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.

Conciseness5/5

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

The description is longer than average but well-structured with clear sections (Args, Returns, Raises, Notes) and bullet-style formatting. Every sentence adds functional value, and the opening line front-loads the core purpose. The length is proportionate to the tool's 14-parameter complexity.

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 the parameter count (14), multiple modes, and presence of an output schema, the description fully covers usage, edge cases, and behavior. It includes format options, safety notes, error handling, and return type expectations. No critical contextual gaps are apparent.

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 carries the full burden of explaining parameters. It does so thoroughly, defining each of the 14 parameters, their purpose, and their mode-specific applicability (e.g., cell_ref for single reads, start_row/chunk_size for chunked reads). This fully compensates for the schema's lack of 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 opens with a specific verb and resource: 'Read cell data from a worksheet.' It then clearly enumerates the three modes (single, range, chunked) and their distinct outputs, which distinguishes it from sibling tools like write_cells, clear_range, and get_sheet_summary.

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 detailed mode-based guidance, specifying exactly which parameters are required for each behavior (e.g., 'single' requires cell_ref; 'range' requires start_cell and end_cell). It also advises chunked mode for large sheets. However, it does not explicitly name alternative sibling tools or state when not to use this tool, so it falls short of full alternative comparison.

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

refresh_pivot_tableA

Refresh a previously created pivot table by re-running its stored definition.

Args: file_path: Workbook path containing stored pivot definitions. output_sheet: Name of the pivot output sheet to refresh. source_file_path, source_sheet: Optional explicit sources to override stored sources.

Returns: dict: Summary of refresh results.

Notes: - Mutates the workbook by overwriting the pivot output area.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
output_sheetYes
source_sheetNo
source_file_pathNo

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description takes on the responsibility of disclosing side effects. It explicitly warns 'Mutates the workbook by overwriting the pivot output area,' which is crucial behavioral information. It also explains that it re-runs a stored definition, giving insight into the internal process. It does not mention error states or permission requirements, but the key mutation risk is covered.

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 compact and well-structured. It begins with a clear one-sentence summary, then breaks down args, returns, and notes in separate sections. Every line adds value, with no redundant or filler text. The mutation warning is placed appropriately in a Note, ensuring it is noticed without cluttering the main 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 the tool mutates data and has no annotations or output schema, the description provides a solid foundation by covering the purpose, parameters, return type, and side effects. It does not describe what happens in error scenarios (e.g., if the pivot definition is missing) or how the return summary is structured, but for the average agent invocation this is sufficient. The presence of sibling tools like create_pivot_table provides additional context, though the description itself doesn't reference them.

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 0% description coverage, so the description must compensate. It does this well by listing each parameter in the Args section with a clear one-line explanation (e.g., 'file_path: Workbook path containing stored pivot definitions'). This adds meaning beyond the bare schema properties, though it does not go into exhaustive detail about default behaviors or edge cases.

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 ('refresh') with a specific resource ('previously created pivot table'), clearly distinguishing it from creation tools like create_pivot_table. It also clarifies the action ('re-running its stored definition'), leaving no ambiguity about the tool's 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?

The description states the tool is for refreshing a previously created pivot table, implying it should not be used for creation. It also mentions optional source overrides, giving context for when those might be used. However, it does not explicitly name alternatives or state when not to use this tool, so it does not fully earn a 5.

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

release_fileA
Destructive

Release a session file and delete it from the server.

Call this when you are done with a file to free server disk space.

Args: session_id: The session_id returned by upload_file.

Returns: dict: A mapping containing: - success (bool): Whether the file was successfully released. - message (str): Human-readable result description.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds valuable context by specifying the deletion target ('from the server') and the consequence ('free server disk space'), which goes beyond the generic destructive hint. The return value disclosure also aids 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 concise and well-structured: a one-sentence summary, a usage guideline, an args section, and a returns section. Every sentence adds value, and the format is easy to parse.

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?

Despite having no output schema and only one parameter, the description covers all essential aspects: what the tool does, when to use it, how to get the parameter, and what the return value will be. This is complete for a simple, single-purpose 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?

The schema only labels the parameter 'session_id' with a type of string. The description enriches this by explaining that it is 'The session_id returned by upload_file,' which is critical for correct use. With 0% schema coverage, this fully compensates for the lack of built-in documentation.

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: 'Release a session file and delete it from the server.' The verb 'release' combined with the resource 'session file' and the deletion consequence precisely defines its purpose, distinguishing it from sibling tools like upload_file and download_file.

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 an explicit usage trigger: 'Call this when you are done with a file to free server disk space.' While it doesn't list when-not-to-use or alternative tools, the context of being done with a file is unambiguous and sufficient for most use cases.

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

run_exponential_smoothingB
Read-only

Apply exponential smoothing (simple/Holt/Holt-Winters) to a time series column.

Args: file_path: Workbook path. sheet_name: Worksheet name. column: Column to smooth. alpha: Smoothing factor for simple smoothing. new_column_name: Optional name for output column; if omitted, a generated name is used. header_row: 1-based header index. output_file: Optional file to write output. method: One of "simple", "holt", "holt_winters". seasonal_periods: Required for Holt-Winters. forecast_steps: Number of out-of-sample forecast steps to produce. smoothing_trend, smoothing_seasonal: Optional fixed smoothing parameters.

Returns: dict: Summary and references to output column/sheet.

Notes: - May modify workbook if output_file/new_column_name provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
alphaNo
columnYes
methodNosimple
file_pathYes
header_rowNo
sheet_nameYes
output_fileNo
forecast_stepsNo
new_column_nameNo
smoothing_trendNo
seasonal_periodsNo
smoothing_seasonalNo

TDQS

B3.2/5.0
Behavior1/5

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

The description contradicts the annotations: annotations declare readOnlyHint=true, but the description states 'May modify workbook if `output_file`/`new_column_name` provided.' This is a direct contradiction about the tool's side effects, making the behavioral guidance unreliable. No other behavioral details (e.g., permission needs, irreversible changes) are provided.

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 well-organized into Args, Returns, and Notes sections, with a clear one-sentence summary at the top. It is appropriately sized given the parameter count—each parameter gets a concise line. No redundant or filler content is present, though it is a bit long due to the 12 parameters.

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 main aspects: purpose, parameters, return value, and a note about potential modification. However, the contradiction with the readOnly annotation creates a significant trust gap, and it lacks guidance on when to use the tool, data prerequisites, or example values. Given the tool's complexity (12 parameters, no output schema), the description is competent but incomplete.

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 schema description coverage at 0%, the description fully compensates by listing all 12 parameters and providing brief but meaningful explanations (e.g., alpha is the smoothing factor, seasonal_periods is required for Holt-Winters, smoothing_trend/seasonal are optional fixed parameters). It adds context beyond the schema's titles, though it could specify allowed values or constraints in more 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 opens with a specific verb-resource statement: 'Apply exponential smoothing (simple/Holt/Holt-Winters) to a time series column.' This clearly identifies the tool's function and distinguishes it from sibling tools like run_regression or run_solver, which perform different statistical operations.

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 explicit guidance on when to use this tool versus alternatives. It does not mention any exclusions, prerequisites, or scenarios where another tool would be more appropriate. The only implied usage is the general 'apply exponential smoothing,' but there is no comparative advice.

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

run_regressionA
Read-only

Run an OLS linear regression and optionally write results to a sheet/file.

Args: file_path: Input workbook path. sheet_name: Worksheet containing data. y_column: Dependent variable column name. x_columns: List of independent variable column names. header_row: 1-based header row index. output_sheet: Optional sheet name for regression output. output_file: Optional path to write results to a separate file.

Returns: RegressionResult: Contains coefficients, R-squared, residuals and diagnostics.

Notes: - Read-only unless output_file/output_sheet is provided (then mutates workbook/creates file).

ParametersJSON Schema
NameRequiredDescriptionDefault
y_columnYes
file_pathYes
x_columnsYes
header_rowNo
sheet_nameYes
output_fileNo
output_sheetNoRegression Output

Output Schema

ParametersJSON Schema
NameRequiredDescription
equationNo
f_pvalueNo
p_valuesNo
ss_totalNo
t_valuesNo
interceptNo
r_squaredNo
std_errorsNo
f_statisticNo
predictionsNo
ss_residualNo
coefficientsNo
output_sheetNo
n_observationsNo
adjusted_r_squaredNo
confidence_intervalsNo

TDQS

A3.6/5.0
Behavior1/5

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

The annotations declare readOnlyHint=true, but the description explicitly states: 'Read-only unless `output_file`/`output_sheet` is provided (then mutates workbook/creates file).' This is a direct contradiction with the annotation, so the score must be 1 per the rubric.

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 with Args, Returns, and Notes sections. It is front-loaded with a clear summary sentence, and every line provides useful information without unnecessary elaboration. The Notes section is particularly efficient in conveying the conditional mutation behavior.

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?

The description covers the core purpose, all parameters, return value contents (coefficients, R-squared, residuals, diagnostics), and the key behavioral caveat about read-only vs. mutating. An output schema exists, so return-value depth is not required. However, it omits potential edge cases like existing output_sheet handling or data requirements, so it falls slightly short of a 5.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. The Args section provides a one-line semantic explanation for each of the 7 parameters (e.g., 'header_row: 1-based header row index', 'output_file: Optional path to write results to a separate file'). This adds clear meaning beyond the schema's type/title information, though some parameters like x_columns could use more 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 opens with a specific verb and resource: 'Run an OLS linear regression and optionally write results to a sheet/file.' This clearly distinguishes it from sibling tools like correlation_matrix or run_exponential_smoothing. The Args section further reinforces the exact inputs.

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 regression analysis but does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or prerequisites. It provides no comparison to similar analysis tools among the siblings, leaving the agent to infer the appropriate context.

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

run_solverA

Run constrained optimisation using scipy to minimise (or maximise) an objective built from cell references.

Args: file_path: Workbook path. sheet_name: Worksheet providing objective or referenced cells. objective_expression: Arithmetic expression using cell refs (e.g. "B2 * B3 - B4"). variable_cells: Mapping of cell_ref to bounds, e.g. {"B2": {"lower": 0, "upper": 100}}. constraints: Optional list of solver constraints, each with 'expression' and 'type' ('ineq' or 'eq'). maximize: If True, the objective is maximised instead of minimised. tolerance: Convergence tolerance. max_iterations: Maximum solver iterations.

Returns: SolverResult: Contains solution, status, and diagnostics.

Notes: - May write back solution values into the workbook depending on implementation — document write semantics.

ParametersJSON Schema
NameRequiredDescriptionDefault
maximizeNo
file_pathYes
toleranceNo
sheet_nameYes
constraintsNo
max_iterationsNo
variable_cellsYes
objective_expressionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
convergedYes
iterationsYes
found_valuesYes
objective_valueYes

TDQS

A3.5/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden of disclosing side effects. The Notes section says 'May write back solution values into the workbook depending on implementation', which is vague and fails to state definitive behavior, reversibility, or permission requirements. The phrase 'document write semantics' is an instruction rather than an actual disclosure.

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 well-structured with clear Args, Returns, and Notes sections, front-loaded with the core purpose. It avoids unnecessary prose and each bullet earns its place. The only minor issue is the meta-instruction in Notes ('document write semantics'), which is slightly awkward but not harmful.

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 an 8-parameter tool with nested objects and no annotations, the description covers the core workflow and all parameters. However, it leaves gaps around constraint semantics (e.g., whether 'ineq' means >=0), the exact write-back behavior, and details of the SolverResult fields. An output schema may cover some of this, but the write-back ambiguity is a significant omission.

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 compensate for all parameter meanings. The Args section does so thoroughly, listing all eight parameters with plain-language explanations and concrete examples for complex ones such as objective_expression ('B2 * B3 - B4') and variable_cells (mapping with bounds). Tolerance and max_iterations are explained just enough given their self-explanatory 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 begins with a specific verb and resource: 'Run constrained optimisation using scipy to minimise (or maximise) an objective built from cell references.' This clearly states what the tool does and differentiates it from sibling tools like goal_seek or run_regression. The inclusion of 'constrained optimisation' and 'cell references' gives a precise scope.

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 such as goal_seek or other solver/analysis tools. It lacks any 'use when'/'do not use' statements, prerequisites, or explicit exclusions. The description only explains parameters and leaves usage context entirely implicit.

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

scenarioA

Manage saved scenarios (what-if value sets) persisted in a hidden sheet.

Args: action: "add", "list", or "apply". - "add": requires name and cell_values — a nested dict mapping sheet name to {cell_ref: value}, e.g. {"Sheet1": {"A1": 100, "B2": 200}, "Sheet2": {"C3": "hello"}}. - "list": returns available scenarios. - "apply": requires name and will write stored cell values into the workbook (destructive). file_path: Workbook path. name: Scenario name for add/apply. cell_values: Nested dict mapping sheet_name → {cell_ref: scalar_value} for "add". description: Optional free-text description.

Returns: str | list[ScenarioInfo] | ScenarioApplyResult

Notes: - Scenarios are stored in a hidden _mcp_scenarios sheet — mention potential user-visible side-effects when users open the workbook.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
actionYes
file_pathYes
cell_valuesNo
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses that scenarios are stored in a hidden '_mcp_scenarios' sheet, that 'apply' is destructive, and mentions potential user-visible side-effects when opening the workbook. This is excellent coverage of 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.

Conciseness4/5

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

The description is well-structured with labeled sections (Args, Returns, Notes) and a clear hierarchy. While it is more verbose than simpler tools, the length is justified by the complexity of the action-dependent parameters and the need to explain the nested cell_values structure. No sentence is wasted.

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?

This is a multi-action tool with variable parameters, and the description covers all necessary context: the action enum, per-action requirements, return types, and side-effects. Given the complexity and the presence of an output schema, the description provides complete guidance for an agent to select and invoke the tool correctly.

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 schema has 0% description coverage, but the tool description thoroughly explains every parameter, including the nested structure of cell_values with a concrete example. It also clarifies the conditional requirements for name and cell_values based on action, going far beyond what the bare schema provides.

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 opens with 'Manage saved scenarios (what-if value sets) persisted in a hidden sheet,' which clearly identifies the tool's function and scope. It distinguishes itself from sibling tools by focusing on scenario persistence and manipulation, not on direct cell operations or analysis.

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 explicitly breaks down the three actions (add, list, apply) with their required arguments, which serves as clear usage guidance. It does not explicitly mention alternatives or when not to use the tool, but the action-based structure implies appropriate use cases.

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

sheet_managementA

Manage sheets within a workbook (rename, delete, copy, hide/unhide, set tab color, move order).

Args: action: One of "rename", "delete", "copy", "hide", "unhide", "tab_color", "move". - "rename": requires new_name. - "delete": deletes the sheet; destructive. - "copy": requires new_name for the copy. - "hide": hides the sheet (cannot hide all visible sheets). - "unhide": unhides the sheet. - "tab_color": requires color (6-char hex) to set or "000000" to clear. - "move": requires offset (int) to shift position. file_path: Workbook path. sheet_name: Target sheet name for the action. new_name: New name for rename/copy. color: Tab color hex string for "tab_color". offset: Position offset for "move" (positive = right).

Returns: str or dict: Operation result or metadata.

Raises: ValueError: When required arguments for an action are missing.

Notes: - Dispatch mapping: "rename"→tools.workbook.rename_sheet, "delete"→tools.workbook.delete_sheet, "copy"→tools.workbook.copy_sheet, "hide"→tools.workbook.hide_sheet, etc. - Deletions and moves are destructive operations and should be annotated in external docs and UIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNo
actionYes
offsetNo
new_nameNo
file_pathYes
sheet_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 carries the burden and does well: it flags delete as destructive, notes that hide cannot hide all visible sheets, explains tab_color '000000' clears the color, and defines move offset semantics. It adds actionable behavioral context beyond a simple 'manage sheets' statement, though it could mention side effects on formulas or undo options.

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 well-structured with a concise summary, numbered action details, and clear sections for returns, raises, and notes. It is appropriately sized for a multi-action tool, though the dispatch mapping in Notes is an internal implementation detail that is not essential for callers and adds minor bloat.

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 actions, 6 parameters) and the presence of an output schema, the description is quite complete: it covers required arguments per action, key constraints, and error behavior. It stops short of a 5 because it does not address edge cases like renaming to an existing name or whether delete can remove the last remaining sheet, but these are likely expected from 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?

Schema description coverage is 0%, so the description fully compensates by detailing exactly which parameters are needed for each action (e.g., new_name for rename/copy, color format for tab_color, offset semantics for move). It also explains the enum values and provides clear definitions for file_path and sheet_name, exceeding what the schema titles alone offer.

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 manages sheets within a workbook and enumerates all supported actions (rename, delete, copy, hide/unhide, set tab color, move order). This specific verb+resource framing distinguishes it from sibling tools that handle other aspects like worksheet structure or viewing.

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 clearly implies when to use this tool: whenever a sheet-level operation is needed. It provides per-action prerequisites and constraints, but does not explicitly mention alternatives or when not to use it. The lack of exclusions or alternative tool names keeps it just short of a 5.

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

sort_dataA

Sort worksheet rows by one or more columns and write back the result.

Args: file_path: Workbook path. sheet_name: Worksheet to sort. sort_by: List of sort descriptors, each with 'column' (str) and optional 'ascending' (bool, default True). column: Convenience single-column sort (deprecated in favour of sort_by). ascending: Boolean default sort order when column is used. has_header: Whether the sheet has a header row.

Returns: str: Result message.

Notes: - Destructive: overwrites sheet rows.

ParametersJSON Schema
NameRequiredDescriptionDefault
columnNo
sort_byNo
ascendingNo
file_pathYes
has_headerNo
sheet_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It explicitly warns 'Destructive: overwrites sheet rows' and states 'write back the result', giving clear behavioral transparency about the mutation. It does not mention permissions or side effects on formulas, but the destructive nature is disclosed.

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 with Args, Returns, and Notes sections. Every sentence adds value, and the format is easy to parse. It is appropriately sized for the tool's complexity.

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?

The description covers all necessary context: parameters, return type, and destructive behavior. An output schema is provided, so return values need no further explanation. The tool's complexity (multi-column sorting, deprecated parameter) is fully addressed.

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 no descriptions for top-level parameters (0% coverage), but the description's Args section comprehensively explains each parameter, including the nested structure of sort_by and the deprecation of column. This fully compensates 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 uses a specific verb ('Sort') and resource ('worksheet rows'), clearly distinguishing it from sibling tools like filter_data_advanced or aggregate_data. The purpose is unambiguous and directly states the operation.

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 the tool (when sorting worksheet rows is needed) but does not explicitly compare it to alternatives or mention conditions for exclusion. It provides no guidance on when to prefer this over other data manipulation tools.

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

split_columnA

Split a single text column into multiple columns using a delimiter.

Args: file_path: Path to workbook. sheet_name: Worksheet name. column: Column letter or header name to split. delimiter: Delimiter string (default ","). new_columns: Optional list of new column names. drop_original: If True, remove the original column after split. output_file: Optional path to write results instead of overwriting input. header_row: 1-based header row index.

Returns: dict: Summary of created columns and row counts.

Notes: - Destructive unless output_file is provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
columnYes
delimiterNo,
file_pathYes
header_rowNo
sheet_nameYes
new_columnsNo
output_fileNo
drop_originalNo

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description fully discloses the destructive nature ('Destructive unless output_file is provided') and explains the drop_original behavior. It also states the return value, covering the key 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?

The description is well-structured with Args, Returns, and Notes sections. It is concise, front-loaded with the main purpose, and every sentence adds necessary information without redundancy.

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 an 8-parameter tool with no annotations or output schema, the description provides complete context: all parameters, defaults, return value, and a critical destructiveness warning. No significant gaps remain.

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 schema has no parameter descriptions (0% coverage), but the description explains every parameter with a brief, meaningful definition (e.g., 'Optional list of new column names', '1-based header row index'). This fully compensates 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 states a specific action ('Split a single text column into multiple columns') with a clear resource ('text column') and method ('delimiter'). This distinguishes it from sibling tools like parse_date_column or unpivot_data.

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 on what the tool does (splitting a column by delimiter), implying when to use it. It does not explicitly mention alternatives or exclusions, but the usage context is evident from the description.

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

tableA

Create, list, resize, toggle totals, read data, or convert tables to ranges.

Args: action: "create", "list", "resize", "totals", "data", or "convert_to_range". file_path: Workbook path. sheet_name: Worksheet containing the table. table_name: Table name for operations that require it. data_range: Range to use when creating a table. style_name: Named table style for creation. new_range: New range for resize. show_totals: Bool for toggling totals row. column_totals: Dict mapping column name to aggregation function name (e.g. {"Revenue": "sum", "Quantity": "count"}). Valid functions: sum, count, average, max, min, countNums, stdDev, var, none.

Returns: str | list[TableInfo] | dict

Notes: - Table creation/resizing mutates workbook structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
file_pathYes
new_rangeNo
data_rangeNo
sheet_nameYes
style_nameNoTableStyleMedium9
table_nameNo
show_totalsNo
column_totalsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of disclosing side effects. It warns that creation/resizing mutates workbook structure, but other mutating actions like convert_to_range and toggling totals are not flagged. This is partial transparency but adds some value beyond the bare 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?

The description is compact and well-structured: a one-line summary, a clear Args list, a Returns line, and a note. No unnecessary words or repetition; every section 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 multi-action tool with nine parameters, the description covers all parameters, valid function values, and a mutation warning. It also has an output schema, so return values need not be detailed. Minor gaps remain, such as per-action return formats and edge cases, 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.

Parameters5/5

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

The Args block in the description thoroughly explains each parameter, including the valid aggregation functions for column_totals and the purpose of data_range, new_range, and show_totals. This compensates for the schema's zero description coverage, providing meaning that goes far beyond the raw 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 explicitly enumerates all supported actions (create, list, resize, toggle totals, read data, convert_to_range) tied to the 'table' resource. This is a specific verb+resource formulation that clearly distinguishes it from sibling tools like insert_subtotals or sort_data, which target different operations.

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 action list provides clear context for when the tool is appropriate, and the inclusion of multiple table-related operations implies it is the go-to tool for table management. However, it does not explicitly name alternatives or state when not to use it, so it stops short of full guidance.

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

time_value_calcC
Read-only

Perform a variety of time-value-of-money calculations and depreciation methods.

Args: operation: One of "fv", "pv", "nper", "rate", "depreciation", "irr". rate, nper, pmt, pv, fv, when, guess: Parameters depending on operation. cost, salvage, life, method, period: Parameters for depreciation operations. cash_flows: For IRR, list of floats.

Returns: dict: Operation-specific outputs (e.g. numeric answer, schedule, irr value).

Raises: ValueError: If required args for the selected operation are missing.

Notes: - Pure calculations except for methods that may write results when integrated into workbook workflows.

ParametersJSON Schema
NameRequiredDescriptionDefault
fvNo
pvNo
pmtNo
costNo
lifeNo
nperNo
rateNo
whenNoend
guessNo
methodNosln
periodNo
salvageNo
operationYes
cash_flowsNo

TDQS

C2.7/5.0
Behavior1/5

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

The annotations declare readOnlyHint=true, indicating the tool should be read-only. However, the description states 'except for methods that may write results when integrated into workbook workflows,' which suggests possible write side effects. This directly contradicts the readOnlyHint annotation. The description provides no further details about permissions, side effects, or what 'integrated into workbook workflows' means.

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 well-structured with clear sections for Args, Returns, Raises, and Notes, and opens with a concise one-sentence summary. It is not overly verbose, though the Args list somewhat duplicates the schema. The structure aids 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 the tool's complexity (14 parameters, 6 operations, no output schema), the description is insufficient for correct invocation. It does not specify required arguments per operation, output formats, or provide examples. The ambiguous write behavior further undermines completeness. The Raises section indicates errors but does not detail what is required.

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 Args section groups parameters by operation type (e.g., rate/nper/pmt/pv/fv for financial calculations, cost/salvage/life for depreciation, cash_flows for IRR), adding some meaning beyond the bare schema. However, it does not explain parameter defaults like when='end', guess=0.1, or method='sln', nor does it specify which parameters are required for each operation. Since schema description coverage is 0%, the description partially compensates but not fully.

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 performs time-value-of-money calculations and depreciation methods, listing specific operations like fv, pv, nper, rate, depreciation, and irr. This provides a specific verb+resource combination. However, it does not explicitly distinguish itself from sibling financial tools like loan_amortization or dcf_analysis, so it lacks full sibling differentiation.

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?

There is no guidance on when to use this tool versus alternatives such as loan_amortization or dcf_analysis. The description only states what it does and lists operations, but does not provide context on selection criteria or exclusions. The note about write behavior is not usage guidance.

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

transpose_rangeA

Transpose a source range (rows↔columns) and write starting at target_cell.

Args: file_path: Path to workbook. sheet_name: Target worksheet name (destination for transposed data). source_range: Range to transpose (on sheet_name by default). target_cell: Top-left cell for the transposed output. source_sheet: Optional source sheet name if different from sheet_name. paste_values_only: If True, paste only resolved values (no formulas).

Returns: dict: Summary including target range written and number of cells.

Notes: - Destructive: overwrites destination cells.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
sheet_nameYes
target_cellYes
source_rangeYes
source_sheetNo
paste_values_onlyNo

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description takes on full behavioral disclosure. It explicitly warns 'Destructive: overwrites destination cells' and explains the paste_values_only option. This provides critical safety and operational context beyond the 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?

The description is well-structured with Args, Returns, and Notes sections. Every sentence adds value, and the main purpose is front-loaded. It is appropriately sized for the tool's complexity.

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 6 parameters, no annotations, and no output schema, the description provides complete context: all parameters explained, return type documented, and destructive behavior disclosed. No critical information is missing.

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 fully explain parameters. It does so thoroughly, listing each argument with its meaning (e.g., source_sheet optional, paste_values_only behavior). This exceeds the minimal requirement and compensates for the schema's lack of 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's function: 'Transpose a source range (rows↔columns) and write starting at target_cell.' This specific verb+resource distinguishes it from sibling tools like copy_range or clear_range, which focus on different operations.

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 clearly implies when to use this tool (when a transpose is needed) and mentions the source sheet defaulting to sheet_name. However, it does not explicitly name alternative tools or provide exclusionary guidance, so it falls short of a 5.

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

unpivot_dataA

Melt (unpivot) wide-form data to long-form using id_vars and value_vars.

Args: file_path: Workbook path. sheet_name: Source sheet. id_vars: Columns to keep as identifiers. value_vars: Columns to melt into variable/value pairs. var_name: Name for the variable column. value_name: Name for the value column.

Returns: dict: Result summary and destination range if written.

ParametersJSON Schema
NameRequiredDescriptionDefault
id_varsYes
var_nameNoVariable
file_pathYes
sheet_nameYes
value_nameNoValue
value_varsYes

TDQS

A3.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'destination range if written' but does not clarify whether the tool modifies the workbook in place, creates a new sheet, or merely returns a range. This ambiguity is a significant gap 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 a clean docstring-style format with a one-sentence purpose followed by a concise parameter list and a return note. Every line adds value, and the main functionality is 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 core operation and parameters are explained, but important contextual details are missing: how the output is positioned (e.g., new sheet vs. overwrite), whether the operation is reversible, and example usage. Given the tool's complexity and lack of an output schema, the description could provide more implementation specifics.

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 descriptions for any of the 6 parameters, but the description provides a brief, meaningful explanation for each: file_path (Workbook path), sheet_name (Source sheet), id_vars (identifiers), value_vars (melt columns), var_name, and value_name. This compensates well 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's function with a specific verb ('Melt (unpivot)') and resource ('wide-form data to long-form'), and it distinguishes itself from sibling tools by referencing id_vars and value_vars directly. This is a precise, non-tautological 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 clear context on when to use the tool: when data needs to be reshaped from wide to long format. It does not explicitly list alternatives or exclusions, but the purpose is specific enough that a user can infer appropriate usage.

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

upload_fileA

Upload a file for server-side processing.

Accepts a base64-encoded file string or an HTTP/HTTPS URL. Returns a session_id and file_path that can be used with any other tool. The file is stored temporarily on the server and auto-deleted after 1 hour or when release_file is called.

Args: file_content: Base64-encoded file bytes OR an HTTP/HTTPS URL pointing to the file. filename: Filename hint used to determine the file extension (e.g. "data.xlsx", "report.csv").

Returns: dict: A mapping containing: - session_id (str): Opaque ID for this file session. - file_path (str): Server-side local path — use this as file_path in other tools. - message (str): Human-readable confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameNoworkbook.xlsx
file_contentYes

TDQS

A4.8/5.0
Behavior5/5

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

Even though annotations only say readOnlyHint=false and destructiveHint=false, the description adds substantial behavioral context: temporary server-side storage, auto-deletion after 1 hour, deletion via release_file, and a precise return mapping. This goes well beyond what annotations provide and does not contradict them.

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 front-loaded with the purpose, followed by concise Args and Returns sections. Every sentence contributes useful information, with no filler or repetition of schema details.

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?

With no output schema, the description compensates by explicitly listing the return keys (session_id, file_path, message) and their meanings. It covers input formats, temporary lifecycle, cross-tool usage, and cleanup, making the tool fully usable from the description alone.

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 schema has 0% description coverage, but the description fully compensates. It explains that file_content can be base64-encoded bytes or an HTTP/HTTPS URL, and that filename is a hint for determining the file extension (e.g., 'data.xlsx'). This adds clear semantics beyond the bare 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 opens with a clear verb and object: 'Upload a file for server-side processing.' It distinguishes this tool from its siblings (download_file, release_file, multi_file) by explicitly stating it accepts a base64 string or HTTP/HTTPS URL and returns a session_id and file_path for use with 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 Guidelines4/5

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

The description clearly implies when to use the tool: it is the entry point to get a session_id and file_path that 'can be used with any other tool.' It also mentions lifecycle details like 1-hour auto-deletion and release_file. However, it does not explicitly name alternative tools or state when not to use this tool, so it stops short of a 5.

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

value_countsA
Read-only

Return frequency counts for a column as counts or normalized proportions.

Args: file_path: Workbook path. sheet_name: Worksheet name. column: Column name to analyse. normalize: If True return proportions instead of raw counts. top_n: If provided, return only the top N values. dropna: Exclude nulls when True. has_header: Whether the sheet has a header row.

Returns: dict: {"column", "total_rows", "normalize", "counts": [{"value", "count"}, ...]}.

ParametersJSON Schema
NameRequiredDescriptionDefault
top_nNo
columnYes
dropnaNo
file_pathYes
normalizeNo
has_headerNo
sheet_nameYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true; the description goes further by documenting normalize behavior, top_n truncation, dropna exclusion, and the exact return dict structure. This gives the agent a clear picture of what to expect without contradicting the annotation.

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 formatted as a compact docstring with a one-line summary, an Args list, and a Returns section. No redundancy or filler; each parameter gets a single line of explanation.

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?

There is no output schema, but the description provides the exact return type and structure. It covers all parameters, defaults, and behaviors (e.g., normalize when True, dropna, top_n). For a moderately complex tool, this is complete.

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, but the Args section in the tool description explains every parameter (file_path, sheet_name, column, normalize, top_n, dropna, has_header), including defaults and meaning. This fully compensates for the missing schema descriptions.

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 opens with a specific verb ('Return frequency counts for a column') and clearly states the resource and options (normalize, top_n, dropna). It is unambiguous, but it does not explicitly differentiate from sibling statistics tools like column_statistics or profile_data, so it misses the top score.

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 explains what the tool does but provides no guidance on when to choose it over sibling tools such as column_statistics or aggregate_data. The use case is implied by the function name and description, but there are no explicit alternatives or exclusions.

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

vlookup_helperA
Read-only

Perform cross-file lookup akin to VLOOKUP with optional fuzzy matching.

Args: lookup_file: Workbook containing keys to look up. data_file: Workbook containing reference data. lookup_column: Column in lookup_file to match. data_key_column: Column in data_file to join on. data_return_columns: Columns from data_file to return. lookup_sheet, data_sheet: Sheet names. fuzzy: If True, perform fuzzy matching. fuzzy_threshold: Threshold for fuzzy confidence. output_file: Optional path to write augmented lookup results. header_row: 1-based header row index.

Returns: dict: Mapping rows to matched results and match scores.

Notes: - Read-only on inputs unless output_file is provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
fuzzyNo
data_fileYes
data_sheetNoSheet1
header_rowNo
lookup_fileYes
output_fileNo
lookup_sheetNoSheet1
lookup_columnYes
data_key_columnYes
fuzzy_thresholdNo
data_return_columnsYes

TDQS

A4.8/5.0
Behavior5/5

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

The Notes section discloses that inputs are read-only unless output_file is provided, refining the readOnlyHint annotation. It also describes the return value as a dict mapping rows to matched results and match scores, adding useful 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.

Conciseness5/5

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

The description uses a clear docstring structure (summary, Args, Returns, Notes) and is appropriately sized for the tool's complexity. Every section provides necessary information without redundancy.

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 tool with 11 parameters, no output schema, and only a readOnlyHint annotation, the description is comprehensive: it explains all parameters, the return format, and the conditional write behavior, making it fully actionable for an agent.

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%, but the description's Args section lists all 11 parameters with concise explanations (e.g., 'lookup_file: Workbook containing keys to look up'), fully compensating for the lack of schema-level 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 'Perform cross-file lookup akin to VLOOKUP with optional fuzzy matching,' which is a specific verb+resource (cross-file lookup) and distinguishes it from similar siblings like merge_datasets by referencing VLOOKUP semantics.

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 phrase 'akin to VLOOKUP' provides clear context for when to use this tool, implying a lookup/join operation. However, it does not explicitly mention alternatives or exclusions, which would merit a 5.

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

worksheet_printB

Configure print areas, page setup, print titles and manual page breaks.

Args: action: "set_print_area", "set_page_setup", "set_print_titles", "add_page_break", "remove_page_break". file_path, sheet_name: Workbook and worksheet. print_area, orientation, paper_size, fit_to_width, fit_to_height, title_rows, title_cols, row, col: params.

Returns: str: Result message.

Notes: - Mostly metadata changes to the sheet's print settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
colNo
rowNo
actionYes
file_pathYes
paper_sizeNo
print_areaNo
sheet_nameYes
title_colsNo
title_rowsNo
orientationNo
fit_to_widthNo
fit_to_heightNo

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?

With no annotations provided, the description carries the full burden. It does offer one behavioral insight: 'Mostly metadata changes to the sheet's print settings,' which hints at low risk. However, it does not explain side effects like whether the file is saved in-place, whether existing settings are overwritten, or how page break removal works. The 'Returns: str' note helps, but more detail on mutability and file impact would be needed for full 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 well-structured with a clear purpose sentence followed by Args, Returns, and Notes sections. It is reasonably concise, with the main redundancy being that the action enum is repeated in both the prose and the Args listing. No excessive detail or filler is present, and the first sentence front-loads the core functionality.

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 complexity (12 parameters, 5 actions, action-dependent arguments) and the absence of annotations, the description is not complete enough for correct invocation. It does not explain which parameters apply to which actions, expected value formats, or the effect on the file. The output is only a string, so that part is adequately covered, but the parameter and action semantics remain under-specified.

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 coverage is 0%, so the description must compensate for parameter meaning. It lists parameter names and groups them (e.g., 'file_path, sheet_name: Workbook and worksheet'), but it treats the remaining ones as just 'params' without defining formats, allowed values, or action-specific usage. For instance, it does not explain that print_area likely expects an A1-style range string or that row/col specify a page break location. This is insufficient for 12 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 starts with a specific verb and resource: 'Configure print areas, page setup, print titles and manual page breaks.' This clearly differentiates the tool from siblings like worksheet_view or worksheet_structure, as it focuses on print-related metadata. The action enum further specifies the exact operations supported, making the tool's purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies usage through the action list, but it does not explicitly state when to choose this tool over alternatives or mention exclusions. It provides context that this is for print settings, but there is no guidance on scenarios like 'use this when modifying print layout' or 'not for data editing.' The usefulness is implied rather than directly stated.

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

worksheet_structureB
Destructive

Perform row/column insert/delete, grouping, and size adjustments.

Args: action: One of insert/delete/group/ungroup/set_row_height/set_col_width. file_path: Workbook path. sheet_name: Worksheet name. row, col, count, start_row, end_row, start_col, end_col: Position arguments. outline_level, hidden, rows, cols_list, height, width: Operation-specific params.

Returns: str: Result message.

Notes: - Many actions are destructive (delete_rows/delete_cols) — document irreversible effects.

ParametersJSON Schema
NameRequiredDescriptionDefault
colNo
rowNo
rowsNo
countNo
widthNo
actionYes
heightNo
hiddenNo
end_colNo
end_rowNo
cols_listNo
file_pathYes
start_colNo
start_rowNo
sheet_nameYes
outline_levelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior4/5

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

The annotation destructiveHint=true already indicates destructive potential; the description adds value by specifying exactly which actions are destructive ('delete_rows/delete_cols') and advises documenting irreversible effects. This goes beyond the annotation and provides useful behavioral context. No contradiction exists.

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 and well-structured with an opening sentence, Args list, Returns note, and Notes section. It avoids unnecessary verbiage and makes key warning information easy to find. Some parameter details are vague, but the format itself is 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?

Despite a complex 16-parameter tool with no schema descriptions, the description provides only a list of actions and parameter names plus one warning. It fails to document action-specific parameter requirements, coordinate system, units for height/width, or side effects beyond deletion. The return type note is minimal. An agent would struggle to invoke this tool correctly without additional guidance.

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, but it only groups parameters into vague categories ('Position arguments', 'Operation-specific params') without explaining usage. It does not clarify whether `count` is required for inserts, how start/end ranges interact with `rows`, or what `cols_list` expects. The action enum is self-explanatory, but the 16-parameter space is largely unexplained.

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 'Perform row/column insert/delete, grouping, and size adjustments' with specific verbs and a clear resource (worksheet rows/columns). This distinguishes it from many siblings like format_cells or read_cells, though it doesn't explicitly name an alternative.

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; it simply lists actions. The description does not mention prerequisites, exclusions, or cases where a sibling tool would be more appropriate. Given the large sibling set, this is a significant gap.

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

worksheet_transferB

Cross-sheet and cross-workbook copy/merge/stack operations.

Args: action: "copy_range_across", "copy_sheet_across", "merge_workbooks", or "stack_sheets". file_path: Source workbook path (varies by action). source_sheet, source_range: Source identifiers for copy. target_sheet, target_start_cell: Destination identifiers. copy_values, copy_styles: Copy options. source_file, dest_file, dest_sheet_name: For copy_sheet_across. source_files, output_file, conflict_strategy: For merge_workbooks. sheet_names, dest_sheet, include_header, output_path: For stack_sheets.

Returns: str or dict: Result metadata.

Notes: - These operations can be expensive (many file opens) and destructive. Document conflict resolution strategies.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
dest_fileNo
file_pathNo
dest_sheetNo
copy_stylesNo
copy_valuesNo
output_fileNo
output_pathNo
sheet_namesNo
source_fileNo
source_filesNo
source_rangeNo
source_sheetNo
target_sheetNo
include_headerNo
dest_sheet_nameNo
conflict_strategyNorename
target_start_cellNoA1

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

With annotations providing only readOnlyHint=false, the description adds meaningful behavioral context by warning that operations are 'expensive (many file opens) and destructive' and advising to document conflict resolution strategies. However, it does not detail specific destructive side effects, file locking, or overwrite behavior.

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 well-structured with clear sections (Args, Returns, Notes) and a concise opening summary. The parameter list is long but necessary given 18 parameters, and each line communicates grouping information. No redundant filler sentences are present.

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 complexity (18 parameters, four distinct actions) and zero schema coverage, the description provides a broad overview but leaves gaps. It does not fully specify per-action workflows, expected return formats beyond 'str or dict', or how conflict_strategy behaves. The output schema exists but is not detailed in the description, so more context would be beneficial.

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 groups parameters by action (e.g., source_files/output_file/conflict_strategy for merge_workbooks) and explains which params apply to which operation. However, it lacks deeper semantics like allowed values for conflict_strategy, exact format for source_range, or behavior of copy_values/copy_styles.

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 that the tool performs cross-sheet and cross-workbook copy/merge/stack operations, and enumerates four specific actions (copy_range_across, copy_sheet_across, merge_workbooks, stack_sheets). It lacks an explicit distinction from sibling tools like copy_range or merge_datasets, but the action list provides concrete purpose.

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 offers no explicit guidance on when to use this tool versus alternatives such as copy_range or merge_datasets. It only notes that operations can be expensive and destructive, which is a warning rather than usage direction. There is no mention of preferred scenarios or exclusions.

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

worksheet_viewA

Toggle view-related settings such as freeze panes, auto-filter and gridlines.

Args: action: "freeze", "auto_filter", or "set_gridlines". file_path: Workbook path. sheet_name: Worksheet name. cell_ref: For freeze, the pane freeze cell (omit to unfreeze). cell_range: For auto_filter set/remove. remove: For auto_filter, remove filter when True. show: For set_gridlines, show/hide gridlines.

Returns: str: Result message.

Notes: - Usually non-destructive aside from toggling UI settings stored in workbook.

ParametersJSON Schema
NameRequiredDescriptionDefault
showNo
actionYes
removeNo
cell_refNo
file_pathYes
cell_rangeNo
sheet_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 carries the full burden of disclosure. It notes the tool is 'usually non-destructive aside from toggling UI settings stored in the workbook,' which discloses the write side effect and the non-destructive nature. It also explains the behavior for each action, but lacks detail on reversibility or 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?

The description is well-structured with an initial summary, an Args list, Returns, and Notes. It is front-loaded with purpose and every line provides necessary information without 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?

Given the tool has 7 parameters and 3 distinct actions, the description covers all actions and parameters, and specifies the return type. It lacks examples or error handling details, but these are not essential for a simple toggle tool, making it complete enough for effective use.

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 itself has no descriptions (0% coverage), so the description significantly compensates by explaining each parameter's role: action enum, file_path, sheet_name, cell_ref for freeze, cell_range for auto_filter, remove, and show. It adds practical meaning, though format details (e.g., cell range syntax) could be more explicit.

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 toggles view-related settings (freeze panes, auto-filter, gridlines), using a specific verb and resource. It distinguishes itself from sibling worksheet tools by focusing on view settings rather than structure, printing, or transfer.

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 lists the three actions and their parameters, implying when to use them (e.g., for freeze use cell_ref, for auto-filter use cell_range). However, it provides no explicit comparison to sibling tools or guidance on when not to use it, so usage context is only implied.

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

write_cellsA

Write data or operations to worksheet cells.

Args: mode: One of "single", "range", "series", "merge", or "unmerge". - "single": write a single cell. Requires cell_ref and value. - "range": write a 2D array starting at start_cell. Requires start_cell and data. - "series": fill a series from start_cell. Requires start_cell and count. - "merge": merge a cell range. Requires range_string. - "unmerge": unmerge a cell range. Requires range_string. file_path: Path to workbook to mutate. sheet_name: Target worksheet name. cell_ref: Single-cell reference for "single" and some formula operations. value: Value to write for single-cell writes. start_cell: Top-left cell for range/series writes. data: 2D array of values for "range" mode. series_type: Series type for "series" (e.g. "number"). count: Number of series entries to write (required for "series"). step: Increment for numeric series or string step expression. direction: "down" or "right" for series growth. start_value: Optional starting value for series. range_string: Range string for merge/unmerge (e.g. "A1:D1").

Returns: str or dict: Success message or structured result depending on operation.

Raises: ValueError: If required parameters for the chosen mode are missing or mode is unknown.

Notes: - This route mutates workbook files (destructive operations). - Dispatch mapping: "single"→tools.cell_ops.write_cell, "range"→tools.cell_ops.write_range, "series"→tools.cell_ops.fill_series, "merge"→tools.cell_ops.merge_cells, "unmerge"→tools.cell_ops.unmerge_cells. - Recommend adding short examples in the underlying tools for common series patterns.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
modeYes
stepNo
countNo
valueNo
cell_refNo
directionNodown
file_pathYes
sheet_nameYes
start_cellNo
series_typeNonumber
start_valueNo
range_stringNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description must carry transparency alone. It explicitly warns 'This route mutates workbook files (destructive operations)' and documents a ValueError for missing/invalid modes. It also lists return types and dispatch mapping, but does not cover side effects like overwriting existing cell data or format preservation.

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 well-structured with clear sections (Args, Returns, Raises, Notes), but it is lengthy. It contains a developer-oriented note ('Recommend adding short examples...') that adds noise for an agent. Overall, every mode description earns its place, but the length and extraneous note reduce conciseness.

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 the tool's complexity (13 parameters, 5 modes), the description is thorough. It documents required params per mode, error conditions, return shapes, and destructive behavior. The output schema exists, so return-value details are not required, and the description still offers a high-level return type.

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 fully compensate. The comprehensive Args section explains every parameter, including mode-specific requirements and defaults (e.g., 'direction: "down" or "right" for series growth'). This adds substantial semantic meaning beyond the raw 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 opens with a clear verb+resource statement: 'Write data or operations to worksheet cells.' It then enumerates five distinct modes (single, range, series, merge, unmerge), which fully defines its scope. It is distinguishable from siblings like read_cells or clear_range due to the explicit writing focus.

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 mode-specific guidance, stating which parameters are required for each operation (e.g., 'single' requires cell_ref and value). It also warns that the route mutates workbook files, which is relevant context. However, it does not discuss when to prefer this tool over alternatives like formula_write or write_multi_sheet.

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

write_multi_sheetA

Create or overwrite a workbook with multiple sheets, headers and data in a single call.

Args: file_path: Destination workbook path. sheets: List of SheetDefinition (name, headers, rows, column widths, etc.).

Returns: WriteMultiSheetResult: Result model with file path and any warnings.

Notes: - Destructive when targeting existing files — document overwrite semantics in higher-level docs.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheetsYes
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
file_pathYes
sheets_createdYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the safety burden. It explicitly notes 'Destructive when targeting existing files' and mentions overwrite semantics. This is valuable behavioral disclosure beyond the basic action, though it could detail the exact replacement behavior or permissions 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 well-structured with Args, Returns, and Notes sections. It is concise and front-loaded with the core purpose. Slight redundancy exists where the Args section repeats schema information, but overall it's efficient.

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 a moderate-complexity tool with an output schema, the description covers the main aspects: what it does, overwrite danger, parameter roles. It lacks explicit guidance on when to use it over sibling tools (e.g., write_cells) and what happens to existing sheets, but the core operational context is present.

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% for top-level params, so the description must compensate. It does explain file_path as 'Destination workbook path' and sheets as 'List of SheetDefinition', adding basic meaning. However, it doesn't clarify nuances like the choice between 'data' and 'values' or column_widths mapping, relying instead on the nested 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 a specific action: 'Create or overwrite a workbook with multiple sheets, headers and data in a single call.' This distinguishes it from siblings like write_cells (cell-level writes) and create_workbook (basic creation).

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 the primary use case: creating or overwriting a multi-sheet workbook in one call. It does not explicitly mention alternatives or when not to use it, but the 'in a single call' phrasing differentiates it from cell-by-cell operations. Slight gap in explicit exclusions.

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
Disambiguation3/5

Many tools have distinct purposes, but there is notable overlap between related operations (e.g., copy_range vs. worksheet_transfer, vlookup_helper vs. merge_datasets, find_duplicates vs. deduplicate_data). Additionally, several tools use an 'action' parameter to bundle multiple sub-operations, which increases ambiguity and the chance of misselection despite clear descriptions.

Naming Consistency3/5

All names are snake_case and mostly readable, but conventions vary between verb-first (create_workbook, read_cells) and noun-first (column_statistics, data_cleaner). Some names are acronym-heavy or irregular (csv_ops, vlookup_helper, dcf_analysis), and a few are compound verbs (find_replace) or noun phrases (worksheet_structure). The lack of a clear consistent pattern makes naming moderately inconsistent.

Tool Count2/5

With 69 tools, the server offers an extensive surface area. Even for a rich domain like Excel, this exceeds the 'well-scoped' range by a large margin and may overwhelm agents. The complexity is not inherently bad, but it is significantly above the recommended 3-15 tools, making it heavy to navigate and maintain.

Completeness5/5

The tool set is remarkably comprehensive, covering workbook lifecycle, cell operations, formatting, formulas, charts, worksheet management, data manipulation, statistical analysis, financial calculations, file import/export, and file lifecycle (upload/download/release). It provides a full range of operations from basic read/write to advanced analytics, with no major gaps evident for typical Excel tasks.

Maintenance

ActivityInactive
ResponsivenessResponsive

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/mbeps/excel-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server