powerpoint
by: supercurses
A MCP Server for creating Powerpoint Presentations
📌Overview
Purpose: The MCP server aims to automate the creation of PowerPoint presentations by providing a suite of tools that generate slides with various content formats.
Overview: This framework simplifies the process of constructing presentations by allowing users to create and edit presentations programmatically. It supports multiple types of slides, ensuring a versatile and efficient presentation-building experience.
Key Features:
-
create-presentation: Initializes a new presentation, enabling users to start adding content right away.
-
add-slide-title-only: Adds a title slide, helping to define the main topic of the presentation effectively.
-
add-slide-section-header: Inserts section headers to structure the presentation systematically.
-
add-slide-title-content: Introduces slides with both titles and content, allowing for detailed explanations and information presentation.
-
add-slide-title-with-table: Incorporates tables based on provided data, enhancing data visualization within the presentation.
-
add-slide-title-with-chart: Generates slides with charts that dynamically represent data, adapting to the best visual format for interpretation.
-
add-slide-picture-with-caption: Facilitates the addition of images, enhancing visual engagement and contextual illustration.
-
open-presentation: Provides functionality to edit existing presentations while ensuring data safety through automatic backups.
-
save-presentation: Ensures all changes are stored appropriately, finalizing the presentation process.
-
generate-and-save-image: Allows for the creation of images through AI, providing custom visuals tailored for the presentation needs.
Powerpoint MCP Server
A MCP server project that creates PowerPoint presentations.
Components
Tools
The server implements multiple tools:
create-presentation
: Starts a presentation- Takes
name
as a required string argument - Creates a presentation object
- Takes
add-slide-title-only
: Adds a title slide to the presentation- Takes
presentation_name
andtitle
as required string arguments - Creates a title slide with
title
and adds it to the presentation
- Takes
add-slide-section-header
: Adds a section header slide to the presentation- Takes
presentation_name
andheader
as required string arguments - Creates a section header slide with
header
(and optionallysubtitle
) and adds it to the presentation
- Takes
add-slide-title-content
: Adds a title with content slide to the presentation- Takes
presentation_name
,title
, andcontent
as required string arguments - Creates a title with content slide with
title
andcontent
and adds it to the presentation
- Takes
add-slide-title-with-table
: Adds a title slide with a table- Takes
presentation_name
,title
, anddata
as required string and array arguments - Creates a title slide with
title
and adds a table dynamically built from data
- Takes
add-slide-title-with-chart
: Adds a title slide with a chart- Takes
presentation_name
,title
, anddata
as required string and object arguments - Creates a title slide with
title
and adds a chart dynamically built from data. Attempts to figure out the best type of chart from the data source.
- Takes
add-slide-picture-with-caption
: Adds a picture with caption slide- Takes
presentation_name
,title
,caption
,image_path
as required string arguments - Creates a picture with caption slide using the supplied
title
,caption
, andimage_path
. Can either use images created via thegenerate-and-save-image
tool or animage_path
supplied by the user (image must exist in folder_path)
- Takes
open-presentation
: Opens a presentation for editing- Takes
presentation_name
as a required argument - Opens the given presentation and automatically saves a backup of it as
backup.pptx
- Allows the client to work with existing pptx files and add slides to them. The client should call the
save-presentation
tool at the end.
- Takes
save-presentation
: Saves the presentation to a file- Takes
presentation_name
as a required argument - Saves the presentation to the folder_path; the client must call this tool to finalize the process.
- Takes
generate-and-save-image
: Generates an image for the presentation using a FLUX model- Takes
prompt
andfile_name
as required string arguments - Creates an image using the free FLUX model on TogetherAI (requires an API key)
- Takes
Configuration
An environment variable is required for image generation via TogetherAI. Register for an account at:
https://api.together.xyz/settings/api-keys
"env": {
"TOGETHER_API_KEY": "api_key"
}
A folder_path
is required. All presentations and images will be saved to this folder.
"--folder-path",
"/path/to/decks_folder"
Quickstart
Install
Make sure you have UV installed
MacOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Clone the repository
git clone https://github.com/supercurses/powerpoint.git
Claude Desktop Configuration
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
--directory
: the path where you cloned the repo above--folder-path
: the path where PowerPoint decks and images will be saved to. Also the path where you should place any images you want the MCP server to use.
Example snippet to add to your claude_desktop_config.json:
"mcpServers": {
"powerpoint": {
"command": "uv",
"env": {
"TOGETHER_API_KEY": "api_key"
},
"args": [
"--directory",
"/path/to/powerpoint",
"run",
"powerpoint",
"--folder-path",
"/path/to/decks_folder"
]
}
}
Usage Examples
Create a presentation about fish, create some images and include tables and charts
Create a presentation about the attached paper. Please use the following images in the presentation:
author.jpeg
Assuming you have SQLite MCP Server installed:
Review 2024 Sales Data table. Create a presentation showing current trends, use tables and charts as appropriate.
License
This MCP server is licensed under the MIT License. You are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.