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
\nto line breaks,\\nto 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 configurationlocal://system- Local PowerPoint system statuslocal://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
- Fork the git repository
- Create a feature branch
- Add your changes with tests
- Submit a pull request
License
MIT License - see LICENSE file for details.
Metadata
Release files for volute-ppt 1.4.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| volute_ppt-1.4.6.tar.gz | 113.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| volute_ppt-1.4.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 193.7 kB
Release files / volute_ppt-1.4.6.tar.gz
| Download URL | volute_ppt-1.4.6.tar.gz |
|---|---|
| Size | 113.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
acc4e10d17ca4c9ec36b74f901b87075a0c39ba7360b8225d0044e77aa0729a3
|
|
BLAKE2b-256 checksum How to use checksums |
5e96f94f1a105453196671e6234e199290db2508af148e81db5257ce57f29290
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / volute_ppt-1.4.6-py3-none-any.whl
| Download URL | volute_ppt-1.4.6-py3-none-any.whl |
|---|---|
| Size | 79.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ec92de8d284c9f0aa498847892d3dc1ba7905556e99231bd7db8d0b6c20e75ef
|
|
BLAKE2b-256 checksum How to use checksums |
afc84095dfdf521c136aa665f9b145b4f80291ac8f1f491f1cb4869f18db45f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Security for volute-ppt 1.4.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.