Skip to main content

Advanced MCP server for PowerPoint automation - comprehensive editing, analysis, and multimodal AI integration with intelligent text processing and native bullet conversion

Project description

Volute-PPT Server

A FastMCP 2.0-based Model Context Protocol (MCP) server providing various tools, resources, and prompts for AI model interaction with multimodal AI capabilities including PowerPoint slide image capture.

Features

  • PowerPoint Analysis: Comprehensive metadata extraction, content analysis, file validation
  • PowerPoint Editing: Smart text editing with bullet conversion, shape formatting, content management
  • Slide Management: Add, delete, move, duplicate slides with DSL commands and bulk operations
  • Multimodal AI: Slide image capture with base64-encoded PNG data URLs for vision-based AI analysis

Quick Start

1. Local Development Setup

For local development and PowerPoint COM integration:

# Clone the project
git clone https://gitlab.com/coritan/volute-ppt.git
cd volute-ppt

# Create and activate virtual environment
python -m venv venv
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

2. Configure Environment

# Copy environment template
cp .env.example .env

# Edit .env with your settings
# SERVER_NAME=Volute-PPT
# SERVER_HOST=127.0.0.1
# SERVER_PORT=8001

3. Run the Server

HTTP Transport (Web Service)

python server.py

Server will be available at: http://127.0.0.1:8001

STDIO Transport (Local Tool)

python server.py stdio

Server Components

PowerPoint Tools

Advanced PowerPoint analysis, editing, and processing capabilities with multimodal AI support:

Core Analysis Tools

Tool Description Key Features
extract_powerpoint_metadata Extract comprehensive metadata from presentations Complete technical metadata, shapes, formatting, layouts
analyze_powerpoint_content Analyze content of specific slides Text extraction, content focus, selective slide analysis
get_powerpoint_summary Get high-level presentation overview Quick stats, multimedia detection, slide summaries
validate_powerpoint_file Validate file integrity and compatibility Format validation, corruption detection, structure checks

Slide Management Tools

Tool Description Key Features
manage_presentation_slides Add, delete, move, duplicate slides using DSL DSL commands, COM automation, batch operations
bulk_slide_operations Execute multiple slide operations with validation Transaction-like behavior, pre-validation, error handling

Visual & Multimodal Tools

Tool Description Key Features
capture_slide_images Capture slides as base64 PNG images Multimodal AI integration, configurable resolution, batch capture
compare_presentation_versions Compare two presentation versions Visual diffs, metadata changes, version control support

Content Editing Tools

Tool Description Key Features
edit_slide_text_content Edit text with intelligent bullet conversion Smart bullet detection, multi-level indentation, format preservation
apply_shape_formatting Apply comprehensive shape formatting Font styling, positioning, colors, bulk operations
manage_slide_shapes Add, delete, copy, transform shapes Shape lifecycle, z-order, grouping, transformations

Advanced Tools

Tool Description Key Features
extract_presentation_templates Extract reusable design templates Master slides, color schemes, layout patterns, design systems
get_slide_capture_capabilities Report system capabilities COM availability, system requirements, capability checks

PowerPoint Features

Analysis & Extraction:

  • Comprehensive Metadata Extraction: Core properties, slide dimensions, layout information
  • Shape Analysis: Position, size, formatting, and content of all shapes
  • Text Content: Fonts, colors, alignment, paragraph and run-level formatting
  • Multimedia Elements: Images with crop information, tables with cell data
  • Formatting Details: Fill, line, shadow formatting for all objects
  • Slide Structure: Master slides, layouts, notes, and comments
  • Content Summarization: Automatic extraction of slide titles and content
  • File Validation: Format checking, corruption detection, structural integrity

Editing & Content Management:

  • 🆕 Smart Text Processing: Intelligent bullet detection and conversion to native PowerPoint bullets
  • 🆕 Multi-level Bullet Support: Proper indentation and nesting for complex bullet structures
  • 🆕 Enhanced Newline Handling: Converts \n to line breaks, \\n to literal text
  • 🆕 Shape Editing: Add, delete, copy, transform shapes with comprehensive property control
  • 🆕 Text Formatting: Font styling, colors, alignment, positioning with format preservation
  • 🆕 Auto-resize: Automatic shape resizing to accommodate new content

Slide Management:

  • 🆕 Bulk Operations: Execute multiple slide operations with transaction-like validation
  • 🆕 Error Handling: Pre-validation, rollback support, detailed operation tracking

Multimodal & Visual:

  • 🆕 Multimodal AI Integration: Slide image capture as base64 PNG data URLs for vision-capable LLMs
  • 🆕 Visual Content Analysis: Export slides as images for AI-powered visual understanding
  • 🆕 Version Comparison: Visual and metadata diffs between presentation versions

Advanced Features:

  • 🆕 Template Extraction: Extract reusable design systems, masters, and layouts
  • 🆕 Theme Management: Color schemes, font themes, and design pattern extraction

Resources

  • config://server - PowerPoint server configuration
  • local://system - Local PowerPoint system status
  • local://files/{directory} - Get PowerPoint files in directory

Integration Approaches

Local MCP Integration (Desktop Apps)

Best for: Claude Desktop, local AI applications, PowerPoint integration, multimodal AI workflows

{
  "volute-ppt": {
    "command": "python",
    "args": [
      "-m",
      "volute_ppt.server_local",
      "stdio"
    ],
    "env": {},
    "working_directory": null
  }
}

SDK Toolkit

The package provides a high-level toolkit that lets you directly use PowerPoint tools without dealing with MCP server setup:

from volute_ppt import (
    # Core Analysis
    extract_powerpoint_metadata, analyze_powerpoint_content,
    # Multimodal & Visual
    capture_slide_images, compare_presentation_versions,
    # Content Editing
    edit_slide_text_content, manage_slide_shapes
)

# Extract metadata from a presentation
metadata = extract_powerpoint_metadata(
    presentation_path="./presentation.pptx",
    include_slide_content=True
)

# Capture slides as images for AI analysis
images = capture_slide_images(
    presentation_path="./presentation.pptx",
    slide_numbers=[1, 2, 3],  # Specific slides or omit for all
    image_width=1024,         # Optional: control image size
    image_height=768
)

# Edit slide text with intelligent bullet conversion
edit_result = edit_slide_text_content(
    presentation_path="./presentation.pptx",
    slide_number=2,
    text_updates={
        "Title 1": "New Title",
        "Content 1": "• First bullet\n• Second bullet\n  - Sub-bullet"
    },
    convert_bullets=True,  # Converts text bullets to native PowerPoint bullets
    preserve_formatting=True
)

Contributing

  1. Fork the git repository
  2. Create a feature branch
  3. Add your changes with tests
  4. Submit a pull request

License

MIT License - see LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

volute_ppt-1.4.5.tar.gz (109.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

volute_ppt-1.4.5-py3-none-any.whl (74.8 kB view details)

Uploaded Python 3

File details

Details for the file volute_ppt-1.4.5.tar.gz.

File metadata

  • Download URL: volute_ppt-1.4.5.tar.gz
  • Upload date:
  • Size: 109.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for volute_ppt-1.4.5.tar.gz
Algorithm Hash digest
SHA256 6f21fdabe92266cab487776e5cc5f2369d328eb4547e18753a1a18f9bded6e36
MD5 2c422775920c73cb565fd53d8f77e016
BLAKE2b-256 dc3ed3e8fa9d60a2e0983ae761885f885918f8589f6fc5d23daf6382f2b39c74

See more details on using hashes here.

File details

Details for the file volute_ppt-1.4.5-py3-none-any.whl.

File metadata

  • Download URL: volute_ppt-1.4.5-py3-none-any.whl
  • Upload date:
  • Size: 74.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for volute_ppt-1.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 8ea736db73d46e9af15b636e0f0909ade38d92e9115619e1a51ac91a9ba909e2
MD5 763d3edece2e84a01396f45754c88a78
BLAKE2b-256 f609e6de7cbac7de8967db4e9705f68cb2fb30dcdd2e8562d634d5f8703e793d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page