PowerPoint管理服务

一个本地创建和管理PowerPoint演示文稿的模型上下文协议(MCP)服务器。

  • by rmhman
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 rmhman/pp_mcp

使用说明

PowerPoint MCP服务器

一个模型上下文协议(MCP)服务器,在您的计算机上本地创建和管理PowerPoint演示文稿。

目的

此MCP服务器为AI助手提供了一个安全的接口,用于在本地/tmp/PowerPoints目录中创建、修改和管理PowerPoint(.pptx)文件。

特性

当前实施情况

  • create_presentation -创建带有可选标题幻灯片的新PowerPoint演示文稿
  • add_slide -将带有标题和内容的新幻灯片添加到现有演示文稿中
  • list_presentations -列出/tmp/PowerPoints目录中的所有PowerPoint文件
  • get_presentation_info -获取特定演示文稿的详细信息

先决条件

  • 启用MCP工具包的Docker桌面
  • Docker MCP CLI插件(docker mcp 命令)

安装

适用于Docker MCP CLI(推荐)

  1. 构建Docker镜像:

    docker build -t powerpoint-mcp .
    
  2. 配置Claude桌面 采用卷装方式:

    将此添加到您的Claude Desktop MCP配置中:

    {
      "mcpServers": {
        "powerpoint": {
          "command": "docker",
          "args": [
            "run",
            "--rm",
            "-i",
            "-v",
            "/tmp/PowerPoints:/home/mcpuser/PowerPoints",
            "--user",
            "1000:1000",
            "powerpoint-mcp"
          ]
        }
      }
    }
    

替代方案:持久容器设置

  1. 运行安装脚本:

    ./setup.sh
    
  2. 配置Claude桌面 使用持久容器

手动设置

  1. 创建PowerPoint目录:

    mkdir -p /tmp/PowerPoints
    
  2. 构建Docker镜像:

    docker build -t powerpoint-mcp .
    
  3. 使用卷装载运行:

    docker run -d \
      --name powerpoint-mcp-server \
      -v /tmp/PowerPoints:/home/mcpuser/PowerPoints \
      -e PYTHONUNBUFFERED=1 \
      --user 1000:1000 \
      powerpoint-mcp
    

Docker Compose(替代方案)

docker-compose up -d

VS代码集成

要将此MCP服务器与VS代码一起使用:

1 安装MCP工具包扩展 VS代码 2 添加服务器配置 到您的VS代码设置(mcp.json):

{
  "mcp.servers": {
    "powerpoint": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-v",
        "/tmp/PowerPoints:/home/mcpuser/PowerPoints",
        "--user",
        "1000:1000",
        "powerpoint-mcp"
      ],
      "type": "stdio"
    }
  }
}

3 重新启动VS代码 加载MCP服务器 4 使用PowerPoint工具 通过MCP工具包界面

使用示例

在Claude Desktop中,您可以问:

  • “创建一个名为“我的演示”的新PowerPoint演示文稿,标题为“MCP简介””
  • 在“我的演示”中添加一张幻灯片,标题为“什么是MCP?”,内容为“MCP代表模型上下文协议…”
  • “列出我的所有PowerPoint演示文稿”
  • “显示有关“我的演示”演示文稿的信息”

建筑

Claude Desktop → MCP Gateway → PowerPoint MCP Server → Local File System
↓
/tmp/PowerPoints Directory

发展

局部测试

# Build Docker image (only needed the first time)
docker build -t powerpoint-mcp .

# Test with volume mount
docker run --rm -i -v /tmp/PowerPoints:/home/mcpuser/PowerPoints --user 1000:1000 powerpoint-mcp

# Test volume mount
docker run --rm -v /tmp/PowerPoints:/home/mcpuser/PowerPoints --user 1000:1000 powerpoint-mcp ls -la /home/mcpuser/PowerPoints

# Test MCP tools directly (requires Python)
./test_docker.sh

添加新工具

  1. 将该功能添加到 powerpoint_server.py
  2. 用…装饰 @mcp.tool()
  3. 用新的工具名称更新目录条目
  4. 重建Docker镜像

故障排除

演示文稿不持久

问题: 演示文稿已创建,但在尝试添加幻灯片时会消失。

解决方案: 这是由于缺少卷装载造成的。确保您使用的是:

docker run -v /tmp/PowerPoints:/home/mcpuser/PowerPoints ...

或者使用提供的安装脚本: ./setup.sh

工具未出现

  • 验证Docker镜像构建成功
  • 检查目录和注册表文件
  • 确保Claude Desktop配置包括自定义目录
  • 重新启动克劳德桌面

文件权限错误

  • 确保~/PowerPoints目录可写
  • 检查Docker卷权限
  • 验证容器是否以用户1000:1000的身份运行

集装箱问题

  • 检查容器日志: docker logs powerpoint-mcp-server
  • 验证容器是否正在运行: docker ps --filter name=powerpoint-mcp-server
  • 重新启动容器: docker restart powerpoint-mcp-server

安全考虑

  • 在用户主目录中创建的所有文件
  • 没有外部API调用或网络访问
  • 在Docker中以非root用户身份运行
  • 安全的文件名处理可防止路径遍历

许可证

MIT许可证