\[!重要\] 请注意,目前我还没有让它在构建与Openlp捆绑的插件之外工作。查看进度 这里.
OpenLP MCP插件
一个强大的OpenLP插件,提供模型上下文协议(MCP)服务器功能,允许AI模型完全控制OpenLP,包括自动服务创建。
🚀 特性
- 完整的服务管理:以编程方式创建、加载、保存和管理OpenLP服务
- 智能媒体支持:使用自动插件路由处理图像、视频和音频
- PowerPoint/PDF集成:使用LibreOffice或回退转换器自动转换演示文稿
- 实时控制:实时幻灯片导航和主题管理
- URL下载:支持远程媒体文件、服务和主题背景
- AI友好型API:结构化MCP接口,实现无缝AI集成
📋 需求
- OpenLP 3.1+
- 不需要额外的Python包(所有依赖项都捆绑在一起)
📦 安装
方法1:从版本下载(推荐)
- 转到 发布页面
- 下载最新
mcp-plugin.zip文件
- 提取ZIP以获取
mcp文件夹
- 复制
mcp文件夹到OpenLP插件目录:
窗户:
C:\Program Files\OpenLP\plugins\mcp\Linux:
/usr/share/openlp/plugins/mcp/
# OR for user installation:
~/.local/share/openlp/plugins/mcp/macOS:
Right-click OpenLP.app → Show Package Contents → Contents/MacOS/plugins/mcp/- 重新启动OpenLP
- 首选 设置→ 管理插件
- 在插件列表中找到“MCP”并选中复选框以启用它
- 点击 好的 保存
方法2:从源代码构建
如果你想自己构建插件:
# Clone the repository
git clone https://github.com/yourusername/openLP_mcp_plugin.git
cd openLP_mcp_plugin
# Build using Python script (requires uv)
python build.py
# OR build using shell script (requires uv and zip)
./package.sh
# This creates mcp-plugin.zip which you can install as above🔧 开发设置
对于开发和测试:
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone and build
git clone https://github.com/yourusername/openLP_mcp_plugin.git
cd openLP_mcp_plugin
python build.py🤖 使用AI模型
该插件在以下位置启动MCP服务器 http://127.0.0.1:8765 AI模型可以连接到。服务器提供以下工具:
服务管理
create_service-使用结构化数据创建新服务add_service_item-将歌曲、图像、视频、演示文稿添加到服务中load_service-加载现有服务文件save_service-将服务保存到特定位置get_service_items-检索当前服务结构
媒体处理
add_image-添加具有自动大小和主题支持的图像add_video-添加带有播放控制的视频add_audio-向服务添加音频文件add_presentation-使用自动转换功能处理PowerPoint/PDF文件
实时控制
go_to_slide-在实时演示期间导航到特定幻灯片next_slide/previous_slide-控制幻灯片进度get_current_slide-检查当前滑动位置
AI提示示例
"Create a church service with the attached PowerPoint presentation and background music. Set up the service order with welcome, songs, sermon slides, and closing prayer."🛠 支持的文件类型
媒体文件
- 图像:JPG、PNG、GIF、BMP、TIFF、WebP
- 视频:MP4、AVI、MOV、MKV、WMV、FLV
- 音频:MP3、WAV、OGG、FLAC、M4A
演示
- 幻灯片:PPT、PPTX(自动转换为PDF)
- 可移植文档格式:直接支持PDF演示文稿
- 办公套件:ODP、ODS、ODT(如果LibreOffice可用)
远程URL
- 支持从HTTP/HTTPS/FTP URL直接下载所有媒体类型
- 智能内容类型检测
- 与现代托管服务(Unsplash、CDN等)配合使用
🔍 故障排除
插件未加载
- 确保您复制了整个
mcp文件夹(不仅仅是其内容) - 检查文件夹是否在正确的插件目录中
- 验证安装后OpenLP是否已重新启动
- 在OpenLP的日志文件中查找错误消息
MCP服务器未启动
- 检查OpenLP日志中与MCP相关的错误
- 确保没有其他服务正在使用端口8765
- 验证插件是否已在管理插件中启用
PowerPoint转换问题
- 安装LibreOffice以获得最佳转换质量
- 如果LibreOffice不可用,该插件将回退到python pptx+reportlab
- 大型演示文稿可能会导致暂时的GUI响应问题
缺少的依赖
- 所有依赖项都捆绑在一起-不需要手动安装
- 如果您看到导入错误,请重建插件包
📝 插件结构
mcp/
├── __init__.py # Plugin initialization with vendor loading
├── mcpplugin.py # Main plugin class
├── worker.py # Qt worker for thread-safe operations
├── tools.py # MCP tools and server setup
├── conversion.py # PowerPoint/PDF conversion utilities
├── url_utils.py # URL download and file handling
└── vendor/ # Bundled dependencies
└── fastmcp/ # MCP server library🤝 贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 使用构建脚本进行测试
- 提交拉取请求
📄 许可证
此项目根据GNU通用公共许可证v3.0获得许可-请参阅 许可证 文件以获取详细信息。
🐛 问题与支持
⚡ 高级功能
URL支持
该插件会自动处理远程文件:
# These all work automatically:
add_image("https://example.com/image.jpg")
add_video("https://cdn.example.com/video.mp4")
load_service("https://mysite.com/service.osz")主题整合
- 根据内容类型自动应用适当的主题
- 支持主题背景图像URL
- 保持服务项目之间的主题一致性
批量操作
- 一次处理多个文件
- 高效处理大型演示文稿
- 自动清理临时文件
错误恢复
- 妥善处理网络问题
- 演示文稿的回退转换方法
- 用于故障排除的详细日志记录
______________________________________________________________________
由以下材料制成❤️ OpenLP社区
