Critical gaps across all dimensions. Tool definitions exist but lack rigor. Most tools have minimal descriptions (10-50 chars, well below the 194-char baseline). Input schemas present but sparse, many parameters lack type info or descriptions. No output schemas documented. OAuth tools expose tokens as parameters (security violation). No error handling guidance. Tool composition is poor: updateSlide accepts generic 'content' object without structure. No pagination for list tools. Descriptions are generic and don't guide LLM selection. This server is not production-ready.
Exchanges the authorization code for an access token.
Adds a new template.
Applies a theme to a presentation.
Creates a new PowerPoint presentation.
Creates a new theme.
Builds an authorization URL for the user to grant consent.
Retrieves details of a PowerPoint presentation.
Lists available templates.
Credentials exposed as tool parameters. acquireTokenByCode, refreshToken, and all presentation/theme tools accept accessToken as a parameter. This violates secret-injection pattern, tokens will be logged in traces and prompt history.
Descriptions are too short and generic. Most tools have 20-30 char descriptions (e.g., 'Updates a specific slide in a presentation'). Baseline is 194 chars. Descriptions lack WHEN to use, WHAT it returns, and dependencies. LLMs cannot reliably select tools with such sparse guidance.
updateSlide accepts 'content' as a generic object with no schema or structure. LLMs cannot infer what fields are valid (text, images, layout, formatting?). This forces trial-and-error or requires the LLM to hallucinate valid payloads.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | <=2025-11-25 | v2 |
Lists available themes.
Acquires a new access token using a refresh token.
Removes a template.
Updates a specific slide in a presentation.
Updates an existing theme.
No output schemas documented. Tools return data but LLMs don't know what fields to expect. E.g., does getPresentation return slides, metadata, permissions? Does listTemplates return IDs, names, descriptions? Undocumented outputs force LLMs to guess and break tool chaining.
List tools (listTemplates, listThemes) lack pagination parameters (limit, offset, page_size). No indication of result count or next_cursor. If there are 100+ templates, returning all of them will blow the context window.