# pptx_mcp_rust **Repository Path**: awol2010ex/pptx_mcp_rust ## Basic Information - **Project Name**: pptx_mcp_rust - **Description**: rust实现的pptx mcp - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-22 - **Last Updated**: 2026-01-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # pptx_mcp_rust 一个基于 Rust 实现的 Model Context Protocol (MCP) 服务器,用于 PowerPoint 演示文稿的创建和操作。 ## 项目简介 pptx_mcp_rust 是一个功能强大的 MCP 服务器,允许通过 JSON-RPC 协议创建、编辑和操作 PowerPoint (.pptx) 演示文稿。项目使用 [ppt-rs](https://crates.io/crates/ppt-rs) 库进行 PPTX 文件的生成和操作。 ## 功能特性 ### 演示文稿管理 - 创建新的演示文稿 - 打开现有演示文稿 - 保存演示文稿 - 关闭演示文稿 - 获取演示文稿信息 - 设置演示文稿属性 ### 幻灯片管理 - 添加幻灯片 - 删除幻灯片 - 移动幻灯片 - 复制幻灯片 - 设置幻灯片布局 - 设置幻灯片背景 - 获取幻灯片信息 ### 内容管理 - 添加文本 - 更新文本 - 删除文本 - 获取文本内容 - 添加表格 - 更新表格 - 删除表格 - 获取表格内容 ### 视觉元素 - 添加形状(矩形、圆形、三角形等) - 更新形状 - 删除形状 - 添加图片 - 调整图片大小 - 旋转图片 - 裁剪图片 - 设置元素位置和大小 ### 图表功能 - 添加柱状图 - 添加条形图 - 添加折线图 - 添加饼图 - 添加圆环图 - 添加雷达图 - 添加散点图 - 添加面积图 - 支持数据标签和图例 ### 专业功能 - 添加超链接 - 幻灯片过渡效果 - 模板管理 - 母版编辑 ## 安装 ### 前置要求 - Rust 1.75 或更高版本 - Cargo 包管理器 ### 从源码安装 ```bash git clone https://gitee.com/awol2010ex/pptx_mcp_rust.git cd pptx_mcp_rust cargo build --release ``` ### 在 Trae IDE 中安装 Trae IDE 提供了便捷的开发环境,可以直接在 IDE 中使用本项目: 1. **克隆项目到 Trae IDE** - 在 Trae IDE 中打开终端 - 执行克隆命令: ```bash git clone https://gitee.com/awol2010ex/pptx_mcp_rust.git cd pptx_mcp_rust ``` 2. **构建项目** ```bash cargo build --release ``` 3. **运行项目** ```bash cargo run ``` 4. **运行测试** ```bash cargo test ``` Trae IDE 会自动处理 Rust 环境配置,无需手动安装 Rust 工具链。 ## 使用方法 ### 启动服务器 ```bash cargo run ``` ### MCP 方法调用示例 #### 创建演示文稿 ```json { "jsonrpc": "2.0", "id": 1, "method": "create_presentation", "params": { "title": "我的演示文稿", "author": "作者名" } } ``` #### 添加幻灯片 ```json { "jsonrpc": "2.0", "id": 2, "method": "add_slide", "params": { "presentation_id": "presentation_id", "layout": "blank" } } ``` #### 添加文本 ```json { "jsonrpc": "2.0", "id": 3, "method": "add_text", "params": { "presentation_id": "presentation_id", "slide_index": 0, "text": "Hello, World!", "x": 100, "y": 100, "width": 200, "height": 50 } } ``` #### 保存演示文稿 ```json { "jsonrpc": "2.0", "id": 4, "method": "save_presentation", "params": { "presentation_id": "presentation_id", "file_path": "output.pptx" } } ``` ## 测试 项目包含完整的测试套件,覆盖所有功能模块。 ### 运行所有测试 ```bash cargo test ``` ### 运行特定测试模块 ```bash cargo test --test presentation_test cargo test --test slide_test cargo test --test content_test cargo test --test visual_elements_test cargo test --test chart_test cargo test --test integration_test ``` ### 测试覆盖率 - chart_test.rs: 15 个测试 - content_test.rs: 11 个测试 - integration_test.rs: 10 个测试 - presentation_test.rs: 11 个测试 - slide_test.rs: 10 个测试 - visual_elements_test.rs: 13 个测试 总计:70 个测试用例 ## 项目结构 ``` pptx_mcp_rust/ ├── src/ │ ├── tools/ # 功能模块 │ │ ├── chart.rs # 图表功能 │ │ ├── content.rs # 内容管理 │ │ ├── presentation.rs # 演示文稿管理 │ │ ├── slide.rs # 幻灯片管理 │ │ ├── visual.rs # 视觉元素 │ │ └── ... │ ├── core.rs # 核心实现 │ ├── handlers.rs # 请求处理 │ ├── lib.rs # 库入口 │ └── main.rs # 主程序 ├── tests/ # 测试文件 │ ├── chart_test.rs │ ├── content_test.rs │ ├── integration_test.rs │ ├── presentation_test.rs │ ├── slide_test.rs │ └── visual_elements_test.rs ├── Cargo.toml # 项目配置 └── README.md # 项目说明 ``` ## 开发 ### 代码风格 项目遵循 Rust 官方代码风格指南。 ### 提交规范 提交信息应清晰描述更改内容。 ## 贡献 欢迎贡献!请遵循以下步骤: 1. Fork 本项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 许可证 本项目采用 Apache-2.0 许可证。详见 [LICENSE](LICENSE) 文件。 ## 作者 awol2005ex ## 仓库 https://gitee.com/awol2010ex/pptx_mcp_rust ## 致谢 - [ppt-rs](https://crates.io/crates/ppt-rs) - PowerPoint 文件操作库 - [serde](https://serde.rs/) - 序列化/反序列化框架 - [Model Context Protocol](https://modelcontextprotocol.io/) - 通信协议