使用说明
项目简介
PowerPoint MCP Server 是一个基于 Model Context Protocol (MCP) 构建的应用后端,它充当一个服务器,为大型语言模型(LLM)客户端提供操作 PowerPoint 演示文稿的能力。通过这个服务器,LLM 可以被赋予创建、修改和自动化 PowerPoint 演示文稿的任务,极大地扩展了 LLM 在办公自动化领域的应用场景。
主要功能点
- 演示文稿操作: 支持创建、打开、保存 PowerPoint 演示文稿 (.pptx 文件),以及获取演示文稿信息。
- 幻灯片管理: 允许添加新的幻灯片,获取指定幻灯片的信息,包括布局和包含的形状。
- 内容填充: 能够填充幻灯片中的占位符文本,快速生成带有结构化内容的幻灯片,例如项目符号列表。
- 文本处理: 支持在幻灯片中添加文本框,并可以设置文本的字体大小、粗体、斜体等格式。
- 图像处理: 允许在幻灯片中添加图片,支持从本地文件路径或 Base64 编码的字符串添加,并可调整图片的位置和大小。
- 表格功能: 可以在幻灯片中创建表格,并支持格式化表格单元格,包括文本样式和背景颜色。
- 形状绘制: 支持在幻灯片上添加各种预设形状(如矩形、圆形、三角形等),并可自定义形状的填充和线条样式。
- 图表生成: 能够根据数据在幻灯片中插入柱状图、条形图、折线图、饼图等多种图表,并可配置图表的标题、图例和数据标签。
- 文档属性: 支持设置和获取演示文稿的核心文档属性,如标题、作者、主题和关键词等。
安装步骤
-
环境准备: 确保你的电脑上已安装 Python 3.6 或更高版本,并已安装 'pip' 包管理器。
-
克隆仓库: 使用 'git clone' 命令将仓库克隆到本地:
git clone https://github.com/GongRzhe/Office-PowerPoint-MCP-Server.git cd Office-PowerPoint-MCP-Server -
安装依赖: 在仓库目录下,使用 'pip' 安装项目所需的 Python 依赖库:
pip install -r requirements.txt -
运行服务器: 执行以下命令启动 PowerPoint MCP Server:
python ppt_mcp_server.py服务器默认通过标准输入输出 (stdio) 与 MCP 客户端通信。
服务器配置
PowerPoint MCP Server 需要在 MCP 客户端中进行配置才能使用。以下是两种配置方式,根据你的实际情况选择一种配置添加到 MCP 客户端的配置文件中(通常是 JSON 格式)。
配置示例 1:本地 Python 服务器
这种方式适用于本地安装并运行 PowerPoint MCP Server 的情况。
{ "mcpServers": { "ppt": { // "ppt" 是你为该服务器设置的名称,客户端通过这个名称来调用工具 "command": "python", // 运行服务器的命令,这里使用 python 解释器 "args": ["/path/to/ppt_mcp_server.py"], // 服务器脚本的路径,请替换为 ppt_mcp_server.py 的实际路径 "env": {} // 环境变量,如果服务器运行需要特定的环境变量,可以在这里配置,当前为空 } } }
注意: 请将 '"args"' 中的 '"/path/to/ppt_mcp_server.py"' 替换为你本地 'ppt_mcp_server.py' 脚本的绝对路径。
配置示例 2:使用 UVX (无需本地安装)
如果你安装了 'uvx',可以使用以下配置,无需本地安装服务器,'uvx' 会自动从 PyPI 下载并运行 'office-powerpoint-mcp-server' 包。
{ "mcpServers": { "ppt": { // "ppt" 是你为该服务器设置的名称 "command": "uvx", // 运行命令为 uvx "args": [ "--from", "office-powerpoint-mcp-server", // 从 PyPI 包 "office-powerpoint-mcp-server" 中 "ppt_mcp_server" // 运行 "ppt_mcp_server" 入口 ], "env": {} // 环境变量,当前为空 } } }
注意: 使用 UVX 配置前,请确保已安装 'uvx'。
基本使用方法
配置完成后,在 MCP 客户端中,你可以使用 'use_mcp_tool' 或类似的函数来调用 PowerPoint MCP Server 提供的工具。以下是一些基本的使用示例,展示了如何通过 MCP 工具创建和操作 PowerPoint 演示文稿。
示例 1: 创建一个新的演示文稿并添加标题幻灯片
# 创建一个新的演示文稿 result = use_mcp_tool( server_name="ppt", # 使用在 MCP 客户端配置中设置的服务器名称 "ppt" tool_name="create_presentation", # 调用 "create_presentation" 工具 arguments={} # 该工具不需要参数 ) presentation_id = result["presentation_id"] # 获取新创建的演示文稿 ID # 添加一个标题幻灯片 result = use_mcp_tool( server_name="ppt", tool_name="add_slide", # 调用 "add_slide" 工具 arguments={ "layout_index": 0, # 0 代表标题幻灯片布局 "title": "我的演示文稿", # 设置标题 "presentation_id": presentation_id # 指定要操作的演示文稿 ID } ) slide_index = result["slide_index"] # 获取新添加的幻灯片索引 # 保存演示文稿 result = use_mcp_tool( server_name="ppt", tool_name="save_presentation", # 调用 "save_presentation" 工具 arguments={ "file_path": "my_presentation.pptx", # 保存的文件路径 "presentation_id": presentation_id # 指定要操作的演示文稿 ID } )
示例 2: 添加一个柱状图到幻灯片
# 假设已经创建了一个演示文稿并获取了 presentation_id 和 slide_index # 添加一个柱状图 result = use_mcp_tool( server_name="ppt", tool_name="add_chart", # 调用 "add_chart" 工具 arguments={ "slide_index": slide_index, # 要添加图表的幻灯片索引 "chart_type": "column", # 图表类型为柱状图 "left": 1.0, "top": 2.0, "width": 8.0, "height": 4.5, # 图表在幻灯片中的位置和大小 (单位: 英寸) "categories": ["Q1", "Q2", "Q3", "Q4"], # 图表分类 "series_names": ["2023年", "2024年"], # 系列名称 "series_values": [ # 系列数据 [100, 120, 140, 160], [110, 130, 150, 170] ], "has_legend": True, "legend_position": "bottom", # 显示图例,位置在底部 "has_data_labels": True, # 显示数据标签 "title": "季度销售额", # 图表标题 "presentation_id": presentation_id # 指定要操作的演示文稿 ID } )
更多工具的使用方法和参数说明,请参考仓库中的 'ppt_mcp_server.py' 文件和 README 文档。
信息
分类
生产力应用