Skip to main content
Glama
README.md9.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