MCP server for interacting with Microsoft Graph API for application, site, and user operations
Three tools with minimal definitions. All lack verb-prefixed names (applications, sites, users are nouns, not actions). Descriptions are generic and under 100 chars, providing no context on WHEN to use each tool or WHAT distinguishes them. Input schemas are present but trivial: single optional 'name' string with no type validation, enums, or constraints. No output schema documented. No error handling guidance. No parameter relationships or dependencies explained. Tools appear to be simple read-only wrappers around Microsoft Graph but lack the specificity and LLM-optimization required for reliable agent selection.
Interact with Microsoft Graph API for application operations
Interact with Microsoft Graph API for site, subsites and pages operations
Interact with Microsoft Graph API for user operations
Tool names are nouns, not action verbs. 'applications', 'sites', 'users' do not convey what action occurs when called. Should be 'list_applications', 'search_applications', 'get_applications', etc.
Descriptions are generic and under 100 chars. 'Interact with Microsoft Graph API for application operations' does not explain WHEN to use this tool vs others, what it returns, or what the 'name' parameter does when omitted. Baseline: 194 chars average for A+ tools.
No output schema documented. LLMs cannot plan downstream calls or extract required fields. Code shows JSON response with nested maps, but no schema is exposed to the agent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 30 | 2026-07-28+ | v2 |
Input schema trivial: single optional 'name' string with no constraints, enums, validation rules, or format guidance. No minimum/maximum length, no regex pattern, no examples of valid values.
No error handling guidance. Code returns generic 'failed to get applications' on error with no recovery hints. LLM cannot determine if error is retryable, user-fixable, or fatal.