一个基于 LPS(直播分发系统)实现的 MCP 服务。
LPS(直播分发系统)的核心功能:支持把客户的推流或拉流分发至任意支持RTMP协议的国内外直播平台,最终实现一处推流处处观看的效果。支持RTMP、SRT、HLS、FLV、WEBRTC等多种直播推流/播放协议。
本服务基于LPS,以"工程"为核心,提供对直播推流、拉流、分发的管理和直播质量数据获取等能力,统一暴露为 MCP 工具以便客户端调用。
- Node.js 20+(推荐与 Dockerfile 一致使用 Node 22)
- NPM 9+
依赖(关键):
@modelcontextprotocol/sdkzod
npm install
npm run start
# 或
node app_stdio.js{
"mcpServers": {
"lps-mcp-server": {
"command": "npx",
"args": [
"-y",
"lps-mcp-server"
],
"env": {
"ACCESS_ID": "<YOUR_ACCESS_ID>",
"ACCESS_KEY": "<YOUR_ACCESS_KEY>"
}
}
}
}认证信息通过环境变量提供:
-
ACCESS_ID:访问ID -
ACCESS_KEY:访问密钥
在启动服务前,请确保设置了这些环境变量。
请参考 奥点云 APAAS 平台 API 密钥获取指南 获取您的 ACCESS_ID 和 ACCESS_KEY。
| 工具名称 | 功能 | 必需参数 | 说明 |
|---|---|---|---|
project_list | 获取工程列表 | 无 | 支持分页和搜索 |
project_create | 创建工程 | title | 创建新工程 |
project_start | 启动工程 |
id + projectId
| 需要两个参数 |
project_stop | 停止工程 |
id + projectId
| 需要两个参数 |
project_delete | 删除工程 |
id + projectId
| 需要两个参数 |
project_modify | 修改工程 |
projectId + title
| 修改工程标题 |
project_get_info | 获取工程详情 | projectId | 查询工程信息 |
| 工具名称 | 功能 | 必需参数 | 说明 |
|---|---|---|---|
publish_to_add | 添加分发 |
projectId + url
| 添加分发地址 |
publish_to_modify | 修改分发 |
projectId + publishToId + url
| 修改分发配置 |
publish_to_remove | 删除分发 |
projectId + publishToId
| 删除指定分发 |
publish_to_start | 启动分发 |
projectId + publishToId
| 启动指定分发 |
publish_to_stop | 停止分发 |
projectId + publishToId
| 停止指定分发 |
publish_to_start_all | 启动所有分发 | projectId | 启动所有分发 |
publish_to_stop_all | 停止所有分发 | projectId | 停止所有分发 |
publish_to_remove_all | 删除所有分发 | projectId | 删除所有分发 |
publish_to_get_detail | 获取分发详情 | projectId | 获取分发详情 |
| 工具名称 | 功能 | 必需参数 | 说明 |
|---|---|---|---|
analytics_fluency_history | 获取流畅度历史 | projectId | 推流流畅度数据 |
analytics_fps_history | 获取帧率历史 | projectId | 推流帧率数据 |
analytics_bitrate_history | 获取码率历史 | projectId | 推流码率数据 |
| 工具名称 | 功能 | 必需参数 | 说明 |
|---|---|---|---|
pull_stream_set | 设置拉流地址 |
projectId + url
| 设置拉流地址 |
pull_stream_remove | 删除拉流地址 | projectId | 删除拉流地址 |
pull_stream_get | 查询拉流地址 | projectId | 查询拉流地址 |
| 工具名称 | 功能 | 必需参数 | 说明 |
|---|---|---|---|
about | 获取工具相关信息 | 无 | 工具相关信息 |
- id: 平台分配ID,用于工程操作时标识具体工程
- projectId: 工程ID,用于标识工程
特别注意: 启动/停止/删除工程时需要同时提供 id 和 projectId 两个参数
// 步骤1: 创建工程
{
"name": "project_create",
"arguments": {
"title": "我的直播工程"
}
}
// 步骤2: 获取工程列表(获取id和projectId)
{
"name": "project_list",
"arguments": {}
}
// 步骤3: 启动工程(需要同时提供id和projectId)
{
"name": "project_start",
"arguments": {
"id": "从步骤2获取的id值",
"projectId": "从步骤2获取的projectId值"
}
}
{
"name": "publish_to_add",
"arguments": {
"projectId": "工程ID",
"url": "rtmp://example.com/live/stream",
"serviceName": "example",
"liveName": "stream"
}
}A: 这是系统设计的要求:
-
projectId用于标识具体的工程 -
id是平台分配的唯一标识符 - 两个参数配合使用确保操作的准确性和安全性
A:
- 使用
project_list工具获取工程列表 - 从返回结果中提取
id和projectId字段 - 在后续操作中同时使用这两个值