PowerPoint

by jenstangen1

5 stars
Not rated
GitHub

About

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.

Details

Author
jenstangen1
Repository
jenstangen1/pptx-xlsx-mcp
GitHub stars
5
Categories
Productivity, Design, Workplace, Developer Tools, AI, Infrastructure, Frontend
Tags
#visualization, #integration

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
    Command (node, npx, python, etc.) npx
    Arguments
    • Argument 1 -y
    • Argument 2 @highlight/mcp-server

    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

1. Clone the repository:

git clone https://github.com/jenstangen1/mcp-pptx.git
cd mcp-pptx

2. Install dependencies using uv:

uv pip install pywin32

3. Run the pywin32 post-install script with administrator privileges:

python C:\path\to\your\env\Scripts\pywin32_postinstall.py -install

list_presentations

List all PowerPoint files in the workspace.

upload_presentation

Upload a new presentation to the workspace.

save_presentation

Save the current presentation.

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.

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.

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.

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_element_mappings

Debug tool to inspect element mappings for a slide.

list_open_workbooks

List all currently open Excel workbooks.

save_workbook

Save a workbook to disk with optional format selection.

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.

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.

Claude Desktop / Cursor

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

{
    "mcpServers": {
        "powerpoint": {
            "env": {},
            "args": [
                "-y",
                "@highlight/mcp-server"
            ],
            "command": "npx"
        }
    }
}

Linux

{
    "env": [],
    "args": [
        "-y",
        "@highlight/mcp-server"
    ],
    "command": "npx"
}

Macos

{
    "env": [],
    "args": [
        "-y",
        "@highlight/mcp-server"
    ],
    "command": "npx"
}

Windows

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

Microsoft Office (PowerPoint & Excel)

Automate Microsoft PowerPoint and Excel on Windows using AI-powered COM automation.

This repository contains Model Context Protocol (MCP) servers for interacting with Microsoft Office applications through AI assistance. Currently supported applications:

- PowerPoint: Create and manipulate presentations
- Excel: Interact with workbooks and spreadsheets

Both servers usepywin32for COM automation, allowing direct interaction with running Office applications.

- Windows operating system
- Microsoft Office installed (PowerPoint and/or Excel)
- Python 3.7+
- pywin32package

git clone https://github.com/jenstangen1/mcp-pptx.git cd mcp-pptx

- Run thepywin32post-install script with administrator privileges:

python C:\path\to\your\env\Scripts\pywin32_postinstall.py -install

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" } } }

Note: ReplaceC:\\path\\to\\your\\workspacewith your actual workspace path.

The PowerPoint server provides a comprehensive API for AI models to interact with PowerPoint presentations, supporting advanced formatting, financial charts, and data integration.

- Create and modify PowerPoint presentations
- Add, delete, and modify slides
- Save and load presentations from workspace
- Template management system

- Fine-grained control over slide elements (text, shapes, images, charts)
- Advanced shape creation and styling
- Element positioning and grouping
- Connector lines between shapes

- Create financial charts (line, bar, column, pie, waterfall, etc.)
- Generate comparison tables
- Support for various financial metrics:

- Revenue
- EBITDA
- Profit
- Assets
- Equity
- Growth rates
- Margins

- Rich text formatting
- Shape styling (fills, gradients, outlines)
- Chart customization
- Background colors and effects

Note: You may need to modify the directory path to match your installation location.

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

- 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

- 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

- 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

Note:The financial tools currently use dummy data. Future versions plan to integrate with the Proff API for automatic fetching of Norwegian company data. Users can modify the code to connect with local or preferred financial data providers.

- 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_element_mappings: Debug tool to inspect element mappings for a slide

Once you've configured the MCP servers in your Claude Desktop app, you can interact with PowerPoint and Excel through natural language commands. Here are some 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 [Claude will then use the MCP tools in sequence: - add_slide - add_text - create_financial_chart] You: Make the title bigger and change its color to blue. Claude: I'll modify the title's formatting. [Claude will use: - find_element (to locate the title) - edit_element (to update the formatting)] You: Add a comparison table below the chart comparing three companies. Claude: I'll add a comparison table below the existing chart. [Claude will use: - create_comparison_table]
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. [Claude will use: - list_open_workbooks (to find the workbook) - get_range_values (to read the specified cells)] You: Calculate the sum of these numbers and put it in cell B6. Claude: I'll calculate the sum and write it to B6. [Claude will use: - get_range_values (to get the numbers) - set_cell_value (to write the sum)] You: Create a new sheet called "Summary" and copy these values there. Claude: I'll create a new sheet and copy the data. [Claude will use: - add_worksheet - get_range_values (from source) - set_range_values (to destination)]

- Claude interprets your requests and breaks them down into specific actions
- It understands context from previous interactions
- It can handle complex, multi-step operations

- Claude automatically selects the appropriate MCP tools for each task
- It can chain multiple tools together for complex operations
- It handles error cases and provides feedback

- Claude maintains context about:

- Currently open files
- Recent operations
- Selected elements
- User preferences

- If an operation fails, Claude will:

- Explain what went wrong
- Suggest alternatives
- Help troubleshoot common issues

- Mention slide numbers when relevant
- Specify exact cell ranges in Excel
- Describe desired formatting clearly

- Break down complex requests into steps
- Confirm intermediate results
- Ask for adjustments as needed

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

You: Create a new presentation about Q4 financial results. Claude: I'll create a new presentation with a title slide. You: Add revenue charts for the last 4 quarters. Claude: I'll create a new slide with a chart showing quarterly revenue. You: Now add a comparison with our competitors. Claude: I'll add a comparison table with key metrics for you and competitors.
You: Show me all sheets in the Q4 analysis workbook. Claude: I'll list all worksheets in that workbook. You: Find the highest revenue value in column B. Claude: I'll scan column B and find the maximum value. You: Create a summary of the top 5 values. Claude: I'll create a new sheet with the top 5 revenue figures.
pptx-mcp/ ├── mcp_powerpoint_server.py # Main server implementation ├── requirements.txt # Python dependencies ├── presentations/ # Workspace for presentations │ └── templates/ # Template storage └── README.md # This file

- python-pptx: PowerPoint file manipulation
- Pillow: Image processing
- numpy: Numerical operations
- MCP SDK: Model Context Protocol implementation

Contributions are welcome! Please feel free to submit a Pull Request.

This project is licensed under the MIT License - see the LICENSE file for details.

The Excel server provides tools for interacting with Excel workbooks, worksheets, and cell data through AI assistance.

- Connect to running Excel instances
- List open workbooks
- Save workbooks with various formats (.xlsx, .xlsm, .xlsb, .xls)

- List worksheets in a workbook
- Add new worksheets
- Access worksheets by name or index

- Read and write individual cell values
- Get and set values for cell ranges
- Handle various data types (text, numbers, dates, currency)
- Automatic type conversion for dates and currency values

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

- 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

- 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

- Both servers require Windows and their respective Microsoft Office applications installed
- The servers interact withrunninginstances of the applications
- COM automation requires proper initialization; run the post-install script if you encounter COM-related errors
- For better constant handling, consider usingmakepyto generate Office constants

The 1Password MCP server creates a bridge that allows MCP clients such as Codex and Kiro to manage your 1Password Environments with secure authorization prompts.

This is the 1st, easiest, and cheapest PPT, slides, presentation AI generation MCP Server in the world.

Persistent memory for any AI assistant. Zero token cost until recall. Stores memories in local SQLite, ranks by 6-factor scoring, returns results 79% smaller than JSON. Works with Claude, ChatGPT, Grok, Cursor, Windsurf, and any MCP client.

A MCP server that enables AI assistants to interact with Anki, the spaced repetition flashcard application.

Enables LLM clients to interact with macOS applications through AppleScript. Built using the @beyondbetter/bb-mcp-server library, this server provides safe, controlled execution of predefined scripts with optional support for arbitrary script execution.

An MCP server for WordPress plugin audits

Turn your AI assistant into a digital marketing hub that creates, organizes, and analyzes links and QR Codes on demand.

Connect AI clients to Cal.com scheduling through the Model Context Protocol using the hosted server at mcp.cal.com or a local instance.

Sync Calendars, Scheduling Links, AI Executive Scheduling Assistant, Unified Calendar

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.