Microsoft 365 MCP Server providing access to Microsoft Graph API endpoints for mail, calendar, files, tasks, contacts and other Microsoft 365 services
Server defines only 3 authentication tools with minimal schemas and descriptions. Tool names lack action verbs (login/logout/verify-login are acceptable but generic). Descriptions are present but extremely brief (10-30 chars), well below the 50-200 char baseline for LLM optimization. Input schemas exist for login (force: boolean) but logout and verify-login have empty schemas. No output schemas documented. Error handling returns JSON strings in text fields rather than structured error objects with recovery guidance. The server appears designed primarily for auth flow, not as a full Microsoft 365 API gateway despite references to graph-tools.ts and OpenAPI generation infrastructure.
Authenticate with Microsoft 365 using device code flow
Log out and clear saved credentials
Verify current login status without starting the server
All tool descriptions are under 20 characters ('Log out and clear saved credentials' is 40 chars, but 'Verify current login status without starting the server' is 54 chars). Descriptions lack WHEN to use, WHAT it returns, and prerequisites.
No output schemas documented. LLMs cannot plan downstream calls or extract fields. Error responses return JSON strings in text fields instead of structured error objects with recovery guidance (pattern:recovery-guide).
Tool names lack action verbs. 'login' and 'logout' are acceptable but generic. 'verify-login' is vague, does it check token validity, test API connectivity, or confirm user identity? Rename to 'check_login_status' or 'test_authentication'.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Error handling returns raw error messages in JSON strings ('Authentication failed: <message>') without categorization (retryable vs fatal) or recovery guidance. LLMs cannot determine next steps.