ppt-mcp

ppt-mcp

An MCP server that provides real-time control of Microsoft PowerPoint via COM automation, enabling AI agents to create and edit presentations with 155 tools across 26 categories.

Category
访问服务器

README

<p align="center"> <img src="https://raw.githubusercontent.com/ykuwai/ppt-mcp/main/assets/ppt-mcp-logo-letter.png" alt="PowerPoint MCP" width="480"> </p>

<p align="center"> <a href="README_ja.md">日本語版はこちら</a> </p>

<p align="center"> <a href="https://www.python.org/"><img src="https://img.shields.io/badge/Python-3.10%2B-blue.svg" alt="Python"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-green.svg" alt="License"></a> <img src="https://img.shields.io/badge/Platform-Windows-0078d4.svg" alt="Platform"> <a href="https://pepy.tech/projects/ppt-mcp"><img src="https://static.pepy.tech/personalized-badge/ppt-mcp?period=total&units=ABBREVIATION&left_color=BLACK&right_color=GREEN&left_text=downloads" alt="Downloads"></a> </p>

<p align="center"> <strong>Real-time PowerPoint control through COM automation —<br>an MCP server with 155 tools for AI agents and developers.</strong> </p>


An MCP (Model Context Protocol) server that gives AI agents full control over a live Microsoft PowerPoint instance via COM automation. Unlike file-based libraries like python-pptx, this server interacts directly with a running PowerPoint application.

✨ Key Features

  • Real-time control — Directly manipulates a running PowerPoint instance; changes appear instantly on screen
  • 155 tools across 26 categories — Slides, shapes, text, tables, charts, animations, SmartArt, media, freeform paths, and more
  • Safe for AI agentsppt_activate_presentation locks all tools to a specific file, preventing accidental edits to the wrong presentation
  • Google Material Symbols icons — Search 2,500+ icons by keyword and insert as SVG with theme colors
  • Theme color awareness — Use accent1, accent2, etc. instead of hardcoded RGB values

📋 Requirements

  • Windows 11
  • Microsoft PowerPoint
  • uv

🚀 Getting Started

Standard config — works in Claude Desktop, Cursor, .mcp.json, and most other MCP clients:

{
  "mcpServers": {
    "powerpoint": {
      "command": "uvx",
      "args": ["ppt-mcp"]
    }
  }
}

Claude Code

User-scoped (available in all projects)

claude mcp add powerpoint uvx ppt-mcp

Project-scoped (stored in .mcp.json, shared with your team)

claude mcp add --scope project powerpoint uvx ppt-mcp

Cursor

Install in Cursor

Or add manually to ~/.cursor/mcp.json using the standard config above.

Claude Desktop

Edit %APPDATA%\Claude\claude_desktop_config.json using the standard config above.

Codex

Edit ~/.codex/config.toml:

[mcp_servers.ppt-mcp]
command = "uvx"
args = ["ppt-mcp"]

Or use the standard JSON config above in .codex/config.json.

VS Code

code --add-mcp '{"name":"powerpoint","command":"uvx","args":["ppt-mcp"]}'

From source

git clone https://github.com/ykuwai/ppt-mcp.git
cd ppt-mcp
uv sync
{
  "mcpServers": {
    "powerpoint": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\path\\to\\ppt-mcp",
        "run",
        "mcp",
        "run",
        "src/server.py"
      ]
    }
  }
}

🛠️ Tool Categories

Category Tools Description
App 5 Connect to PowerPoint, app info, active window, window state, list presentations
Presentation 8 Create (with templates), open, save, close, info, activate target, list templates
Slides 9 Add, delete, duplicate, move, list, info, notes, navigation
Shapes 10 Add shapes/textboxes/pictures/lines, list, info, update, delete, z-order
Text 10 Set/get text, format text ranges, paragraph format, bullets, find/replace, textframe, extract all text as Markdown, typography check
Placeholders 6 List, get, set placeholder content
Formatting 3 Fill, line, shadow
Tables 13 Add tables, get/set cells, batch set data, merge/split cells, add/delete rows/columns, styles, layout, borders
Export 4 PDF, images, slide preview, clipboard copy
Slideshow 6 Start, stop, next, previous, go to slide, status
Charts 7 Add charts, set/get data, format, format axis, series, change type
Animation 6 Transitions, add/list/update/remove/clear animations (entrance, exit, emphasis, motion path, interactive sequences)
Themes 4 Apply themes, get/set theme colors, headers/footers
Groups 3 Group, ungroup, get group items
Connectors 2 Add, format
Hyperlinks 3 Add, get, remove
Sections 3 Add, list, manage
Properties 2 Set/get presentation metadata
Media 3 Video, audio, media settings
SmartArt 3 Add, modify, list layouts
Edit Operations 6 Undo, redo, copy shapes/formatting between slides
Layout 7 Align, distribute, slide size, background, flip, merge shapes
Effects 3 Glow, reflection, soft edge
Comments 3 Add, list, delete
Advanced 19 Tags, fonts (set defaults + bulk replace), crop, picture format, shape export, visibility, selection, view, animation copy, picture from URL, SVG icons, icon search, aspect ratio lock, batch apply, default shape style
Freeform 7 Build freeform paths, get/set node positions, insert/delete nodes, node editing type, segment type
155

💡 Example Prompts

Just describe what you want in plain language — no code required.


Simple — topic only

"Create a 3-slide intro deck for a productivity app called Flowly."

<details> <summary>View slides</summary> <br> <img src="assets/examples/example1/Slide1.png" width="640"> <img src="assets/examples/example1/Slide2.png" width="640"> <img src="assets/examples/example1/Slide3.png" width="640"> </details>


With style direction — topic + visual style

"Make a 4-slide presentation on the benefits of async work. Dark navy style, add icons for each benefit."

<details> <summary>View slides</summary> <br> <img src="assets/examples/example2/Slide1.png" width="640"> <img src="assets/examples/example2/Slide2.png" width="640"> <img src="assets/examples/example2/Slide3.png" width="640"> <img src="assets/examples/example2/Slide4.png" width="640"> </details>


Detailed — topic + design intent + slide structure

"Build a 5-slide pitch for an AI note-taking app called NoteAI. White background, teal accent. Slides: title, problem, solution, features with icons, closing."

<details> <summary>View slides</summary> <br> <img src="assets/examples/example3/Slide1.png" width="640"> <img src="assets/examples/example3/Slide2.png" width="640"> <img src="assets/examples/example3/Slide3.png" width="640"> <img src="assets/examples/example3/Slide4.png" width="640"> <img src="assets/examples/example3/Slide5.png" width="640"> </details>


Design keywords that elevate results:

Aspect Keywords / Phrases What it does
Icons add icons · icon for each point · use icons throughout Searches Google Material Symbols and places crisp SVG icons automatically
Color scheme dark navy · white background · monochrome · light gray Sets the overall color palette and mood
Accent color teal accent · blue accent · brand color #2563EB Applies a specific highlight color to headings, icons, and shapes
Style tone modern minimal · bold and vibrant · clean and professional · playful Signals the overall visual personality
Deck type pitch deck · investor presentation · workshop slides · status report Guides layout and content density toward the intended purpose
Slide structure Slides: title, problem, solution, features, CTA · 4 slides Defines the narrative arc and slide count up front
Layout card layout · two-column · centered · full-bleed background Shapes how content is arranged on each slide
Text density minimal text · one message per slide · bullet points Controls how much text appears and how it's formatted
Backgrounds gradient background · solid dark background · soft light background Specifies the background treatment across slides
Emphasis highlight key numbers · bold headings · accent bar on each slide Draws attention to the most important information

🔍 Features in Detail

🎯 Presentation Targeting

ppt_activate_presentation sets a session-level target so every subsequent tool call operates on that specific file — regardless of which window is active in PowerPoint. Switch targets anytime by calling it again.

ppt_activate_presentation(presentation_name="report.pptx")
# All tools now operate on report.pptx
ppt_activate_presentation(presentation_name="demo.pptx")
# Switched — all tools now operate on demo.pptx

📁 Template Support

Auto-detects your personal PowerPoint templates folder (registry, OneDrive, or default paths). Use ppt_list_templates to discover available templates, then ppt_create_presentation(template_path=...) to create a new presentation from any template.

🎨 Google Material Symbols Icons

Search 2,500+ Google Material Symbols icons with ppt_search_icons(query="...") and insert them as SVG with ppt_add_svg_icon:

  • 3 styles: outlined, rounded, sharp
  • Filled variants: set filled=True
  • Theme colors: color="accent1" uses the presentation's accent color
  • Auto-fit: preserves aspect ratio within the specified area

⚡ Real-Time Navigation

Every write operation automatically navigates PowerPoint to the target slide. You see changes happening in real-time — no need to manually switch slides.

✍️ Text Formatting

  • \n — Paragraph break (Enter). Each paragraph gets its own bullet/indent level.
  • \v — Line break (Shift+Enter). Stays in the same paragraph, preserving formatting.
  • Per-character formatting with ppt_format_text_range
  • Auto-fit control: shrink text to fit, resize shape, or overflow

🎨 Theme Color Presets & Auto-Generation

ppt_set_theme_colors supports three modes:

  • 17 curated presets — WCAG AA accessible palettes across 5 categories: Classic (corporate_blue, executive, consulting), Design Systems (tailwind, chakra, open_color, radix), Nature (ocean, forest, sunset, sage), Modern (nord_light, pastel_deep, swiss), Vibrant (vivid, rainbow, neon_safe)
  • Primary color generation — provide a single brand color (primary="#2B579A") to auto-generate a full harmonious palette using color harmony (split-complementary + analogous)
  • Manual — set individual color slots (accent1, accent2, etc.)

Modes can be combined: use a preset as a base and override specific slots. All accents are guaranteed 3:1+ contrast on white.

🔍 Typography Check

ppt_check_typography detects and optionally auto-fixes common typography issues:

  • Widow lines — isolated 1-3 character lines caused by word wrapping
  • Short lines after soft returns — side effects of manual line breaks (\v)
  • Auto-shrunk text — text silently compressed by PowerPoint's shrink-to-fit feature

Auto-fix strategies include widening text boxes and inserting soft returns.

⚙️ Advanced Configuration

Handling PowerPoint Modal Dialogs

When PowerPoint has a modal dialog open (e.g., SmartArt layout picker, Save dialog, Insert dialog), COM calls return RPC_E_CALL_REJECTED. The MCP server automatically retries for up to 15 seconds (5 retries × 3 s), so the server stays connected and responsive even when a dialog is blocking PowerPoint.

Auto-dismiss (opt-in): By default, the server waits for you to close the dialog manually. To have the server automatically send ESC on the first retry — dismissing the dialog without user interaction — set PPT_AUTO_DISMISS_DIALOG=true:

{
  "mcpServers": {
    "powerpoint": {
      "command": "uvx",
      "args": ["ppt-mcp"],
      "env": {
        "PPT_AUTO_DISMISS_DIALOG": "true"
      }
    }
  }
}

ESC cancels without committing, so there are no destructive side effects. This is particularly useful in automated workflows where no human is present to close dialogs.

📄 License

MIT

🙏 Credits

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选