A Next.js application that syncs Microsoft 365 data (Viva Engage, Calendar, Teams Chat) using Work IQ MCP server for querying emails, meetings, chats, files, and Viva Engage communities
Single tool 'ask_work_iq' has minimal definition quality. Description is present (89 chars) but lacks actionable context for LLM selection. Input schema exists but is extremely sparse: only one parameter 'question' (string, no constraints, no format guidance). No output schema documented. No error handling guidance. No parameter validation rules. Tool name is verb-noun compliant but description does not explain WHEN to use it vs alternatives, what data it returns, or prerequisites (e.g., Microsoft 365 auth required). Naming is acceptable; schema and error handling are critically deficient.
Query Microsoft 365 data including emails, meetings, chats, files, and Viva Engage communities through Work IQ
No output schema documented. LLM cannot predict what fields to expect from Work IQ responses, forcing unstructured parsing and increasing hallucination risk.
Input parameter 'question' lacks format constraints, length limits, or examples. Description is bare string type with no guidance on valid question formats or scope.
Tool description (89 chars) does not explain WHEN to use ask_work_iq, what data sources it queries (emails, meetings, chats, files, communities), or what the LLM should expect in responses.
No error handling guidance. If Work IQ returns no results, auth fails, or the question is malformed, the LLM has no recovery path documented.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | <=2025-11-25 | v2 |
No documentation of required permissions, authentication prerequisites, or scope declarations. LLM cannot determine if it has authority to call this tool.