返回 MCP 目录
public公开dns本地运行

propresenter-mcp

一个通过Model Context Protocol(MCP)提供对ProPresenter演示软件完整控制的服务器,实现了231个API端点,支持远程管理演示文稿、媒体、计时器等功能。

article

README

🚀 propresenter-mcp

这是一个全面的模型上下文协议(MCP)服务器,可通过 ProPresenter API 对 ProPresenter 演示文稿进行完全控制。该服务器实现了完整的 ProPresenter API 规范,拥有 231 个端点,这些端点被组织成 27 个 API 组,并通过模块化的客户端类进行公开。

🚀 快速开始

🔍 官方 MCP 注册表

  • https://registry.modelcontextprotocol.io/?q=alxpark%2Fpropresenter-mcp

📋 前提条件

  • Node.js 18 或更高版本
  • 启用 API 的 ProPresenter 7
  • ProPresenter 正在运行且可在您的网络中访问

📦 安装指南

  1. 克隆此仓库或下载源代码。
  2. 安装依赖项:
npm install
  1. 构建项目:
npm run build

⚙️ 配置

服务器使用环境变量连接到 ProPresenter:

  • PROPRESENTER_URL - 您的 ProPresenter 实例的 URL(默认值:http://localhost:50000
  • PROPRESENTER_PASSWORD - API 密码(如果在 ProPresenter 中配置)

ProPresenter 设置

  1. 打开 ProPresenter 偏好设置。
  2. 转到“网络”选项卡。
  3. 启用“网络”并记录端口号(默认值:50000)。
  4. 可选择为 API 访问设置密码。

💻 使用示例

与 Claude Desktop 配合使用

将以下内容添加到您的 Claude Desktop 配置文件中:

  • macOS~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows%APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "propresenter": {
      "command": "node",
      "args": ["/absolute/path/to/propresenter-mcp/build/index.js"],
      "env": {
        "PROPRESENTER_URL": "http://localhost:50000",
        "PROPRESENTER_PASSWORD": "your-password-if-needed"
      }
    }
  }
}

/absolute/path/to/propresenter-mcp 替换为该项目的实际路径。

与 VS Code 配合使用

可以使用包含的 MCP 配置在 VS Code 中直接调试此服务器。

  1. 在 VS Code 中打开此项目。
  2. 服务器通过 .vscode/mcp.json 自动配置为可调试。
  3. 使用 MCP 扩展来测试和调试服务器。

示例命令

连接后,您可以要求 Claude 控制 ProPresenter:

  • 状态与信息
    • "当前运行的 ProPresenter 版本是什么?"
    • "显示所有屏幕的状态"
    • "观众屏幕的状态如何?"
    • "获取当前幻灯片信息"
  • 演示文稿
    • "当前活动的演示文稿是哪个?"
    • "触发 UUID 为 [uuid] 的演示文稿"
    • "转到下一张幻灯片"
    • "转到第 5 张幻灯片"
    • "播放演示文稿时间线"
    • "显示和弦图表"
    • "获取第 3 张幻灯片的缩略图"
  • 公告
    • "当前活动的公告是哪个?"
    • "触发下一个公告提示"
    • "显示公告时间线状态"
    • "转到公告提示 2"
  • 音频与媒体
    • "列出所有音频播放列表"
    • "显示音频播放列表 [id] 的内容"
    • "播放活动播放列表中的下一首歌曲"
    • "触发聚焦的音频播放列表"
    • "列出所有媒体播放列表"
    • "触发播放列表 [playlist_id] 中的媒体项 [id]"
  • 播放列表
    • "列出所有演示文稿播放列表"
    • "显示活动播放列表"
    • "聚焦下一个播放列表"
    • "触发聚焦播放列表中的第一个项目"
    • "创建一个名为 'Sunday Service' 的新播放列表"
  • 捕获
    • "当前的捕获状态如何?"
    • "开始录制"
    • "停止捕获"
    • "显示可用的 RTMP 捕获编码"
  • 清除
    • "清除公告层"
    • "显示所有清除组"
    • "触发清除组 [id]"
    • "创建一个新的清除组"
    • "列出我所有的库"
    • "显示库 [id] 中的演示文稿"
    • "从库 [library_id] 中触发演示文稿 [id]"
  • 外观
    • "显示所有配置的外观"
    • "当前活动的外观是哪个?"
    • "切换到外观 [id]"
    • "创建一个新的外观"
    • "列出所有宏"
    • "触发宏 [id]"
    • "显示所有宏集合"
    • "创建一个新的宏"
  • 道具
    • "列出所有道具"
    • "触发道具 [id]"
    • "清除道具 [id]"
    • "暂停道具 [id] 的自动清除"
    • "列出所有道具集合"
  • 舞台
    • "显示当前的舞台消息"
    • "显示舞台消息 [message]"
    • "隐藏舞台消息"
    • "列出所有舞台布局"
    • "为屏幕 [screen_id] 设置舞台布局 [layout_id]"
  • 消息
    • "显示所有消息"
    • "显示消息 [id]"
    • "隐藏消息 [id]"
    • "创建一个新的消息"
  • 计时器
    • "列出所有计时器"
    • "启动计时器 [id]"
    • "停止计时器 [id]"
    • "重置布道计时器"
    • "创建一个倒计时计时器"
    • "获取当前系统时间"
  • 主题
    • "列出所有主题"
    • "显示主题 [id] 的详细信息"
    • "从主题 [theme_id] 中获取主题幻灯片 [slide_id]"
  • 传输
    • "播放演示文稿层"
    • "暂停音频层"
    • "在公告层上快进 30 秒"
    • "转到演示文稿的结尾"
    • "获取当前播放时间"
  • 遮罩
    • "列出所有遮罩"
    • "显示遮罩 [id] 的详细信息"
  • 触发器
    • "触发下一个提示"
    • "触发上一个媒体项"

🛠️ 开发

构建

npm run build

监听模式

npm run watch

📚 详细文档

此服务器实现了完整的 ProPresenter API,文档位于 https://openapi.propresenter.com/ 。

API 覆盖范围

  • 总端点:231 个 REST API 端点
  • API 组:27 个功能组
  • 客户端模块:18 个 TypeScript 客户端类
  • 工具定义:18 个 MCP 工具模块
  • 处理程序模块:18 个请求处理程序模块
  • HTTP 方法:完全支持 GET、POST、PUT、DELETE 操作
  • 架构:完整的三层实现(客户端 → 工具 → 处理程序)

完整的 API 文档,包含按组组织的所有 231 个端点,请参阅 api/api.md

🔧 故障排除

连接问题

  • 验证 ProPresenter 是否正在运行且 API 已启用。
  • 检查 URL 和端口是否正确。
  • 确保没有防火墙阻止连接。
  • 如果启用了身份验证,请验证密码。

服务器无法启动

  • 确保您已使用 npm run build 构建项目。
  • 检查是否安装了 Node.js 18 或更高版本。
  • 验证是否已使用 npm install 安装所有依赖项。
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端