MCP Excel Service for Excel file manipulation via Microsoft Graph API. Provides tools for updating trade data, closing trades, and managing Excel workbooks in SharePoint/OneDrive.
The MCP Excel Service defines 4 tools with clear, domain-specific purposes and mostly complete schemas. Tool names follow verb_noun patterns (update, close, log) which is good. Input schemas are well-structured with type declarations and parameter descriptions. However, descriptions vary in quality and some are overly verbose with example values embedded in descriptions (anti-pattern). Output schemas are not documented, callers cannot infer the response structure. Error handling lacks recovery guidance and actionable error messages. Tool composition is reasonable but some tools are overloaded with parameters (e.g., updateTradeWithDelta has 8 parameters, exceeding the 4-param baseline median).
Close a trade by updating the close date and close time in an Excel workbook. This tool finds a trade row by matching the trade date (Column A) and trade time (Column C), then updates the close date (Column D) and close time (Column E).
Log all trades from an Excel workbook. Reads and returns all trade data from the worksheet including trade dates, times, strikes, and delta values.
Update a range of cells in an Excel worksheet with values. Supports updating single cells, rows, columns, or rectangular ranges of cells.
Update delta value for a trade in an Excel workbook. This tool finds a trade row by matching the trade date (Column A) and trade time (Column C), then updates the appropriate delta column based on the delta time and strike type.
Output schemas not documented. callers cannot infer response structure or plan downstream tool calls. All 4 tools return strings but no structured format is specified.
Descriptions embed example values (e.g., '12/22/2025', '1/6/2026', '10:30 AM') which LLMs latch onto literally rather than adapting to context.
Parameter 'delta_time' in updateTradeWithDelta uses an enumerated set of valid time windows (9:30 AM - 11:00 AM, etc.) but this is described only in prose. Should be declared as an enum constraint so LLMs cannot pass invalid times.
updateTradeWithDelta has 8 parameters, exceeding the baseline median of 4 (p90=8). Suggests overloaded responsibility. Consider splitting into separate tools for different delta time windows or strikes.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 72 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
No error handling guidance in any tool description. What if a trade is not found? What if the file cannot be accessed? LLMs receive no recovery instructions.
All parameters accept free-form strings for dates and times (e.g., 'trade_date', 'trade_time'). No format constraint or regex pattern is declared. LLMs can pass malformed dates.
Tool descriptions do not clearly state whether operations are idempotent or have irreversible side effects. updateTradeWithDelta and closeTrade modify workbooks, agents need to know if retries are safe.