powerpoint MCP server

SSE

by supercurses

142 443 downloads Not rated yet MIT

About

Create PowerPoint presentations with AI-generated images using the TogetherAI API.

Details

Transport
SSE
License
MIT

Explore

- Create new presentations with a specified name
- Add title-only, section header, title‑with‑content, table, chart, and picture‑with‑caption slides
- Open existing presentations for editing (automatically saves a backup)
- Generate images via the FLUX model (requires TogetherAI API key)
- Save presentations to a user‑defined folder path

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name powerpoint MCP server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

An environment variable is required for image generation via TogetherAI
Register for an account: 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"

MacOS/Linux

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

"mcpServers": {
"powerpoint": {
"command": "uv",
"env": {
"TOGETHER_API_KEY": "api_key"
},
"args": [
"--directory",
"/path/to/powerpoint",
"run",
"powerpoint",
"--folder-path",
"/path/to/decks_folder"
]
}



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

```

Arcade_ListApps

See the apps the current caller can act on and whether they are connected. Returns each app's id, name, connected state, and (when connected) the account it is connected as. Call this to answer "what apps do I have?" or when the caller's connection state may have changed since the session started.

MicrosoftPowerpoint_CreatePresentation

Create a new PowerPoint presentation in OneDrive. The presentation will be created with a title slide containing the specified title.

MicrosoftPowerpoint_CreateSlide

Append a new slide to the end of an existing PowerPoint presentation in OneDrive. The slide will be added at the end of the presentation. Both title and body are optional to support layouts like BLANK or TITLE_ONLY. For presentations larger than 4 MB, the upload uses a resumable session. Concurrency protection (etag check) is best-effort in that case, since Microsoft Graph upload sessions do not support If-Match headers.

MicrosoftPowerpoint_CreateTwoContentSlide

Append a TWO_CONTENT slide with side-by-side content areas to a PowerPoint presentation. This layout is useful for comparisons, pros/cons lists, or any content that benefits from a two-column layout. For presentations larger than 4 MB, the upload uses a resumable session. Concurrency protection (etag check) is best-effort in that case, since Microsoft Graph upload sessions do not support If-Match headers.

MicrosoftPowerpoint_GetAllSlideNotes

Get all speaker notes from every slide in a PowerPoint presentation. Returns notes for all slides in one call, which is more efficient than calling get_slide_notes for each slide individually. Notes are returned in markdown format.

MicrosoftPowerpoint_GetPresentationAsMarkdown

Get the content of a PowerPoint presentation as markdown. This tool downloads the presentation and converts it to a markdown representation, preserving text content, tables, and chart data. Images and other media are represented as placeholders.

MicrosoftPowerpoint_GetSlideNotes

Get the speaker notes from a specific slide in a PowerPoint presentation. Speaker notes are returned in markdown format, preserving basic formatting like bold, italic, and bullet points.

MicrosoftPowerpoint_SetSlideNotes

Set or update the speaker notes on a specific slide in a PowerPoint presentation. Notes can be formatted using markdown: - **bold** for bold text - *italic* for italic text - __underline__ for underlined text - Lines starting with - or * become bullet points For presentations larger than 4 MB, the upload uses a resumable session. Concurrency protection (etag check) is best-effort in that case, since Microsoft Graph upload sessions do not support If-Match headers. - Indent with spaces for ne…

MicrosoftPowerpoint_WhoAmI

Get information about the current user and their PowerPoint environment.

The server implements multiple tools:
- ``create-presentation`: Starts a presentation
- Takes "name" as required string arguments
- Creates a presentation object
-
`add-slide-title-only`: Adds a title slide to the presentation
- Takes "presentation_name" and "title" as required string arguments
- Creates a title slide with "title" and adds it to presentation
-
`add-slide-section-header`: Adds a section header slide to the presentation
- Takes "presentation_name" and "header" as required string arguments
- Creates a section header slide with "header" (and optionally "subtitle") and adds it to the presentation
-
`add-slide-title-content`: Adds a title with content slide to the presentation
- Takes "presentation_name", "title", "content" as required string arguments
- Creates a title with content slide with "title" and "content" and adds it to presentation
-
`add-slide-title-with-table`: Adds a title slide with a table
- Takes "presentation_name", "title", "data" as required string and array arguments
- Creates a title slide with "title" and adds a table dynamically built from data
-
`add-slide-title-with-chart`: Adds a title slide with a chart
- Takes "presentation_name", "title", "data" 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.
-
`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", and "image_path". Can either use images created via the "generate-and-save-image" tool or use an "image_path" supplied by the user (image must exist in folder_path)
-
`open-presentation`: Opens a presentation for editing
- Takes "presentation_name" as required arguments
- Opens the given presentation and automatically saves a backup of it as "backup.pptx"
- This tool allows the client to work with existing pptx files and add slides to them. Just make sure the client calls "save-presentation" tool at the end.
-
`save-presentation`: Saves the presentation to a file.
- Takes "presentation_name" as required arguments.
- Saves the presentation to the folder_path. The client must call this tool to finalize the process.
-
`generate-and-save-image``: Generates an image for the presentation using a FLUX model
- Takes "prompt" and "file_name" as required string arguments
- Creates an image using the free FLUX model on TogetherAI (requires an API key)

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "powerpoint mcp server": {
            "powerpoint": {
                "command": "uv",
                "args": [
                    "--directory",
                    "/path/to/powerpoint",
                    "run",
                    "powerpoint",
                    "--folder-path",
                    "/path/to/decks_folder"
                ],
                "env": {
                    "TOGETHER_API_KEY": ""
                }
            }
        }
    }
}

McpServers

{
    "powerpoint": {
        "command": "uv",
        "args": [
            "--directory",
            "/path/to/powerpoint",
            "run",
            "powerpoint",
            "--folder-path",
            "/path/to/decks_folder"
        ],
        "env": {
            "TOGETHER_API_KEY": ""
        }
    }
}

A MCP server project that creates powerpoint presentations

<a href="https://glama.ai/mcp/servers/h1wl85c8gs">
Powerpoint Server MCP server
</a>

Components

Tools

The server implements multiple tools:
- ``create-presentation`: Starts a presentation
- Takes "name" as required string arguments
- Creates a presentation object
-
`add-slide-title-only`: Adds a title slide to the presentation
- Takes "presentation_name" and "title" as required string arguments
- Creates a title slide with "title" and adds it to presentation
-
`add-slide-section-header`: Adds a section header slide to the presentation
- Takes "presentation_name" and "header" as required string arguments
- Creates a section header slide with "header" (and optionally "subtitle") and adds it to the presentation
-
`add-slide-title-content`: Adds a title with content slide to the presentation
- Takes "presentation_name", "title", "content" as required string arguments
- Creates a title with content slide with "title" and "content" and adds it to presentation
-
`add-slide-title-with-table`: Adds a title slide with a table
- Takes "presentation_name", "title", "data" as required string and array arguments
- Creates a title slide with "title" and adds a table dynamically built from data
-
`add-slide-title-with-chart`: Adds a title slide with a chart
- Takes "presentation_name", "title", "data" 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.
-
`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", and "image_path". Can either use images created via the "generate-and-save-image" tool or use an "image_path" supplied by the user (image must exist in folder_path)
-
`open-presentation`: Opens a presentation for editing
- Takes "presentation_name" as required arguments
- Opens the given presentation and automatically saves a backup of it as "backup.pptx"
- This tool allows the client to work with existing pptx files and add slides to them. Just make sure the client calls "save-presentation" tool at the end.
-
`save-presentation`: Saves the presentation to a file.
- Takes "presentation_name" as required arguments.
- Saves the presentation to the folder_path. The client must call this tool to finalize the process.
-
`generate-and-save-image`: Generates an image for the presentation using a FLUX model
- Takes "prompt" and "file_name" as required string arguments
- Creates an image using the free FLUX model on TogetherAI (requires an API key)

Configuration

An environment variable is required for image generation via TogetherAI
Register for an account: 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 repo
git clone https://github.com/supercurses/powerpoint.git
Claude Desktop

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.

  # Add the server 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

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.

Videos about powerpoint MCP server

Relevant YouTube tutorials, setups, and demos