npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

powerpoint-mcp-ultimate

v1.0.0

Published

Ultimate PowerPoint MCP Server - Complete PowerPoint automation for AI agents via Model Context Protocol

Readme

PowerPoint MCP Ultimate Server

npm version License: MIT TypeScript Test Coverage

The Ultimate PowerPoint MCP Server - Providing AI agents with complete programmatic access to all PowerPoint functionality through the Model Context Protocol (MCP).

🚀 Features

Complete PowerPoint Automation (50+ Tools)

  • File Operations: Create, open, save, close, delete, duplicate, export presentations
  • Slide Management: Add, delete, move, duplicate, reorder slides with layouts and themes
  • Content Creation: Text, shapes, images, tables, charts, SmartArt, WordArt, icons, hyperlinks, media
  • Advanced Features: Animations, transitions, action buttons, watermarks, master slides, password protection
  • Collaboration: Comments, speaker notes, version control, review workflows, change tracking
  • Formatting & Styling: Themes, color schemes, backgrounds, effects, font management, templates
  • Enterprise Tools: Batch operations, AI content generation, quality analysis, analytics, compliance

AI Agent Optimization

  • MCP Protocol Compliance: Full JSON schema validation with structured responses
  • Context-Aware Suggestions: AI-powered recommendations and next actions
  • Intelligent Error Handling: Descriptive messages with recovery suggestions
  • Batch Operations: Efficient multi-step workflow support
  • Rich Metadata: Comprehensive response data for AI decision-making

Enterprise-Grade Features

  • Security: Input validation, rate limiting, audit logging, access control, encryption
  • Performance: Real-time monitoring, optimization, caching, concurrent operation support
  • Cross-Platform: Windows, macOS, Linux compatibility
  • Scalability: Handle enterprise-scale presentations and concurrent users
  • Compliance: WCAG 2.1 AA, Section 508, enterprise standards validation

📦 Installation

npm install powerpoint-mcp-ultimate

Prerequisites

  • Node.js 18.0.0 or higher
  • npm 9.0.0 or higher

🏃 Quick Start

1. Basic Usage

import { PowerPointToolsUltimate } from 'powerpoint-mcp-ultimate';

const tools = new PowerPointToolsUltimate();
await tools.initialize();

// Create a new presentation
const createResponse = await tools.executeTool('create_presentation', {
  title: 'My Presentation',
  author: 'AI Assistant',
  theme: 'Corporate'
});

const presentationId = createResponse.data.id;

// Add a slide
await tools.executeTool('add_slide', {
  presentationId,
  layout: 'TITLE_AND_CONTENT',
  title: 'Welcome Slide'
});

// Add content
await tools.executeTool('add_text', {
  presentationId,
  slideIndex: 0,
  text: 'Welcome to AI-Powered Presentations!',
  placeholder: 'title'
});

// Save the presentation
await tools.executeTool('save_presentation', {
  presentationId,
  format: 'pptx'
});

2. MCP Server Setup

# Start the MCP server
npm start

# Or run in development mode
npm run dev

3. Configuration

Create a .env file:

# Server Configuration
NODE_ENV=production
LOG_LEVEL=info

# Security Configuration
ENABLE_RATE_LIMIT=true
RATE_LIMIT_MAX=100
ENABLE_AUDIT_LOG=true
MAX_FILE_SIZE=104857600

# Performance Configuration
ENABLE_MONITORING=true
MAX_CONCURRENT_OPS=10
ENABLE_CACHING=true

# Enterprise Configuration
ENABLE_COMPLIANCE=true
ENABLE_ANALYTICS=true

🛠️ Available Tools

File Operations (8 tools)

| Tool | Description | Example | |------|-------------|---------| | create_presentation | Create new presentation | { title: "Q4 Report", theme: "Corporate" } | | open_presentation | Open existing file | { filePath: "./presentation.pptx" } | | save_presentation | Save to file | { presentationId: "uuid", format: "pptx" } | | close_presentation | Close presentation | { presentationId: "uuid" } | | delete_presentation | Delete file | { filePath: "./old.pptx", confirmed: true } | | duplicate_presentation | Copy presentation | { sourceFilePath: "./src.pptx", targetFilePath: "./copy.pptx" } | | export_presentation | Export to formats | { presentationId: "uuid", format: "pdf" } | | get_presentation_info | Get metadata | { presentationId: "uuid" } |

Slide Operations (8 tools)

| Tool | Description | Example | |------|-------------|---------| | add_slide | Add new slide | { presentationId: "uuid", layout: "TITLE_SLIDE" } | | delete_slide | Remove slide | { presentationId: "uuid", slideIndex: 2 } | | move_slide | Change position | { presentationId: "uuid", fromIndex: 3, toIndex: 1 } | | duplicate_slide | Copy slide | { presentationId: "uuid", slideIndex: 1 } | | reorder_slides | Batch reorder | { presentationId: "uuid", slideOrder: [1,3,2,4] } | | apply_slide_layout | Change layout | { presentationId: "uuid", slideIndex: 1, layout: "TWO_CONTENT" } | | get_slide_layouts | List layouts | { category: "content" } | | get_slide_thumbnails | Generate previews | { presentationId: "uuid", size: "medium" } |

Content Operations (12 tools)

| Tool | Description | Example | |------|-------------|---------| | add_text | Add formatted text | { presentationId: "uuid", slideIndex: 0, text: "Title" } | | add_shape | Add geometric shapes | { presentationId: "uuid", slideIndex: 0, type: "rectangle" } | | add_image | Insert images | { presentationId: "uuid", slideIndex: 0, imagePath: "./logo.png" } | | add_table | Create data tables | { presentationId: "uuid", slideIndex: 0, rows: 4, columns: 3 } | | add_chart | Insert charts | { presentationId: "uuid", slideIndex: 0, type: "column", data: {...} } | | add_smartart | Add diagrams | { presentationId: "uuid", slideIndex: 0, type: "process" } | | add_wordart | Stylized text | { presentationId: "uuid", slideIndex: 0, text: "WordArt" } | | add_icon | Insert icons | { presentationId: "uuid", slideIndex: 0, iconName: "chart-line" } | | add_hyperlink | Add links | { presentationId: "uuid", slideIndex: 0, url: "https://..." } | | add_media | Embed video/audio | { presentationId: "uuid", slideIndex: 0, mediaPath: "./video.mp4" } | | format_content | Apply formatting | { elementId: "uuid", formatType: "text", properties: {...} } | | group_objects | Group elements | { presentationId: "uuid", slideIndex: 0, elementIds: [...] } |

Advanced Features (10 tools)

  • add_animation - Add slide animations
  • add_transition - Set slide transitions
  • add_action_button - Interactive buttons
  • add_watermark - Add watermarks
  • set_slideshow_settings - Configure slideshow
  • add_custom_property - Custom metadata
  • set_password_protection - Security settings
  • create_master_slide - Master slide templates
  • apply_master_slide - Apply master slides
  • create_slide_template - Custom templates

Collaboration Tools (6 tools)

  • add_comment - Add review comments
  • add_speaker_notes - Speaker notes
  • track_changes - Change tracking
  • start_review_workflow - Review process
  • manage_versions - Version control
  • share_presentation - Sharing options

Formatting & Styling (8 tools)

  • apply_theme - Apply presentation themes
  • set_color_scheme - Color schemes
  • set_slide_background - Slide backgrounds
  • apply_text_formatting - Text formatting
  • set_font_defaults - Default fonts
  • create_style_template - Style templates
  • apply_shape_formatting - Shape styling
  • optimize_formatting - Format optimization

Enterprise Tools (6 tools)

  • batch_operations - Bulk operations
  • ai_content_generation - AI-powered content
  • quality_analysis - Quality assessment
  • presentation_analytics - Usage analytics
  • security_audit - Security validation
  • compliance_validation - Standards compliance

🎯 AI Agent Examples

Business Presentation Creation

// AI Agent creates a quarterly business review
const agent = new PowerPointAIAgent();

// Step 1: Create presentation
const presentation = await agent.createPresentation({
  title: 'Q4 2024 Business Review',
  theme: 'Corporate',
  company: 'TechCorp Inc.'
});

// Step 2: Add title slide
await agent.addTitleSlide({
  title: 'Q4 2024 Business Review',
  subtitle: 'Performance Highlights & Strategic Outlook'
});

// Step 3: Add agenda
await agent.addAgendaSlide([
  'Financial Performance',
  'Market Analysis', 
  'Key Achievements',
  'Q1 2025 Outlook'
]);

// Step 4: Add financial data with chart
await agent.addDataSlide({
  title: 'Financial Performance',
  chartType: 'column',
  data: {
    categories: ['Q1', 'Q2', 'Q3', 'Q4'],
    revenue: [12.5, 15.2, 18.7, 22.1],
    target: [13.0, 16.0, 19.0, 21.0]
  }
});

// Step 5: Save and export
await agent.savePresentation();
await agent.exportToPDF();

Educational Content Generation

// AI Agent creates educational content
const eduAgent = new EducationalAIAgent();

await eduAgent.createLearningModule({
  topic: 'Machine Learning Basics',
  audience: 'beginners',
  duration: '30 minutes',
  includeInteractivity: true
});

// Auto-generates:
// - Learning objectives slide
// - Concept explanation with diagrams
// - Interactive examples
// - Knowledge check questions
// - Summary and next steps

🔧 Development

Setup Development Environment

# Clone repository
git clone https://github.com/powerpoint-mcp/ultimate-server.git
cd powerpoint-mcp-ultimate

# Install dependencies
npm install

# Run tests
npm test

# Run with coverage
npm run test:coverage

# Run mutation testing
npm run test:mutation

# Start development server
npm run dev

Testing

# Run all tests
npm run test:all

# Run specific test suites
npm run test:unit
npm run test:integration
npm run test:ai-agent
npm run test:performance
npm run test:security
npm run test:enterprise

# Generate coverage report
npm run test:coverage:check

Building

# Build for production
npm run build

# Validate package
npm run validate:package

# Run security audit
npm run security:audit

# Generate documentation
npm run docs:build

📊 Performance

Benchmarks

  • Create Presentation: < 5 seconds
  • Add Slide: < 1 second
  • Save Presentation: < 3 seconds
  • Export to PDF: < 10 seconds
  • Concurrent Operations: 100+ simultaneous users
  • Memory Usage: < 100MB for typical presentations

Scalability

  • Enterprise Scale: Tested with 1000+ presentations
  • Concurrent Users: Supports 100+ simultaneous operations
  • Large Presentations: Handles 500+ slides efficiently
  • Memory Management: Automatic cleanup and optimization

🔒 Security

Security Features

  • Input Validation: Comprehensive parameter validation
  • Rate Limiting: Configurable request throttling
  • Access Control: Role-based permissions
  • Audit Logging: Complete operation tracking
  • File Security: Path traversal prevention
  • Content Security: XSS and injection protection
  • Encryption: Optional data encryption

Compliance

  • WCAG 2.1 AA: Accessibility compliance
  • Section 508: Government accessibility standards
  • Enterprise Standards: Custom compliance validation
  • Security Auditing: Automated vulnerability scanning

📈 Monitoring & Analytics

Performance Monitoring

  • Real-time operation metrics
  • Memory usage tracking
  • Error rate monitoring
  • Response time analysis
  • Concurrent operation tracking

Analytics

  • Presentation usage statistics
  • User engagement metrics
  • Feature utilization tracking
  • Performance trend analysis
  • Custom analytics dashboards

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Run the test suite
  6. Submit a pull request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🆘 Support

🗺️ Roadmap

Upcoming Features

  • [ ] Real-time collaboration
  • [ ] Advanced AI content generation
  • [ ] Cloud storage integration
  • [ ] Mobile device support
  • [ ] Advanced analytics dashboard
  • [ ] Plugin system for extensions

PowerPoint MCP Ultimate - Empowering AI agents with complete PowerPoint automation capabilities.

Made with ❤️ by the PowerPoint MCP Team