21-tool Model Context Protocol server for Microsoft Graph integration
20 tools with consistent naming (verb_noun pattern) and complete input schemas. Descriptions are present but generic, most are 50-100 chars, below the 194-char baseline for A+ tools. Parameter descriptions are minimal (10-30 chars), lacking format constraints, ranges, and dependency hints. No output schemas documented. Error handling and recovery guidance absent. Missing tool annotations (readOnlyHint, destructiveHint). Composition is sound (each tool has one responsibility), but descriptions do not guide LLM selection or explain when to use one tool vs. another.
Create a new event or meeting in the user's calendar.
Delete or cancel a calendar event by its ID.
Get detailed information about a specific calendar event by its ID.
List upcoming calendar events for a specific time range.
Update details of an existing calendar event.
Create a new folder in OneDrive.
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., what fields does calendar_create_event return? Does it include event_id for chaining?). Every tool needs a documented return type.
Parameter descriptions lack format constraints and ranges. E.g., 'top' in outlook_list_messages says 'default: 10, max: 50' in description but no minValue/maxValue in schema. 'startDateTime' lacks ISO 8601 format validation. LLMs cannot validate inputs without explicit constraints.
Tool descriptions are generic and do not guide LLM selection. E.g., 'outlook_send_mail' and 'outlook_create_draft' both compose emails, when should the LLM choose one vs. the other? Descriptions should explain the distinction and use case.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Retrieve download content link or file details for a file ID.
List all items inside a specific OneDrive folder by its folder ID.
List all items in the root folder of the user's OneDrive.
Search for files in the user's OneDrive matching a query.
Upload content to create or replace a file in OneDrive.
Create a new draft email in the user's Drafts folder.
Get detailed contents of a specific email message by its ID.
Retrieve a list of recent email messages from the user's Inbox.
Search the user's email messages using keyword query language (KQL).
Send a new email message to one or more recipients.
Retrieve document libraries and lists for a specific SharePoint Site ID.
Search and list SharePoint sites the user has access to.
List recent active chat threads from Microsoft Teams.
Send a message to a specific Teams chat thread.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Agents cannot distinguish safe reads from destructive writes without explicit hints. calendar_delete_event and onedrive_upload_file should be marked destructive.
No error handling or recovery guidance. Tools do not document what errors are retryable, user-fixable, or fatal. E.g., if outlook_send_mail fails due to invalid recipient, the LLM has no guidance to suggest search_users() or ask the user for clarification.