项目简介

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宏。

安装步骤

  1. 先决条件:

    • 操作系统: 必须是Windows 10/11。
    • Microsoft PowerPoint: 您的计算机上必须安装有完整的Microsoft PowerPoint应用程序。
    • Python: 需要安装 Python 3.10 或更高版本。
  2. 通过 '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
  3. 手动配置 (适用于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配置:
      {
        "mcpServers": {
          "powerpoint": {
            "command": "uvx",
            "args": ["powerpoint-mcp"]
          }
        }
      }
      请注意,'"powerpoint"' 是你给这个MCP服务器定义的名称,LLM客户端将通过这个名称来引用和调用它。
    • 重启客户端: 保存配置文件后,请务必重启你的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可能使用的示例场景:

  1. 打开一个现有的演示文稿: LLM可能会调用 'manage_presentation' 工具来打开一个指定的PPT文件:

    Call: manage_presentation(action="open", file_path="C:\\Users\\YourName\\Documents\\AnnualReport.pptx")
  2. 创建一个新的幻灯片并添加标题: 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>")
  3. 获取当前幻灯片的详细内容和截图: 当LLM需要理解当前幻灯片的上下文时,它会调用 'slide_snapshot' 工具:

    Call: slide_snapshot(include_screenshot=True)

    该工具会返回幻灯片上所有对象(文本、表格、图表等)的详细描述,并生成一张带有标注框的截图,帮助LLM进行视觉参考。

  4. 为幻灯片文本添加动画效果: LLM可以指示为某个文本占位符添加动画,并使其按段落显示:

    Call: add_animation(shape_name="Content Placeholder 2", effect="fly", animate_text="by_paragraph")

LLM会根据你的提示和上下文,智能地组合和调用这些工具,以完成各种PowerPoint自动化任务。

信息

分类

桌面与硬件