A Model Context Protocol (MCP) server for interacting with Microsoft 365 and Office services through the Graph API
This server provides 8 tools with acceptable naming and documentation, but exhibits significant gaps in schema completeness, parameter descriptions, and error handling guidance. Tools 1-6 (auth-tools.ts) have basic descriptions and some schema definition. Tools 7-8 (graph-tools.ts) are described as meta-discovery tools but lack visible schema details in the provided source. The server demonstrates awareness of tool patterns (toolAnnotations=true, errorReporting=true) but implementation details are incomplete. Most tools follow verb_noun naming convention. However, parameter descriptions are sparse, output schemas are not documented in source code excerpts, and error recovery guidance is absent. This is typical community-server quality, functional but not production-grade.
Get the detailed JSON schema for a specific tool by name
List all Microsoft accounts configured in this server. Use this to discover available account emails before making tool calls. Reflects accounts added mid-session via --login.
Authenticate with Microsoft account
Log out from Microsoft account
Remove a Microsoft account from the cache. Accepts email address (e.g. user@outlook.com) or account ID. Use list-accounts to discover available accounts.
Search for available tools by name or description using BM25 full-text search
Output schemas not documented. No tool explicitly describes what fields, types, or structure callers should expect in responses. The provided source shows input schemas but zero output documentation.
search-tools and get-tool-schema descriptions lack context on when to use them, how results are structured, and what downstream tools benefit from their output. Descriptions state WHAT (search, schema retrieval) but not WHY or WHEN.
No error handling guidance. Auth tools (login, logout, select-account, remove-account) may fail with network errors, invalid accounts, or permission issues, but error responses are not documented. LLMs cannot infer recovery steps.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 69 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 48 | - | v1 |
Select a Microsoft account as the default. Accepts email address (e.g. user@outlook.com) or account ID. Use list-accounts to discover available accounts.
Check current Microsoft authentication status
select-account and remove-account accept 'account' parameter as 'email address or account ID' but parameter description does not clarify format constraints, validation rules, or examples of valid input. LLMs cannot disambiguate between formats.
search-tools and get-tool-schema have minimal parameter descriptions. 'query' lacks length/pattern constraints. 'limit' has no min/max bounds. 'name' has no validation rules. Unbounded parameters invite invalid LLM input.
No pagination support documented for list-accounts or search-tools results. If either returns >50 items, response may exceed context limits. list-accounts should return total count; search-tools should support offset/limit parameters.