MCP server for controlling Microsoft Word and Excel via AppleScript on macOS
Server has 14 tools with complete schemas and descriptions. Naming follows verb_noun convention (excel_get_cell, excel_set_cell). Descriptions are present but brief (avg ~60 chars, below 194-char baseline). Parameters have types and descriptions. Error handling exists via ToolError with code inference. However, descriptions lack WHEN/WHY context, parameter constraints are minimal (no enums for constrained inputs), and output schemas are not documented. Tool composition is reasonable but some tools combine multiple concerns (e.g., excel_copy_range + excel_paste_range could be unified). No pagination support for list operations. Legacy tools (excel_capture_range_ref, excel_insert_range_ref) are disabled but still registered.
Recalculate all formulas in all open Excel workbooks
Legacy tool disabled by in-place editing policy. Use excel_copy_range instead.
Clear contents of a range in the active Excel worksheet
Copy an Excel range with formatting to the system clipboard.
Export the active Excel workbook as CSV
Find a cell containing specific text in the active Excel worksheet
Get the value of a cell in Excel (A1 notation)
Output schemas not documented. Tool responses are JSON-wrapped (ok/error/data fields) but LLMs cannot see what fields 'data' contains for each tool. This forces LLMs to guess downstream field names and breaks tool chaining.
Descriptions lack WHEN/WHY context. E.g., 'Get the value of a cell in Excel (A1 notation)' does not explain when to use excel_get_cell vs excel_get_range, or what the return type is. Descriptions should be 50-200 chars and answer: what, when, why.
No input validation or constraint documentation. Parameters like 'cell' and 'range' accept free-form strings with no regex pattern or format hint. Descriptions should state: 'Cell reference in A1 notation (e.g., A1, Z99; must match [A-Z]+[0-9]+)'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Get values from a range of cells in Excel as text
Get the used range address and dimensions of the active Excel sheet
Legacy tool disabled by in-place editing policy. Use excel_paste_range instead.
Paste the system clipboard into the active Excel workbook at the target cell.
Set the value of a cell in the active Excel worksheet
Set a formula in an Excel cell
Sort a range by a key column in the active Excel worksheet
Legacy disabled tools still registered. excel_capture_range_ref and excel_insert_range_ref are marked disabled but remain in tool list. Remove them entirely or return a clear error message if called.
No error recovery guidance. ToolError includes code and message but does not suggest next steps. E.g., if excel_find_cell returns 'Text not found', the LLM should know to try a broader search or different text, not retry the same call.