An MCP server that reads and writes spreadsheet data to MS Excel files
Server has 7 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-80 chars, mostly short) and input schemas with type definitions. However, descriptions are terse and lack context for LLM selection. Parameter descriptions are minimal (e.g., 'Absolute path to the Excel file' repeated across tools). No output schemas documented. Error handling is present but not recovery-focused. Tool naming follows verb_noun pattern (excel_*) but lacks clarity on when to use similar tools (e.g., excel_read_sheet vs excel_describe_sheets). No tool annotations (readOnlyHint/destructiveHint) despite clear risk stratification in metadata.
Copies a worksheet to create a new worksheet with a different name
Creates a table in an Excel worksheet
Describes all worksheets in an Excel file
Applies formatting (borders, fonts, fills, number formats) to a range of cells in an Excel worksheet
Reads data from a worksheet in an Excel file
Captures a screenshot of a specified range in an Excel worksheet (Windows only)
Writes data or formulas to cells in an Excel worksheet
No output schemas documented. LLMs cannot infer what fields to expect from tool responses, forcing them to guess at downstream data extraction and chaining.
Descriptions are terse (35-50 chars) and lack context for LLM selection. E.g., 'Reads data from a worksheet' does not explain when to use it vs excel_describe_sheets, or what format the data is returned in.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk stratification in metadata. LLMs cannot determine which tools are safe to retry or have side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Parameter descriptions are generic and repeated. 'Absolute path to the Excel file' appears in 6 tools but does not clarify format, validation, or whether relative paths are accepted.
excel_format_range accepts a 'style' object in YAML format but provides no schema, examples, or enum constraints for valid properties (border, font, fill, numFmt, decimalPlaces). LLMs will hallucinate invalid YAML.