项目简介
PowerPoint MCP 服务器是一个强大的后端服务,旨在让大型语言模型(LLM)能够与Microsoft PowerPoint进行交互和自动化操作。它通过 'pywin32' 库利用COM自动化技术,实现在Windows环境下对PowerPoint的全面控制。LLM客户端通过MCP协议调用此服务器提供的工具,从而实现创建、编辑、管理幻灯片及其内容,分析模板,甚至添加动画效果等高级自动化任务。
主要功能点
- 演示文稿管理: 轻松打开、关闭、创建、保存和另存为PowerPoint演示文稿。
- 幻灯片操作: 支持复制、删除、移动幻灯片,并能精确切换到指定幻灯片,实现灵活的演示文稿结构调整。
- 内容填充: 能够智能识别幻灯片上的文本、图片、图表等占位符,并向其中填充内容。支持富文本(带有HTML格式,如加粗、斜体、颜色)、LaTeX公式、本地图片路径以及直接执行Matplotlib代码生成图表。
- 模板与布局分析: 提供工具以发现系统中所有可用的PowerPoint模板,并能详细分析任意模板的布局结构及其包含的占位符信息。分析过程会生成带有绿色边框和黄色ID标签的截图,直观地展示每个占位符的位置和类型,供LLM参考。
- 添加备注: 为指定幻灯片添加或修改演讲者备注,这些备注在演示者视图中可见。
- 添加动画: 为幻灯片上的任意形状添加多种入口动画效果,如淡入、出现、飞入、擦除、缩放等。特别支持文本框内容按段落动画,实现逐点展示的效果。
- 高级代码执行: 提供一个强大的 'powerpoint_evaluate_tool',允许LLM执行任意Python代码片段,直接通过COM对象访问PowerPoint的底层API。这使得LLM能够实现超越预设工具的复杂自定义操作,例如复杂的几何布局、批量修改样式或执行特定的PowerPoint宏。
安装步骤
-
先决条件:
- 操作系统: 必须是Windows 10/11。
- Microsoft PowerPoint: 您的计算机上必须安装有完整的Microsoft PowerPoint应用程序。
- Python: 需要安装 Python 3.10 或更高版本。
-
通过 'uvx' 安装 (推荐): 如果你的MCP客户端(如Claude Code)支持 'uvx' 工具进行MCP服务器的安装和管理,这是最便捷的安装方式。
- 对于特定项目: 在你的MCP客户端命令行中运行以下命令,将PowerPoint MCP服务器添加到当前项目:
claude mcp add powerpoint -- uvx powerpoint-mcp - 对于所有项目 (安装一次,随处使用): 运行以下命令,将PowerPoint MCP服务器全局安装,使其在所有项目中可用:
claude mcp add powerpoint --scope user -- uvx powerpoint-mcp
- 对于特定项目: 在你的MCP客户端命令行中运行以下命令,将PowerPoint MCP服务器添加到当前项目:
-
手动配置 (适用于Cursor, VS Code/GitHub Copilot等): 如果你使用的MCP客户端不支持 'uvx' 集成,或者希望手动配置,你需要编辑MCP客户端的配置文件。
- 找到配置文件:
- Cursor IDE: 通常位于 '~/.cursor/mcp.json' (Windows系统上可能为 'C:\Users\Your_User_Name.cursor\mcp.json')。
- VS Code (GitHub Copilot): 通常位于 'C:\Users\Your_User_Name\AppData\Roaming\Code\User\mcp.json'。
- 添加JSON配置: 打开找到的 'mcp.json' 文件,并在 'mcpServers' 部分(如果不存在则创建)添加以下JSON配置:
请注意,'"powerpoint"' 是你给这个MCP服务器定义的名称,LLM客户端将通过这个名称来引用和调用它。{ "mcpServers": { "powerpoint": { "command": "uvx", "args": ["powerpoint-mcp"] } } } - 重启客户端: 保存配置文件后,请务必重启你的IDE或MCP客户端,以使配置生效。
- 找到配置文件:
服务器配置
MCP服务器是为MCP客户端提供服务的后端。MCP客户端需要知道如何启动这个服务器才能与之建立连接。通常,客户端通过一个JSON格式的配置来定义如何启动和连接MCP服务器。
以下是LLM客户端在 'mcp.json' 文件中配置PowerPoint MCP服务器的示例:
{ "mcpServers": { "powerpoint": { "command": "uvx", "args": ["powerpoint-mcp"] } } }
- '"powerpoint"': 这是LLM客户端用来引用和调用此MCP服务器的唯一名称。当LLM需要PowerPoint自动化功能时,它将通过这个名称来识别并使用相应的工具。
- '"command": "uvx"': 指定用于启动PowerPoint MCP服务器进程的可执行命令。'uvx' 是一个跨平台的工具,用于执行Python包而无需手动管理虚拟环境。
- '"args": ["powerpoint-mcp"]': 这是传递给 'command' 命令的参数。'"powerpoint-mcp"' 是这个MCP服务器的Python包名。'uvx' 将会根据这个包名找到并启动对应的MCP服务器。
通过上述配置,LLM客户端在需要时会自动调用 'uvx powerpoint-mcp' 命令来启动这个服务器,并建立JSON-RPC通信,从而使LLM能够访问和利用PowerPoint自动化功能。
基本使用方法
一旦PowerPoint MCP服务器在你的MCP客户端中正确配置并运行,LLM将能够通过调用其暴露的工具来自动化PowerPoint。你不需要手动运行任何脚本,LLM会根据其任务和你的提示自动选择并调用这些工具。
以下是一些LLM可能使用的示例场景:
-
打开一个现有的演示文稿: LLM可能会调用 'manage_presentation' 工具来打开一个指定的PPT文件:
Call: manage_presentation(action="open", file_path="C:\\Users\\YourName\\Documents\\AnnualReport.pptx") -
创建一个新的幻灯片并添加标题: LLM可以首先添加一张新幻灯片,然后填充其标题占位符:
Call: add_slide_with_layout(template_name="Blank", layout_name="Title Slide", after_slide=0) Call: populate_placeholder(placeholder_name="Title 1", content="<b>我的演示文稿标题</b>") -
获取当前幻灯片的详细内容和截图: 当LLM需要理解当前幻灯片的上下文时,它会调用 'slide_snapshot' 工具:
Call: slide_snapshot(include_screenshot=True)该工具会返回幻灯片上所有对象(文本、表格、图表等)的详细描述,并生成一张带有标注框的截图,帮助LLM进行视觉参考。
-
为幻灯片文本添加动画效果: LLM可以指示为某个文本占位符添加动画,并使其按段落显示:
Call: add_animation(shape_name="Content Placeholder 2", effect="fly", animate_text="by_paragraph")
LLM会根据你的提示和上下文,智能地组合和调用这些工具,以完成各种PowerPoint自动化任务。
信息
分类
桌面与硬件