MCP server for interacting with Microsoft Excel Online via Microsoft Graph API
Server has 11 tools with complete input schemas and descriptions. Naming follows verb_noun convention (list_sheets, create_sheet, delete_sheet, etc.). Descriptions are present but brief (10-50 chars), below the 50-200 char LLM-optimized baseline. Parameters have types and descriptions. However, output schemas are not documented in the source code, responses are inferred from API calls but not formally declared. Error handling is minimal; no recovery guidance or actionable error messages visible. Tool annotations (readOnlyHint, destructiveHint) are declared in the framework but not verified in tool definitions. Missing: pagination for list operations, per-item success/failure for batch operations, and dependency hints between tools.
Copy a worksheet.
Create a new chart object.
Create a new worksheet.
Delete a specific chart object.
Delete a worksheet.
Retrieve a specific chart object.
Get a chart image in a specified format.
Output schemas not documented. Tool descriptions state what they do but do not declare return types, field names, or structure. LLMs cannot plan downstream calls or extract required data without knowing response shape.
Descriptions are too brief (10-50 chars). Baseline for LLM-optimized descriptions is 50-200 chars. Current descriptions lack context on WHEN to use each tool, prerequisites, and what distinguishes similar tools (e.g., rename_sheet vs create_sheet).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
Retrieve a list of chart objects.
List all sheets in a workbook.
Rename a worksheet.
Update a specific chart object.
No error handling guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next. E.g., delete_sheet does not warn about irreversibility or offer a dry-run.
list_sheets and list_chart_collection lack pagination parameters (limit, offset, page_size). No indication of result limits or how to handle large workbooks with many sheets/charts.
Tool annotations (readOnlyHint, destructiveHint) declared in framework but not verified in tool definitions. Cannot confirm they are properly applied to each tool.