PowerPoint MCP server

Enables creation and manipulation of Microsoft PowerPoint presentations through natural language, offering tools for managing slides, shapes, charts, and tables with styling and visualization capabilities.
Back to servers
Setup instructions
Provider
Jens Tangen
Release date
Mar 24, 2025
Language
Python
Stats
16 stars

Microsoft Office MCP Servers allow you to interact with Microsoft Office applications through AI assistance. Currently, these servers support PowerPoint (for creating and manipulating presentations) and Excel (for interacting with workbooks and spreadsheets), using pywin32 for COM automation to directly communicate with running Office applications.

Prerequisites

  • Windows operating system
  • Microsoft Office installed (PowerPoint and/or Excel)
  • Python 3.7+
  • pywin32 package

Installation

  1. Clone the repository:
git clone https://github.com/jenstangen1/mcp-pptx.git
cd mcp-pptx
  1. Install dependencies using uv:
uv pip install pywin32
  1. Run the pywin32 post-install script with administrator privileges:
python C:\path\to\your\env\Scripts\pywin32_postinstall.py -install

Setting up with Claude

To integrate these MCP servers with Claude, add the following configuration to your Claude Desktop app settings:

{
    "mcpServers": {
        "powerpoint_mcp_win32": {
            "command": "uv",
            "args": [
                "run",
                "mcp_powerpoint_server_win32.py"
            ],
            "cwd": "C:\\path\\to\\your\\workspace"
        },
        "excel_mcp_win32": {
            "command": "uv",
            "args": [
                "run",
                "mcp_excel_server_win32.py"
            ],
            "cwd": "C:\\path\\to\\your\\workspace"
        }
    }
}

Replace C:\\path\\to\\your\\workspace with your actual workspace path.

PowerPoint MCP Server

Available MCP Tools

Presentation Management

  • list_presentations: List all PowerPoint files in the workspace
  • upload_presentation: Upload a new presentation to the workspace
  • save_presentation: Save the current presentation

Slide Operations

  • add_slide: Add a new slide to the presentation
  • delete_slide: Delete a slide from the presentation
  • get_slide_count: Get the total number of slides in the presentation
  • analyze_slide: Analyze the content of a slide
  • set_background_color: Set the background color of a slide

Element Operations

  • add_text: Add text to a slide
  • add_shape: Add a shape to a slide
  • edit_element: Edit an element's properties
  • style_element: Apply styling to an element
  • connect_shapes: Connect two shapes with a connector
  • find_element: Find elements on a slide based on criteria

Financial Tools

  • get_company_financials: Get financial data for a company (currently returns dummy data)
  • create_financial_chart: Create a financial chart on a slide
  • create_comparison_table: Create a comparison table for companies

Template Operations

  • list_templates: List all available templates
  • apply_template: Apply a template to a presentation
  • create_slide_from_template: Create a new slide from a template
  • save_as_template: Save a slide as a template

Debug Tools

  • debug_element_mappings: Debug tool to inspect element mappings for a slide

Excel MCP Server

Available MCP Tools

Workbook Management

  • list_open_workbooks: List all currently open Excel workbooks
  • save_workbook: Save a workbook to disk with optional format selection

Worksheet Operations

  • list_worksheets: List all worksheets in a workbook
  • add_worksheet: Add a new worksheet to a workbook
  • get_worksheet: Get a worksheet by name or index

Cell and Range Operations

  • get_cell_value: Read a single cell's value
  • set_cell_value: Set a single cell's value
  • get_range_values: Read values from a range of cells
  • set_range_values: Set values for a range of cells

Usage Examples

PowerPoint Examples

You: Create a new slide with a title "Market Analysis" and add a bar chart showing revenue growth.

Claude: I'll help you create that slide with the title and chart. I'll:
1. Add a new slide
2. Add the title text
3. Create a revenue chart

You: Make the title bigger and change its color to blue.

Claude: I'll modify the title's formatting.

You: Add a comparison table below the chart comparing three companies.

Claude: I'll add a comparison table below the existing chart.

Excel Examples

You: Open the Q4 report and show me the revenue numbers from cells B2 to B5.

Claude: I'll help you retrieve those revenue figures.

You: Calculate the sum of these numbers and put it in cell B6.

Claude: I'll calculate the sum and write it to B6.

You: Create a new sheet called "Summary" and copy these values there.

Claude: I'll create a new sheet and copy the data.

Best Practices

  1. Be Specific

    • Mention slide numbers when relevant
    • Specify exact cell ranges in Excel
    • Describe desired formatting clearly
  2. Complex Operations

    • Break down complex requests into steps
    • Confirm intermediate results
    • Ask for adjustments as needed
  3. Troubleshooting

    • Ensure PowerPoint/Excel is running
    • Check file permissions
    • Verify COM automation is working
    • Run pywin32_postinstall.py if needed

How to install this MCP server

For Claude Code

To add this MCP server to Claude Code, run this command in your terminal:

claude mcp add-json "powerpoint_mcp_win32" '{"command":"uv","args":["run","mcp_powerpoint_server_win32.py"],"cwd":"C:\\path\\to\\your\\workspace"}'

See the official Claude Code MCP documentation for more details.

For Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "powerpoint_mcp_win32": {
            "command": "uv",
            "args": [
                "run",
                "mcp_powerpoint_server_win32.py"
            ],
            "cwd": "C:\\path\\to\\your\\workspace"
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.

For Claude Desktop

To add this MCP server to Claude Desktop:

1. Find your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2. Add this to your configuration file:

{
    "mcpServers": {
        "powerpoint_mcp_win32": {
            "command": "uv",
            "args": [
                "run",
                "mcp_powerpoint_server_win32.py"
            ],
            "cwd": "C:\\path\\to\\your\\workspace"
        }
    }
}

3. Restart Claude Desktop for the changes to take effect

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later