Skip to main content
Glama
mort-lab

Excel MCP Server

by mort-lab

Excel MCP Server

A comprehensive Model Context Protocol (MCP) server that enables AI assistants to perform Excel file operations without requiring Microsoft Excel installation.

Python Version License: MIT Tests MCP

Why This Server?

Feature

Excel MCP Server

Alternatives

No Excel Required

✅ Pure Python (openpyxl)

❌ Requires MS Office

Cross-Platform

✅ Windows, Mac, Linux

⚠️ Limited

Type Safety

✅ Full Pydantic validation

❌ No validation

Formatting Support

✅ Fonts, colors, borders

⚠️ Basic only

Formula Support

✅ Full Excel formulas

⚠️ Limited

MCP Protocol

✅ Native support

❌ Custom protocols

Remote Deploy

✅ Smithery ready

❌ Local only

Related MCP server: Excel MCP Server

Features

  • 📊 Workbook Management: Create, open, save Excel workbooks

  • 📄 Sheet Operations: Create, delete, rename, copy worksheets

  • 📝 Cell Operations: Read and write individual cells or ranges

  • 🔢 Formula Support: Write and evaluate Excel formulas

  • 🎨 Rich Formatting: Fonts, colors, borders, alignment, number formats

  • ✅ Type-safe operations with Pydantic validation

  • ✅ Well-tested with 17 tests

Installation

Deploy globally and share with anyone - no installation required!

{
  "mcpServers": {
    "excel": {
      "url": "https://server.smithery.ai/@mort-lab/excel-mcp/mcp"
    }
  }
}

💻 Local Installation

# Using uvx (recommended)
uvx excel-mcp-server

# Using pip
pip install excel-mcp-server

# From source
git clone https://github.com/mort-lab/excel-mcp
cd excel-mcp
uv sync

Quick Start

Add to your Claude Desktop config:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "excel": {
      "command": "uvx",
      "args": ["excel-mcp-server"]
    }
  }
}

Restart Claude Desktop and start using Excel operations!

Example Usage

"Create a new Excel workbook called sales_report.xlsx"
"Write 'Product' to cell A1 in Sheet1"
"Format the header row with bold text and blue background"
"Add a formula in D2 that multiplies B2 and C2"
"Read the data from range A1:D10"

Connect with the Author

LinkedIn

Let's connect on LinkedIn!

I'm Martin Irurozki, a fullstack developer passionate about AI automation, building intelligent tools, and creating real-world solutions that make a difference. If you:

  • 🚀 Want to discuss MCP servers, AI integrations, and automation

  • 💡 Have ideas for new features or real-world use cases

  • 🤝 Are interested in collaboration opportunities

  • 🛠️ Build tools and solutions with AI

  • 🌟 Just want to connect and network with fellow developers

Connect with me on LinkedIn →

I'd love to hear about your projects and how this Excel MCP server is helping you build amazing things!


Available Tools

The server provides 20 MCP tools across 4 categories:

Workbook Operations (3 tools)

  • create_workbook(file_path) - Create a new Excel workbook

  • get_workbook_info(file_path) - Get workbook metadata

  • list_sheets(file_path) - List all worksheet names

Sheet Operations (4 tools)

  • create_sheet(workbook_path, sheet_name, index?) - Create a new worksheet

  • delete_sheet(workbook_path, sheet_name) - Delete a worksheet

  • rename_sheet(workbook_path, old_name, new_name) - Rename a worksheet

  • copy_sheet(workbook_path, source_sheet, new_name) - Copy a worksheet

Cell Operations (5 tools)

  • write_cell(workbook_path, sheet_name, cell, value) - Write to a cell

  • read_cell(workbook_path, sheet_name, cell) - Read from a cell

  • write_range(workbook_path, sheet_name, start_cell, data) - Write data to a range

  • read_range(workbook_path, sheet_name, range_ref) - Read data from a range

  • write_formula(workbook_path, sheet_name, cell, formula) - Write a formula

Formatting Operations (8 tools)

  • format_font(...) - Apply font formatting (bold, italic, color, size)

  • format_fill(...) - Apply background color

  • format_border(...) - Apply cell borders

  • format_alignment(...) - Apply text alignment

  • format_number(...) - Apply number formatting

Real-World Use Cases

📊 Automated Reporting

Generate monthly sales reports automatically with formatted data, calculations, and professional styling ready to share with stakeholders.

📈 Data Analysis

Import and transform data, apply statistical functions (SUM, AVERAGE, STDEV), create summary tables, and export results.

🎨 Invoice Generation

Create professional invoices with custom formatting, company branding, automatic calculations, and formula-driven totals.

📋 Inventory Management

Track stock levels with real-time updates, conditional formatting for alerts, and automated reorder calculations.

📑 Data Migration

Read from old Excel files, clean and transform data, apply new formatting standards, and export to new structure.

Examples

Example 1: Formatted Sales Report

Ask Claude:

Create a sales report in sales_2024.xlsx with:
1. Headers: Date, Product, Quantity, Price, Total
2. Format headers: Bold, white text, blue background (#4472C4)
3. Add 10 sample sales entries with realistic data
4. Total column formula: =C2*D2 (for each row)
5. Format prices as currency: $#,##0.00
6. Add borders around all cells (thin, black)
7. Center-align all headers
8. Sum total sales in the last row with bold formatting

Result: Professional report with automatic calculations, fully formatted and ready to share.

Example 2: Multi-Sheet Workbook

Ask Claude:

Create quarterly_report.xlsx with 5 sheets:
- Sheets: Q1, Q2, Q3, Q4, Summary
- Each Q sheet has: Month, Revenue, Expenses, Profit
- Add 3 months of data per quarter
- Profit formula: =B2-C2
- Summary sheet with formulas that sum all quarters
- Format all currency values as $#,##0.00

Result: Complex multi-sheet workbook with cross-sheet formulas and comprehensive business report.

Example 3: Data Migration

Ask Claude:

Read data from old_data.xlsx sheet 'Sales' range A1:E100,
then create new_data.xlsx with:
- Same data but sorted by date (column A)
- Add a new column F with 10% markup calculation (=E*1.1)
- Format dates as 'mm/dd/yyyy'
- Format currency columns as $#,##0.00
- Add bold headers with blue background

Result: Clean data migration enhanced with calculations and professional formatting.

Development

Setup

# Clone and install
git clone https://github.com/mort-lab/excel-mcp
cd excel-mcp
uv sync

# Run tests
uv run pytest

# Run with coverage
uv run pytest --cov=excel_mcp_server

# Lint and format
uv run ruff check
uv run ruff format

Project Structure

excel-mcp-server/
├── src/excel_mcp_server/
│   ├── server.py              # FastMCP server (local)
│   ├── server_smithery.py     # Smithery-compatible server
│   ├── models.py              # Pydantic validation models
│   ├── operations/            # Business logic
│   │   ├── workbook.py
│   │   ├── cell.py
│   │   ├── sheet.py
│   │   └── formatting.py
│   └── utils/
│       └── validators.py
├── tests/                     # Test suite (17 tests)
└── pyproject.toml             # Project configuration

Performance

  • Fast: Handles workbooks up to 10,000 rows efficiently

  • Memory: ~50MB for typical operations

  • Lightweight: No Excel installation required

Operation

Time

Notes

Create workbook

~50ms

Empty workbook

Write 100 cells

~200ms

Individual writes

Write 100 cells (range)

~50ms

Bulk operation

Read 1000 cells

~300ms

From existing file

Apply formatting

~100ms

Per range

Limitations

  • ❌ No chart/graph support (coming soon)

  • ❌ No pivot tables (roadmap)

  • ❌ No VBA macros (intentional - pure Python)

  • ⚠️ File size limit: 100MB recommended

FAQ

Can I use this with Google Sheets? No, this server works exclusively with Excel (.xlsx) files.

Does it work offline? Yes! When installed locally, it works completely offline.

What Excel features are supported?

  • ✅ Formulas (SUM, AVERAGE, IF, VLOOKUP, COUNT, etc.)

  • ✅ Formatting (fonts, colors, borders, alignment, number formats)

  • ✅ Multiple sheets and workbooks

  • ✅ Cell ranges and bulk operations

  • ✅ Formula references across sheets

  • ❌ Charts and graphs (roadmap)

  • ❌ Pivot tables (roadmap)

  • ❌ Macros/VBA (not planned - security)

How large can my Excel files be? Recommended: Up to 100MB or ~50,000 rows for optimal performance.

Can I use this in production? Yes! The server is tested and stable. Consider using Smithery for deployment and scaling.

Troubleshooting

Import Errors

uv sync

Permission Errors

# Check permissions
ls -la /path/to/directory

# Fix permissions (Unix/Mac)
chmod u+w /path/to/directory

File Already Exists When creating a workbook, if the file already exists, the operation will fail. Delete the existing file or use a different filename.

Contributing

Contributions are welcome! Here's how:

Development Workflow:

  1. Fork & clone the repository

  2. Create feature branch: git checkout -b feature/amazing-feature

  3. Make changes with tests

  4. Run tests: uv run pytest

  5. Run linting: uv run ruff check

  6. Commit: git commit -m 'feat: Add amazing feature'

  7. Push & create Pull Request

Commit Convention: We use Conventional Commits:

  • feat: New features

  • fix: Bug fixes

  • docs: Documentation

  • test: Adding tests

  • refactor: Code refactoring

Roadmap

v0.2.0 (Next Release)

  • Chart and graph creation

  • Data validation rules

  • Conditional formatting

  • Image insertion

v0.3.0

  • Pivot table operations

  • Cell comments and notes

  • Protected sheets

  • Named ranges

v1.0.0

  • CSV import/export

  • PDF export

  • Template system

  • 80%+ test coverage

Support

License

This project is licensed under the MIT License.

Acknowledgments


Made with ❤️ by Martin Irurozki

Empowering AI assistants to work with Excel files, one cell at a time.

Available Tools

17 tools
copy_sheetC

Copy a worksheet within the workbook.

ParametersJSON Schema
NameRequiredDescriptionDefault
workbook_pathYesPath to the Excel workbook
source_sheetYesName of the worksheet to copy
new_nameYesName for the copied worksheet

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

Without annotations, the description must disclose behavioral traits. It only states 'copy' but does not mention whether formatting is preserved, if the workbook must be closed, or other effects.

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 a single sentence, which is concise, but it is too brief to be adequately informative. It could include more context while remaining short.

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?

With no annotations, no output schema, and a simple description, the tool's behavior is under-specified. For a mutation tool, more details about side effects and requirements are needed.

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

Parameters3/5

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

Schema coverage is 100%, so description adds no extra meaning beyond parameter names. Baseline 3 is appropriate as it does not clarify constraints like allowed characters for new_name.

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 action (copy) and resource (worksheet) with scope (within the workbook), distinguishing it from sibling tools like create_sheet or rename_sheet.

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

Usage Guidelines2/5

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

No guidance on when to use copy_sheet vs alternatives like create_sheet for new sheets or rename_sheet for renaming. The agent is left to infer usage context.

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

create_sheetC

Create a new worksheet in the workbook.

ParametersJSON Schema
NameRequiredDescriptionDefault
workbook_pathYesPath to the Excel workbook
sheet_nameYesName for the new worksheet
indexNoOptional position to insert the sheet (0-based)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full behavioral burden. It does not disclose side effects (e.g., overwriting an existing sheet?), permissions needed, or error conditions. The description only states the basic action without behavioral context.

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

Conciseness4/5

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

The description is a single, concise sentence with no wasted words. It is front-loaded with the core purpose. However, it could be slightly more structured by including parameter hints or usage notes without sacrificing brevity.

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 output schema exists (so return values need not be explained) and schema coverage is full, the description minimally covers the tool's purpose. However, it lacks context about edge cases (e.g., duplicate sheet names), position handling, and integration with sibling tools, leaving gaps for complete understanding.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides for parameters like 'workbook_path', 'sheet_name', and 'index'. The optional 'index' parameter is not mentioned in the description.

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 action ('Create') and the resource ('new worksheet in the workbook'). It distinguishes from siblings like copy_sheet or delete_sheet, though no explicit differentiation is provided. The verb and object are specific.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., copy_sheet for duplication). No context about prerequisites, such as whether the workbook must exist or if sheet names must be unique. The agent would have to infer usage from the tool name alone.

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

create_workbookC

Create a new Excel workbook.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYesPath where the workbook will be created (must end with .xlsx)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as whether the tool overwrites existing files, requires permissions, or has side effects.

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

Conciseness2/5

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

The description is a single sentence that merely restates the tool name, providing minimal useful structure.

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

Completeness2/5

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

Given the tool has one parameter and an output schema, the description lacks details about return values, error handling, or conditions.

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

Parameters3/5

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

Schema coverage is 100%, and the description adds no meaning beyond the schema's description of the file_path parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'create' and the resource 'workbook', and distinguishes it from sibling tools like copy_sheet or delete_sheet.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, nor any prerequisites or contextual conditions.

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

delete_sheetB

Delete a worksheet from the workbook.

ParametersJSON Schema
NameRequiredDescriptionDefault
workbook_pathYesPath to the Excel workbook
sheet_nameYesName of the worksheet to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so the description should disclose behavioral traits. It only states the deletion action but does not mention irreversibility, impact on data, error conditions, or any side effects.

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

Conciseness5/5

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

Single concise sentence that is front-loaded and efficient, with no unnecessary words.

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 the tool being simple, the description omits return value information even though an output schema exists (context signals). No mention of success/failure, confirmation, or side effects, making it incomplete for an agent.

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

Parameters3/5

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

Schema coverage is 100%, and the description adds no extra meaning beyond what the schema already provides. It does not clarify usage or format of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (delete) and the resource (worksheet from workbook), which is unambiguous and distinct from sibling tools like copy_sheet or create_sheet.

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

Usage Guidelines2/5

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

No guidance on when to use versus alternatives such as rename_sheet or write_range. The description lacks context on prerequisites or when not to use this tool.

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

format_alignmentB

Apply alignment formatting to a range of cells.

ParametersJSON Schema
NameRequiredDescriptionDefault
workbook_pathYesPath to the Excel workbook
sheet_nameYesName of the worksheet
range_refYesRange to format (e.g., 'A1:B10')
horizontalNoHorizontal alignment ('left', 'center', 'right')
verticalNoVertical alignment ('top', 'center', 'bottom')
wrap_textNoEnable text wrapping
text_rotationNoText rotation angle (0-180)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits like file modification, permission needs, or side effects. It only states 'Apply alignment formatting,' omitting that it modifies the workbook, the effect of null parameters, and potential errors.

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

Conciseness5/5

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

The description is a single sentence that front-loads the core purpose with no wasted words. Every part earns its place, making it highly 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 having an output schema, the description lacks essential context for a 7-parameter tool: no mention of mutation, return behavior, or what happens with omitted optional parameters. Sibling tools are similar, requiring clearer differentiation.

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

Parameters3/5

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

Schema description coverage is 100% with detailed parameter descriptions, so the baseline is 3. The tool description adds no additional meaning beyond what the schema already 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 uses a specific verb ('Apply') and resource ('alignment formatting') to a defined scope (range of cells). It clearly distinguishes from sibling formatting tools like format_border, format_fill, etc., which apply different formatting types.

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. There is no mention of prerequisites, context, or exclusions. The agent receives no help in deciding between this and other formatting tools.

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

format_borderC

Apply border formatting to a range of cells.

ParametersJSON Schema
NameRequiredDescriptionDefault
workbook_pathYesPath to the Excel workbook
sheet_nameYesName of the worksheet
range_refYesRange to format (e.g., 'A1:B10')
styleNoBorder style ('thin', 'medium', 'thick', 'double')thin
colorNoHex color code for border
sidesNoWhich sides to apply border to (['top', 'bottom', 'left', 'right'])

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only says 'apply border formatting.' It does not mention effects on existing borders, interaction with other formatting, or any side effects. For a formatting tool, more transparency is expected.

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 a single sentence, which is concise but somewhat under-informative. It front-loads the action but sacrifices valuable details that could be added without losing conciseness.

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

Completeness2/5

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

Given the tool has 4 optional parameters (including enums and nullability), no annotations, and an output schema that isn't described, the description lacks context about defaults, behavior when color is null, or the effect of not specifying sides. It is incomplete for a formatting 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 input schema has 100% description coverage for all parameters, so the description does not need to add much. The description does not provide additional meaning beyond the schema, which already explains style, color, and sides. A score of 3 is appropriate for high coverage with no extra value.

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 action ('Apply') and the resource ('border formatting to a range of cells'), which distinguishes it from sibling formatting tools that operate on other properties (e.g., format_font, format_fill). However, it does not explicitly differentiate itself from similar tools or mention that it only affects borders.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like format_font or format_alignment. It also lacks any prerequisites or caveats about 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.

format_fillB

Apply background color to a range of cells.

ParametersJSON Schema
NameRequiredDescriptionDefault
workbook_pathYesPath to the Excel workbook
sheet_nameYesName of the worksheet
range_refYesRange to format (e.g., 'A1:B10')
colorYesHex color code (e.g., 'FFFF00' for yellow)
fill_typeNoFill type ('solid' or 'pattern')solid

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states 'apply background color' without disclosing whether it overwrites existing fills, behavior on merged cells, or reversibility. For a modification tool, this is insufficient.

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?

A single sentence that is accurate and free of fluff. However, it could be slightly expanded to mention the optional fill_type parameter for completeness. Still very concise.

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

Completeness3/5

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

Given the tool's simplicity and the existence of an output schema, the description is adequate but lacks behavioral transparency and usage guidance. It does not fully inform an AI agent about potential side effects or prerequisites.

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

Parameters3/5

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

Schema description coverage is 100%, so the description adds no additional meaning beyond the schema. A baseline score of 3 is appropriate as the description does not enhance parameter understanding.

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 'Apply background color to a range of cells' clearly states the verb (apply), resource (background color), and scope (range of cells). It effectively distinguishes from sibling formatting tools like format_font or format_border.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives like format_font or format_border. The description implies usage for cell background color fill but lacks when-to-use or when-not-to-use instructions.

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

format_fontB

Apply font formatting to a range of cells.

ParametersJSON Schema
NameRequiredDescriptionDefault
workbook_pathYesPath to the Excel workbook
sheet_nameYesName of the worksheet
range_refYesRange to format (e.g., 'A1:B10')
font_nameNoFont name (e.g., 'Arial', 'Calibri')
font_sizeNoFont size (8-72)
boldNoBold text
italicNoItalic text
underlineNoUnderline style ('single', 'double', or None)
colorNoHex color code (e.g., 'FF0000' for red)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavior. It does not explain side effects (e.g., whether unset properties are left unchanged or reset), error conditions, or return values. The output schema is mentioned in context but not described in the text.

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

Conciseness4/5

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

The description is a single, well-formed sentence with no unnecessary words. It is appropriately front-loaded. However, it could be slightly expanded to cover key behavioral aspects without losing conciseness.

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

Completeness2/5

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

Given 9 parameters (3 required) and an output schema, the one-sentence description is insufficient. It omits details on return values, error conditions, and the effect of partial parameter specification, making it incomplete for a complex formatting 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?

Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema; it does not clarify parameter interactions or defaults beyond what the schema already 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 'Apply font formatting to a range of cells' uses a specific verb ('Apply') and clearly identifies the resource ('font formatting') and scope ('range of cells'). This distinguishes it from sibling tools like format_alignment and format_border.

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 other formatting tools or when to apply specific font properties. There are no prerequisites, exclusions, or context for optimal use.

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

format_numberB

Apply number formatting to a range of cells.

ParametersJSON Schema
NameRequiredDescriptionDefault
workbook_pathYesPath to the Excel workbook
sheet_nameYesName of the worksheet
range_refYesRange to format (e.g., 'A1:B10')
format_stringYesExcel number format string Examples: - '0.00' = Two decimal places - '#,##0' = Thousands separator - '0%' = Percentage - '$#,##0.00' = Currency - 'mm/dd/yyyy' = Date format

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/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 disclose behavioral traits such as whether the tool modifies existing formatting, requires specific permissions, or has any side effects. The description only says 'Apply number formatting' which implies a mutation but provides no further details.

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

Conciseness5/5

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

Single sentence, front-loaded, no redundant words. Efficient.

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

Completeness3/5

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

For a modification tool with 4 required parameters and no annotations, the description is very brief. It does not explain the effect on existing formatting, return value, or potential errors. However, the presence of an output schema may reduce the need for return value details. Still, more context would improve 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?

Input schema has 100% coverage, so the description adds no additional meaning beyond the schema. The schema already describes each parameter, including examples for format_string. The description does not enhance parameter 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?

Clearly states the action (Apply) and resource (number formatting to a range of cells), distinguishing it from sibling formatting tools like format_alignment or format_font.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternative formatting tools or when to choose a different approach. The sibling tools include other formatting options, but the description does not clarify when to use number formatting specifically.

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

get_workbook_infoC

Get information about an Excel workbook (sheets, size, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYesPath to the Excel workbook

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.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. It only states it 'gets' info, but does not disclose if it's read-only, permissions required, or what happens if the file is locked or corrupted. Minimal behavioral context.

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

Conciseness4/5

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

Single sentence, no redundancy, front-loaded with the main purpose. Could be slightly more structured (e.g., bullet points for info types), but efficient overall.

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 an output schema present, the description need not detail return values, but it only mentions 'sheets, size, etc.' which is vague. Given the tool's simplicity and schema coverage, it is adequate but lacks specificity.

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

Parameters3/5

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

Schema coverage is 100% with file_path already described. The description adds 'sheets, size, etc.' providing some context on what info is retrieved, but does not add detail beyond schema. Baseline 3 is appropriate.

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 verb 'Get' and resource 'information about an Excel workbook', and mentions specific attributes (sheets, size) which distinguishes it from sibling tools like list_sheets or read_cell. However, 'etc.' is vague and could be more precise.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. There is no comparison to siblings like list_sheets (which only lists sheet names) or read_range (which reads cell data). The description implies it's for general info, but lacks context for decision-making.

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

list_sheetsB

List all worksheet names in a workbook.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYesPath to the Excel workbook

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description should disclose side effects, permissions, or errors, but it only states the basic action. No mention of read-only nature, file existence requirements, or response details.

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

Conciseness4/5

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

The description is a single, clear sentence with no unnecessary words. It is efficient, though it could be slightly expanded to include return context without being verbose.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, output schema exists) and sibling tools, the description is adequate but lacks context like return format or hints about when to use over other read tools.

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

Parameters3/5

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

Schema description coverage is 100% for the only parameter. The description does not add information about the parameter beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List', the resource 'worksheet names', and the context 'in a workbook', making it distinct from sibling tools like copy_sheet or create_sheet.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool over alternatives (e.g., read_cell, get_workbook_info). The description lacks explicit when-to-use or when-not-to-use instructions.

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

read_cellB

Read a value from a specific cell.

ParametersJSON Schema
NameRequiredDescriptionDefault
workbook_pathYesPath to the Excel workbook
sheet_nameYesName of the worksheet
cellYesCell reference (e.g., 'A1', 'B10')

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It only states the obvious (reads a value) without disclosing behavior for empty cells, formulas, or potential errors.

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

Conciseness5/5

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

A single sentence of 8 words is extremely concise and front-loads the purpose with no wasted words.

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

Completeness3/5

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

With an output schema present, return values are covered. However, for a simple tool in a large set of siblings, the description could include brief usage notes for edge cases.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema's parameter 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 'Read a value from a specific cell' uses a specific verb and resource, clearly distinguishing from sibling tools like 'read_range' and 'write_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?

No guidance on when to use this tool versus alternatives like 'read_range' or 'write_cell' is provided. The description lacks explicit context for usage decisions.

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

read_rangeB

Read data from a range of cells.

ParametersJSON Schema
NameRequiredDescriptionDefault
workbook_pathYesPath to the Excel workbook
sheet_nameYesName of the worksheet
range_refYesRange reference (e.g., 'A1:D10')

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

Without annotations, the description carries full burden for behavioral disclosure. It only states 'Read data', implying read-only, but does not explicitly confirm safety, permissions, side effects, or return format. The presence of an output schema partially mitigates return format expectations, but other traits are omitted.

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

Conciseness5/5

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

The description is a single, clear, front-loaded sentence with no superfluous words. Every word adds value.

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 simple tool with full schema coverage and an output schema, the description is minimally adequate. However, it lacks usage guidelines and behavioral details, making it less complete than high-tier examples.

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

Parameters3/5

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

Schema coverage is 100% (all three parameters have descriptions in the input schema). The description adds no additional meaning beyond what the schema already provides. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action ('Read data') and the resource ('a range of cells'). It clearly differentiates from siblings like 'read_cell' (single cell) and 'write_range' (write operation).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, limitations, or context for selection among similar tools like 'read_cell'.

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

rename_sheetC

Rename a worksheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
workbook_pathYesPath to the Excel workbook
old_nameYesCurrent name of the worksheet
new_nameYesNew name for the worksheet

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior1/5

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

No annotations exist, so the description must disclose behavioral traits. It only says 'rename,' implying modification, but omits whether references are updated, if permissions are required, or if the operation has side effects. This is insufficient for safe invocation.

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

Conciseness2/5

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

At three words, the description is extremely concise but sacrifices necessary detail. It is front-loaded but lacks context, making it under-specified. Conciseness should not come at the cost of completeness.

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

Completeness2/5

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

Given the tool has an output schema, return values are covered, but other aspects are missing: error conditions (e.g., sheet not found, name conflict), irreversibility, and differentiation from siblings. The description is incomplete for a mutation 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?

Schema coverage is 100% with clear descriptions for all three parameters. The tool description adds no extra meaning beyond the schema. Baseline 3 is appropriate since the schema carries the burden.

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 action ('Rename') and resource ('a worksheet'), making the basic purpose evident. It distinguishes from sibling tools like copy_sheet or delete_sheet. However, it is minimal and could be more specific about the context (e.g., Excel workbook).

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

Usage Guidelines1/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 (e.g., copy_sheet, create_sheet). There is no mention of prerequisites, scenarios, or exclusions. The agent gets no help in deciding when rename is appropriate.

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

write_cellC

Write a value to a specific cell.

ParametersJSON Schema
NameRequiredDescriptionDefault
workbook_pathYesPath to the Excel workbook
sheet_nameYesName of the worksheet
cellYesCell reference (e.g., 'A1', 'B10')
valueYesValue to write (string, number, boolean, etc.)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. It fails to mention that the operation overwrites existing content, triggers recalculation, or handles type coercion. Lacks details on side effects.

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

Conciseness4/5

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

Single sentence, no fluff. Could be slightly expanded without losing conciseness, but current length is appropriate for a straightforward operation.

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 high schema coverage and existence of output schema, description still lacks context like overwriting behavior and return value expectations. Adequate but not comprehensive.

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

Parameters3/5

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

Schema has 100% description coverage, so baseline is acceptable. The description adds no additional meaning beyond parameter names. It does not explain valid formats for cell or value, but schema already does.

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 action (write) and resource (value to a specific cell). It distinguishes from siblings like read_cell (read vs write) and write_range (specific cell vs range), though could more explicitly contrast.

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

Usage Guidelines2/5

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

No guidance on when to use write_cell versus alternatives like write_range or write_formula. Does not specify prerequisites or typical use cases.

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

write_formulaB

Write a formula to a cell.

ParametersJSON Schema
NameRequiredDescriptionDefault
workbook_pathYesPath to the Excel workbook
sheet_nameYesName of the worksheet
cellYesCell reference (e.g., 'A1')
formulaYesExcel formula (e.g., '=SUM(A1:A10)', '=B2*C2')

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral transparency. It only states the action without disclosing side effects (e.g., overwriting existing cell content, formula validation, or 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 a single, clear sentence with no redundant words. It is appropriately front-loaded and concise.

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

Completeness2/5

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

Despite having an output schema, the tool is a mutation that writes to a file, which typically requires more context (e.g., formula validation, overwrite behavior, or permission needs). The description lacks completeness for a tool with 4 required parameters.

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

Parameters3/5

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

Schema description coverage is 100%, and the description does not add any additional meaning beyond what the schema already provides for each parameter. Baseline of 3 applies.

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 'Write a formula to a cell' clearly identifies the action (write, with a specific resource 'formula to a cell') and distinguishes this tool from siblings like write_cell (for values) and write_range (for multiple cells).

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 (e.g., write_cell for formulas? Actually write_cell might also write formulas? But it says formula explicitly). No context on when to use or not use it.

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

write_rangeB

Write data to a range of cells.

ParametersJSON Schema
NameRequiredDescriptionDefault
workbook_pathYesPath to the Excel workbook
sheet_nameYesName of the worksheet
start_cellYesTop-left cell of the range (e.g., 'A1')
dataYes2D list of values to write [[row1], [row2], ...]

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations present. Description only says 'Write data', missing details on overwriting behavior, data format requirements, or potential side effects like truncation.

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

Conciseness5/5

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

Single sentence, direct, and front-loaded with the action. No unnecessary words.

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 having an output schema and 4 required parameters, the description lacks behavioral context crucial for a write operation, especially given many sibling tools.

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

Parameters3/5

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

Schema has 100% coverage with descriptions for all 4 parameters. Description adds no extra meaning, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Write' and resource 'range of cells', distinguishing from sibling tools like 'write_cell' (single cell) and 'write_formula'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives such as 'write_cell' for single cells or 'read_range' for reading. No context on prerequisites or limitations.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 17 tool updatesv0.1.0
    • First observedcopy_sheet
    • First observedcreate_sheet
    • First observedcreate_workbook
    • First observeddelete_sheet
    • First observedformat_alignment
    • First observedformat_border
    • First observedformat_fill
    • First observedformat_font
    • First observedformat_number
    • First observedget_workbook_info
    • First observedlist_sheets
    • First observedread_cell
    • First observedread_range
    • First observedrename_sheet
    • First observedwrite_cell
    • First observedwrite_formula
    • First observedwrite_range

TDQS

B3.4/5.0
Disambiguation5/5

Each tool has a clear and distinct purpose. There is no ambiguity between tools like copy_sheet and create_sheet, or between read_cell, read_range, and write_cell. Formatting tools are specialized per aspect (alignment, border, fill, font, number).

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., create_sheet, read_cell, format_font). The naming scheme is predictable and easy to understand, with no mixing of conventions.

Tool Count5/5

With 17 tools, the set is well-scoped for an Excel manipulation server. It covers sheet management, cell operations, formatting, and workbook metadata without being overly numerous or sparse.

Completeness4/5

The tool surface covers core Excel operations (create, read, write, format) and sheet management. However, it lacks some common operations like deleting ranges, inserting rows/columns, or merging cells, which could be useful for more complex workflows.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mort-lab/excel-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server