Skip to main content
Glama
README.md•9.02 kB
# šŸŽÆ PPT-MCP > **Pure Node.js PowerPoint MCP Server** - Create, analyze, and manage PowerPoint presentations with AI assistance <mcreference link="https://www.npmjs.com/package/pptxgenjs" index="1">1</mcreference> **PPT-MCP** is a Model Context Protocol (MCP) server that provides comprehensive PowerPoint presentation management capabilities using pure JavaScript/TypeScript. Built with **PptxGenJS**, the most popular PowerPoint library for Node.js with 3,500+ GitHub stars. ## ✨ Features ### šŸš€ **Pure Node.js Stack** - **Zero Python Dependencies** - 100% JavaScript/TypeScript implementation - **Cross-Platform** - Works on Windows, macOS, and Linux - **Modern Architecture** - Built with latest Node.js and TypeScript - **Lightweight** - Minimal dependencies, fast startup ### šŸ“Š **Core Capabilities** - **šŸŽØ Create Presentations** - Generate professional PowerPoint files with custom templates - **āœļø Edit Existing Files** - Advanced editing capabilities with pptx-automizer for real PowerPoint modification - **šŸ“– File Analysis** - Analyze presentation structure and metadata - **šŸ”§ Template Support** - Basic, Professional, and Modern design templates - **šŸ“ File Management** - Smart file handling and directory management ### šŸŽÆ **AI-Powered Workflow** - **Claude Integration** - Seamless integration with Claude Desktop - **Natural Language** - Create presentations using conversational commands - **Intelligent Templates** - AI-suggested layouts and designs - **Batch Operations** - Handle multiple presentations efficiently ## šŸš€ Quick Start ### Prerequisites - **Node.js** 18+ - **Claude Desktop** (for MCP integration) ### Installation #### Option 1: NPM Package (Recommended) ```bash npm install -g ppt-mcp ``` #### Option 2: From Source ```bash git clone https://github.com/guangxiangdebizi/PPT-MCP.git cd PPT-MCP npm install npm run build ``` ### Claude Desktop Configuration Add to your Claude Desktop config: #### Stdio Mode (Local Development) ```json { "mcpServers": { "ppt-mcp": { "command": "node", "args": ["path/to/PPT-MCP/build/index.js"] } } } ``` #### SSE Mode (Production) ```bash # Install and run with Supergateway npm install -g supergateway npx supergateway --stdio "node build/index.js" --port 3100 ``` ```json { "mcpServers": { "ppt-mcp": { "type": "sse", "url": "http://localhost:3100/sse", "timeout": 600 } } } ``` ## šŸ› ļø Available Tools ### 1. **create_presentation** Create new PowerPoint presentations with customizable options. **Parameters:** - `title` (required) - Presentation title - `slides` (optional) - Number of slides (default: 1) - `output_path` (optional) - Custom save location - `template` (optional) - Design template: `basic`, `professional`, `modern` **Example:** ``` Create a presentation titled "Q4 Business Review" with 5 slides using the professional template ``` ### 2. **edit_presentation** Basic editing of existing presentations (Note: Limited by PptxGenJS library capabilities). **Parameters:** - `file_path` (required) - Path to existing presentation - `operation` (required) - Edit type: `add_slide`, `add_text`, `add_image`, `add_table` - `slide_index` (optional) - Target slide number - `content` (optional) - Content to add ### 2.5. **edit_presentation_enhanced** šŸ†• Enhanced PowerPoint editing with comprehensive guidance and step-by-step instructions for manual editing. **Parameters:** - `file_path` (required) - Path to existing presentation - `operation` (required) - Operation type: `get_guidance`, `add_slide`, `replace_text`, `extract_content` - `slide_index` (optional) - Target slide number (1-based) - `content` (optional) - Content specifications **Features:** - šŸ“‹ Step-by-step editing instructions - šŸ”§ Multiple solution approaches - šŸ’” Best practice recommendations - šŸŽÆ Operation-specific guidance **Example:** ``` Get guidance for editing "report.pptx" to replace text content ``` ### 3. **read_presentation** Analyze and extract information from PowerPoint files. **Parameters:** - `file_path` (required) - Path to presentation file - `output_format` (optional) - Format: `text`, `json`, `markdown` - `slide_range` (optional) - Specific slides to read - `include_notes` (optional) - Include speaker notes ### 4. **analyze_presentation** Perform comprehensive analysis of presentation structure and content. **Parameters:** - `file_path` (required) - Path to presentation file - `analysis_type` (optional) - Analysis type: `structure`, `content`, `statistics`, `readability`, `comprehensive` - `detailed` (optional) - Enable detailed analysis ## šŸ“ Project Structure ``` PPT-MCP/ ā”œā”€ā”€ src/ │ ā”œā”€ā”€ index.ts # MCP server entry point │ └── tools/ │ ā”œā”€ā”€ ppt-creator.ts # Creation & editing tools │ └── ppt-reader.ts # Reading & analysis tools ā”œā”€ā”€ build/ # Compiled JavaScript ā”œā”€ā”€ package.json # Dependencies & scripts ā”œā”€ā”€ tsconfig.json # TypeScript configuration ā”œā”€ā”€ README.md # Documentation └── LICENSE # Apache 2.0 License ``` ## šŸ”§ Development ### Build Commands ```bash npm run build # Compile TypeScript npm run dev # Watch mode compilation npm start # Run compiled server npm run sse # Start with Supergateway SSE ``` ### Testing ```bash # Test server startup node build/index.js # Test presentation creation # (Use Claude Desktop or MCP client) ``` ## šŸŽØ Template Showcase ### **Basic Template** - Clean, minimal design - Black text on white background - Perfect for academic or simple business presentations ### **Professional Template** - Corporate color scheme (Dark Slate Gray) - Sophisticated typography - Ideal for business meetings and reports ### **Modern Template** - Vibrant blue and green accents - Contemporary design elements - Great for creative and tech presentations ## šŸš€ Technology Stack - **Runtime:** Node.js 18+ - **Language:** TypeScript - **PPT Engine:** <mcreference link="https://www.npmjs.com/package/pptxgenjs" index="1">1</mcreference> PptxGenJS (3,500+ ⭐) - **MCP SDK:** @modelcontextprotocol/sdk - **Build System:** TypeScript Compiler - **Package Manager:** NPM ## šŸ”„ Migration from Python This version represents a complete rewrite from Python to pure Node.js: ### **Advantages of Node.js Version:** - āœ… **Faster Startup** - No Python interpreter overhead - āœ… **Simpler Deployment** - Single runtime environment - āœ… **Better Integration** - Native JavaScript ecosystem - āœ… **Modern Tooling** - TypeScript, ESM, and modern Node.js features - āœ… **Cross-Platform** - Consistent behavior across operating systems ### **Current Limitations:** - āš ļø **Direct File Modification** - PptxGenJS is creation-focused, not editing-focused - āš ļø **Complex Animations** - Advanced animations not yet supported - āš ļø **Embedded Media** - Video/audio embedding requires additional implementation ### **Solutions Provided:** - āœ… **Comprehensive Guidance** - `edit_presentation_enhanced` tool provides step-by-step instructions - āœ… **Multiple Approaches** - Manual editing, hybrid workflows, and programmatic creation - āœ… **Best Practices** - Detailed recommendations for different editing scenarios *The `edit_presentation_enhanced` tool bridges the gap by providing expert guidance for PowerPoint editing workflows.* ## šŸ¤ Contributing We welcome contributions! Here's how to get started: 1. **Fork** the repository 2. **Create** a feature branch: `git checkout -b feature/amazing-feature` 3. **Commit** your changes: `git commit -m 'Add amazing feature'` 4. **Push** to the branch: `git push origin feature/amazing-feature` 5. **Open** a Pull Request ### Development Guidelines - Follow TypeScript best practices - Add tests for new features - Update documentation - Ensure cross-platform compatibility ## šŸ“„ License This project is licensed under the **Apache License 2.0** - see the [LICENSE](LICENSE) file for details. ## šŸ‘Øā€šŸ’» Author **Xingyu Chen** - 🌐 **LinkedIn:** [Xingyu Chen](https://www.linkedin.com/in/xingyu-chen-b5b3b0313/) - šŸ“§ **Email:** guangxiangdebizi@gmail.com - šŸ™ **GitHub:** [@guangxiangdebizi](https://github.com/guangxiangdebizi/) - šŸ“¦ **NPM:** [@xingyuchen](https://www.npmjs.com/~xingyuchen) ## šŸ™ Acknowledgments - **PptxGenJS Team** - For the excellent PowerPoint generation library - **Anthropic** - For the Model Context Protocol specification - **TypeScript Team** - For the amazing type system - **Node.js Community** - For the robust runtime environment --- <div align="center"> **⭐ Star this repo if you find it helpful!** [šŸ› Report Bug](https://github.com/guangxiangdebizi/PPT-MCP/issues) • [✨ Request Feature](https://github.com/guangxiangdebizi/PPT-MCP/issues) • [šŸ“– Documentation](https://github.com/guangxiangdebizi/PPT-MCP) </div>

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/guangxiangdebizi/PPT-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server