MisunK/powerpoint-mcp-server
If you are the rightful owner of powerpoint-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server that provides comprehensive PowerPoint (.pptx) editing capabilities.
PowerPoint MCP Server
A Model Context Protocol (MCP) server that provides comprehensive PowerPoint (.pptx) editing capabilities. This server allows you to create, edit, and manipulate PowerPoint presentations programmatically through Claude and other MCP-compatible clients.
Features
- Create Presentations: Start with blank presentations or use existing files as templates
- Slide Management: Add, delete, and read slide information
- Text Editing: Edit titles, content, and add formatted text boxes
- Shape Operations: Add rectangles, ovals, and triangles with optional text
- Image Support: Insert images with customizable positioning and sizing
- Table Operations: Create tables and edit cell content
- Text Extraction: Extract all text content from presentations
- File Listing: List all PowerPoint files in the current directory
Installation
Prerequisites
- Python 3.8 or higher
- pip (Python package installer)
Setup Steps
-
Clone or download this repository
git clone <repository-url> cd powerpoint-mcp-server
-
Create a virtual environment (recommended)
python -m venv venv
-
Activate the virtual environment
On Windows:
venv\Scripts\activate
On macOS/Linux:
source venv/bin/activate
-
Install dependencies
pip install -r requirements.txt
Usage
Running the MCP Server
The server can be run in two modes:
1. MCP Mode (for use with Claude Desktop or other MCP clients)
python pptx_mcp_server.py --stdio
2. HTTP Mode (for testing)
python pptx_mcp_server.py
This will start an HTTP server on localhost:8000
for testing purposes.
Configuring with Claude Desktop
To use this MCP server with Claude Desktop, add the following configuration to your Claude Desktop config file:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"powerpoint-editor": {
"command": "python",
"args": ["/path/to/pptx_mcp_server.py", "--stdio"],
"env": {}
}
}
}
Replace /path/to/pptx_mcp_server.py
with the actual path to the server file.
Available Tools
Presentation Management
create_presentation
: Create a new PowerPoint fileread_presentation_info
: Get detailed information about a presentationextract_text
: Extract all text content from a presentation
Slide Operations
add_slide
: Add a new slide with optional title and contentdelete_slide
: Remove a specific slide from the presentationedit_slide_text
: Edit text in slides (title, content, or specific shapes)
Content Addition
add_text_box
: Add formatted text boxes to slidesadd_shape
: Add geometric shapes (rectangle, oval, triangle)add_image
: Insert images into slidesadd_table
: Create tables in slides
Table Operations
update_table_cell
: Edit individual table cells
File Management
list_pptx_files
(resource): List all .pptx files in the current directory
Example Usage
Once connected to an MCP client like Claude Desktop, you can use natural language commands such as:
- "Create a new presentation called 'quarterly-report.pptx'"
- "Add a title slide with the title 'Q4 Financial Results'"
- "Insert a table with 3 rows and 4 columns on slide 2"
- "Add a text box with the content 'Key Findings' to slide 3"
- "Extract all text from the presentation"
Error Handling
The server includes comprehensive error handling for:
- File not found scenarios
- Invalid slide numbers or indices
- Missing presentation elements
- File permission issues
- Invalid shape types and parameters
All errors are logged and returned with descriptive messages to help with debugging.
Supported File Formats
- PowerPoint files (.pptx) - both reading and writing
- Template files (.pptx) - for creating new presentations from existing layouts
- Image files for insertion: PNG, JPEG, GIF, BMP
Limitations
- Only supports .pptx format (not .ppt legacy format)
- Slide animations and transitions are not supported
- Advanced formatting features like themes and master slides have limited support
- Chart creation is not currently implemented
Development
Project Structure
powerpoint-mcp-server/
āāā pptx_mcp_server.py # Main server implementation
āāā requirements.txt # Python dependencies
āāā README.md # This file
āāā examples/ # Example presentations (optional)
Adding New Features
To add new PowerPoint manipulation features:
- Add a new
@mcp.tool()
decorated function topptx_mcp_server.py
- Follow the existing error handling patterns
- Update the README with the new functionality
- Test with both MCP and HTTP modes
Testing
To test the server:
- Run in HTTP mode:
python pptx_mcp_server.py
- Use curl or a REST client to test endpoints
- Test with Claude Desktop for full MCP integration
Troubleshooting
Common Issues
-
"Module not found" errors: Ensure all dependencies are installed and virtual environment is activated
-
File permission errors: Check that the script has read/write permissions for the target directory
-
Claude Desktop not connecting: Verify the config file path and syntax, ensure the Python path is correct
-
PowerPoint files not opening: Ensure files are in .pptx format and not corrupted
Debug Mode
The server logs to stderr by default. To see detailed logs:
python pptx_mcp_server.py --stdio 2>debug.log
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Submit a pull request with clear description
License
This project is open source. Please check the repository for license details.
Support
For issues and questions:
- Check the troubleshooting section above
- Review the MCP documentation at https://modelcontextprotocol.io/
- Open an issue in the repository
Version History
v1.0.0
- Initial release with core PowerPoint editing functionality
- Support for slides, text, shapes, images, and tables
- MCP server implementation with FastMCP