An MCP server that reads and writes spreadsheet data to MS Excel files
Excel MCP server has 7 tools with complete input schemas and descriptions, but quality is uneven. Tool names follow verb_noun convention (excel_read_sheet, excel_write_to_sheet) which is good. Descriptions are present but brief (avg ~80 chars, below the 194-char baseline). Parameters have types and descriptions, but lack constraints (enums, ranges, patterns). No output schemas documented. Error handling is minimal, no recovery guidance or actionable error messages visible in code. Security: file_path parameters accept arbitrary paths with no validation, risking path traversal attacks. No pagination support despite read_sheet accepting ranges. Tool composition is reasonable (separate read/write/format tools), but missing idempotency hints and confirmation patterns for destructive operations.
Copies a worksheet to create a new sheet with a different name
Creates a table in an Excel worksheet from a specified range
Describes all worksheets in an Excel file, including their names, tables, and pivot tables
Applies formatting (borders, fonts, fills, number formats) to a range of cells in an Excel worksheet
Reads data from a specified range in an Excel worksheet, with support for pagination
Captures a screenshot of a specified range in an Excel worksheet (Windows only)
Writes values or formulas to cells in an Excel worksheet
No output schemas documented. LLMs cannot predict what fields are returned or plan downstream tool calls. Descriptions state what tools do but not what they return.
Path traversal vulnerability: file_path parameter accepts arbitrary strings with no validation. LLMs could be tricked into reading/writing files outside intended directories. No sanitization visible in code.
Destructive operations (excel_write_to_sheet, excel_create_table, excel_copy_sheet, excel_format_range) lack confirmation or dry-run support. No idempotentHint or destructiveHint annotations. Agents cannot safely retry on ambiguous failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Parameter descriptions lack constraints. 'range' parameter (e.g., A1:C10) has no format specification. 'style' object in excel_format_range has no schema for nested properties (border, font, fill, numFmt, decimalPlaces). LLMs must guess valid formats.
No error handling guidance. Code does not show recovery hints (e.g., 'Sheet not found. Available sheets: Sheet1, Sheet2'). LLMs receive raw errors with no actionable next steps.