Pure Node.js MCP server for creating and managing PowerPoint presentations with AI assistance
The PPT-MCP server defines 6 tools with partial schema coverage and inconsistent description quality. Three tools (create_presentation, read_presentation, analyze_presentation) have complete JSON schemas and descriptions; however, edit_presentation lacks full schema documentation for its nested 'content' object, edit_presentation_enhanced mixes English and Chinese descriptions creating clarity issues, and edit_presentation_advanced has a Chinese description that is inaccessible to English-speaking LLM agents. Parameter descriptions exist but are generic ('Content to add based on operation type'). No tool provides output schema documentation, making downstream composition risky. Error handling exists in implementation (try-catch with error messages) but lacks structured error classification or recovery guidance. Naming follows verb_noun convention (good) but tool proliferation suggests multiple overlapping responsibilities: three separate edit tools (edit_presentation, edit_presentation_enhanced, edit_presentation_advanced) with unclear differentiation create selection ambiguity for LLMs. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present.
Analyze PowerPoint presentation structure, content, and provide insights
Create a new PowerPoint presentation with specified title and number of slides
Edit an existing PowerPoint presentation by adding slides or modifying content
使用 pptx-automizer 对现有 PowerPoint 进行真实的读写编辑(新增/复制/替换文本等)
Enhanced PowerPoint editing with comprehensive guidance and workarounds
Read and extract content from PowerPoint presentations
Multiple tools with overlapping functionality (edit_presentation, edit_presentation_enhanced, edit_presentation_advanced) create selection ambiguity. Tool naming does not clearly distinguish responsibilities.
edit_presentation_advanced description is entirely in Chinese ('使用 pptx-automizer 对现有 PowerPoint 进行真实的读写编辑(新增/复制/替换文本等)'), making it inaccessible to English-language LLM agents. Description must be in the client's language.
No output schemas documented for any tool. LLMs cannot determine what fields to expect in responses, breaking tool chaining and downstream composition.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 52 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 54 | - | v1 |
edit_presentation 'content' parameter is an untyped object with optional nested properties. No validation constraints or required sub-fields specified. LLMs cannot reliably construct valid requests.
No tool annotations present (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot determine which tools are safe to retry or which modify state.
File path parameters (file_path, output_path) lack validation hints (format, length, allowed patterns). No guidance on absolute vs relative paths, directory traversal prevention, or file existence validation.
Error messages in code show try-catch with raw error text (e.g., '❌ **Failed to create presentation:** {error message}'), but no recovery guidance or error classification. LLMs cannot determine if an error is retryable, user-fixable, or fatal.
edit_presentation_enhanced description mixes English and Chinese, reducing clarity and accessibility for LLM agents expecting consistent language.