返回市场
PPTX转XLSX-MCP

PPTX转XLSX-MCP

作者:jenstangen126 星标更新:2025-03-28

项目介绍

Microsoft Office MCP 服务器

此仓库包含用于通过AI辅助与Microsoft Office应用程序交互的模型上下文协议(MCP)服务器。当前支持的应用程序包括:

  • PowerPoint:创建和操作演示文稿
  • Excel:与工作簿和电子表格进行交互

两个服务器都使用 pywin32 进行COM自动化,允许直接与正在运行的Office应用程序进行交互。

预备条件

  • Windows操作系统
  • 已安装Microsoft Office(PowerPoint和/或Excel)
  • Python 3.7+
  • pywin32

安装

  1. 克隆仓库:
git clone https://github.com/jenstangen1/mcp-pptx.git
cd mcp-pptx
  1. 使用 uv 安装依赖项:
uv pip install pywin32
  1. 使用管理员权限运行 pywin32 的后安装脚本:
python C:\path\to\your\env\Scripts\pywin32_postinstall.py -install

与Claude集成设置

要将这些MCP服务器与Claude集成,请在Claude Desktop应用设置中添加以下配置:

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

注意:请用实际的工作区路径替换 C:\\path\\to\\your\\workspace

PowerPoint MCP 服务器

PowerPoint服务器提供了一个全面的API,使AI模型能够与PowerPoint演示文稿进行交互,支持高级格式化、财务图表和数据整合。

功能

演示文稿管理

  • 创建和修改PowerPoint演示文稿
  • 添加、删除和修改幻灯片
  • 从工作区保存和加载演示文稿
  • 模板管理系统

元素操作

  • 对幻灯片元素(文本、形状、图像、图表)进行细粒度控制
  • 高级形状创建和样式设置
  • 元素定位和分组
  • 形状之间的连接线

财务整合

  • 创建财务图表(折线图、柱状图、条形图、饼图、瀑布图等)
  • 生成比较表
  • 支持各种财务指标:
    • 营收
    • EBITDA
    • 利润
    • 资产
    • 权益
    • 增长率
    • 利润率
  • 目前使用虚拟数据,计划集成Proff API以获取挪威公司的数据
  • 通过API定制适应其他财务数据提供商

样式和格式

  • 丰富的文本格式
  • 形状样式(填充、渐变、轮廓)
  • 图表自定义
  • 背景颜色和效果

注意:您可能需要修改目录路径以匹配您的安装位置。

可用的MCP工具

演示文稿管理

  • list_presentations:列出工作区中的所有PowerPoint文件
  • upload_presentation:将新的演示文稿上传到工作区
  • save_presentation:保存当前演示文稿

幻灯片操作

  • add_slide:向演示文稿添加新幻灯片
  • delete_slide:从演示文稿中删除幻灯片
  • get_slide_count:获取演示文稿中的幻灯片总数
  • analyze_slide:分析幻灯片的内容
  • set_background_color:设置幻灯片的背景颜色

元素操作

  • add_text:向幻灯片添加文本
  • add_shape:向幻灯片添加形状
  • edit_element:编辑元素的属性
  • style_element:对元素应用样式
  • connect_shapes:用连接线连接两个形状
  • find_element:根据标准查找幻灯片上的元素

财务工具

  • get_company_financials:获取公司的财务数据(目前返回虚拟数据)
  • create_financial_chart:在幻灯片上创建财务图表
  • create_comparison_table:为公司创建比较表

注意:财务工具目前使用虚拟数据。未来版本计划集成Proff API以自动获取挪威公司的数据。用户可以修改代码以连接本地或首选的财务数据提供商。

模板操作

  • list_templates:列出所有可用模板
  • apply_template:将模板应用于演示文稿
  • create_slide_from_template:从模板创建新幻灯片
  • save_as_template:将幻灯片保存为模板

调试工具

  • debug_element_mappings:调试工具,用于检查幻灯片的元素映射

使用方法

与Claude交互

一旦在您的Claude Desktop应用中配置了MCP服务器,您就可以通过自然语言命令与PowerPoint和Excel进行交互。这里有一些例子:

PowerPoint 示例

您:创建一个带有标题“市场分析”的新幻灯片,并添加一个显示收入增长的条形图。

Claude:我将帮助您创建这个带有标题和图表的幻灯片。我将:
1. 添加新幻灯片
2. 添加标题文本
3. 创建收入图表

[Claude 将依次使用以下MCP工具:
- add_slide
- add_text
- create_financial_chart]

您:让标题更大并将其颜色改为蓝色。

Claude:我将修改标题的格式。
[Claude 将使用:
- find_element(找到标题)
- edit_element(更新格式)]

您:在图表下方添加一个比较表,比较三个公司。

Claude:我将在现有图表下方添加一个比较表。
[Claude 将使用:
- create_comparison_table]

Excel 示例

您:打开Q4报告并显示B2到B5单元格的收入数字。

Claude:我将帮助您检索这些收入数字。
[Claude 将使用:
- list_open_workbooks(找到工作簿)
- get_range_values(读取指定的单元格)]

您:计算这些数字的总和并将它放在B6单元格中。

Claude:我将计算总和并写入B6。
[Claude 将使用:
- get_range_values(获取数字)
- set_cell_value(写入总和)]

您:创建一个名为“总结”的新工作表并将这些值复制过去。

Claude:我将创建一个新的工作表并复制数据。
[Claude 将使用:
- add_worksheet
- get_range_values(从源处获取)
- set_range_values(到目标处)]

工作原理

  1. 自然语言理解

    • Claude 解释您的请求并将其分解为具体的操作
    • 它能理解来自先前互动的上下文
    • 它可以处理复杂的多步骤操作
  2. 工具选择

    • Claude 自动选择每个任务的适当MCP工具
    • 它可以将多个工具链接在一起执行复杂操作
    • 它处理错误情况并提供反馈
  3. 上下文管理

    • Claude 维护关于以下内容的上下文:
      • 当前打开的文件
      • 最近的操作
      • 选定的元素
      • 用户偏好
  4. 错误处理

    • 如果操作失败,Claude 将:
      • 解释出了什么问题
      • 提供建议的替代方案
      • 帮助解决常见问题

最佳实践

  1. 具体明确

    • 当相关时提及幻灯片编号
    • 在Excel中指定确切的单元格范围
    • 清晰地描述所需的格式
  2. 复杂操作

    • 将复杂的请求分解成步骤
    • 确认中间结果
    • 如有需要,请求调整
  3. 故障排除

    • 确保PowerPoint/Excel正在运行
    • 检查文件权限
    • 验证COM自动化是否正常工作
    • 如需,运行pywin32_postinstall.py

示例工作流程

创建财务演示文稿

您:创建一个关于Q4财务结果的新演示文稿。
Claude:我将创建一个带有标题幻灯片的新演示文稿。

您:添加过去四个季度的收入图表。
Claude:我将在新幻灯片上创建一个展示季度收入的图表。

您:现在添加与竞争对手的比较。
Claude:我将添加一个包含关键指标的比较表,包括您和竞争对手。

分析Excel数据

您:显示Q4分析工作簿中的所有工作表。
Claude:我将列出该工作簿中的所有工作表。

您:找出B列中的最高收入值。
Claude:我将扫描B列并找到最大值。

您:创建前五个值的摘要。
Claude:我将创建一个新的工作表,包含前五个收入数字。

目录结构

pptx-mcp/
├── mcp_powerpoint_server.py  # 主服务器实现
├── requirements.txt          # Python依赖项
├── presentations/           # 演示文稿工作区
│   └── templates/          # 模板存储
└── README.md               # 本文件

依赖项

  • python-pptx:PowerPoint文件操作
  • Pillow:图像处理
  • numpy:数值运算
  • MCP SDK:模型上下文协议实现

贡献

欢迎贡献!请随意提交Pull Request。

许可证

本项目采用MIT许可证 - 查看LICENSE文件了解详情。

Excel MCP 服务器

Excel服务器提供了通过AI辅助与Excel工作簿、工作表和单元格数据进行交互的工具。

功能

工作簿管理

  • 连接到正在运行的Excel实例
  • 列出打开的工作簿
  • 以各种格式保存工作簿(.xlsx, .xlsm, .xlsb, .xls)

工作表操作

  • 列出工作簿中的工作表
  • 向工作簿添加新工作表
  • 通过名称或索引访问工作表

单元格和范围操作

  • 读取和写入单个单元格的值
  • 获取和设置单元格范围的值
  • 处理各种数据类型(文本、数字、日期、货币)
  • 自动转换日期和货币值

可用的MCP工具

工作簿管理

  • list_open_workbooks:列出所有当前打开的Excel工作簿
  • save_workbook:将工作簿保存到磁盘,可选格式选择

工作表操作

  • list_worksheets:列出工作簿中的所有工作表
  • add_worksheet:向工作簿添加新工作表
  • get_worksheet:通过名称或索引获取工作表

单元格和范围操作

  • get_cell_value:读取单个单元格的值
  • set_cell_value:设置单个单元格的值
  • get_range_values:从单元格范围读取值
  • set_range_values:设置单元格范围的值

注意事项

  • 两个服务器都需要Windows及其相应的Microsoft Office应用程序已安装
  • 服务器与正在运行的应用程序实例进行交互
  • COM自动化需要正确的初始化;如果遇到与COM相关的错误,请运行后安装脚本
  • 为了更好地处理常量,考虑使用 makepy 生成Office常量