lps-mcp-server
v1.2.1
Published
一个基于 LPS(直播分发系统)实现的 MCP 服务。
Readme
LPS MCP 服务(mlps-mcp-server)
一个基于 LPS(直播分发系统)实现的 MCP 服务。
关于LPS
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.jsMCP服务配置(NPX启动)
{
"mcpServers": {
"lps-mcp-server": {
"command": "npx",
"args": [
"-y",
"lps-mcp-server"
],
"env": {
"ACCESS_ID": "<YOUR_ACCESS_ID>",
"ACCESS_KEY": "<YOUR_ACCESS_KEY>"
}
}
}
}认证
认证信息通过环境变量提供:
ACCESS_ID:访问IDACCESS_KEY:访问密钥
在启动服务前,请确保设置了这些环境变量。
获取 API 密钥
请参考 奥点云 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"
}
}详细文档
常见问题
Q: 为什么启动工程时需要同时提供id和projectId?
A: 这是系统设计的要求:
projectId用于标识具体的工程id是平台分配的唯一标识符- 两个参数配合使用确保操作的准确性和安全性
Q: 如何获取正确的参数值?
A:
- 使用
project_list工具获取工程列表 - 从返回结果中提取
id和projectId字段 - 在后续操作中同时使用这两个值
