Wowza 流媒体 MCP 服务器(测试版)
通过自然语言提示或直接的API调用,无缝控制Wowza Streaming Engine。
Wowza 流媒体 MCP 服务器 将高级请求转换为Wowza REST命令,使AI代理、脚本和服务能够即时访问引擎的全部功能,无需繁琐的代码。
______________________________________________________________________
先决条件
- 已安装并运行以执行 Docker Compose
- A. Wowza 流媒体引擎 试用许可证密钥
文档
有关Wowza Streaming Engine REST API的更多信息:
______________________________________________________________________
设置与安装
按照以下步骤在本地运行Wowza MCP服务器。
步骤1:配置环境变量
创建一个 .env 在根目录中存放文件,并使用如(示例中所示的)凭据 .env.example 仓库中存在的文件。
步骤2:选择您的MCP模式
MCP服务器支持两种连接模式:
选项1:STDIO模式
在此模式下,Google ADK 客户端会启动 MCP 服务器作为子进程,并通过标准输入/输出进行通信。
要求:
- WOWZA_FLAGS(可译为“WOWZA标志”或根据上下文具体含义调整,如“WOWZA功能标志”等) 必须设置在
.env文件(例如。,WSE_FLAGS=application) - 代理通过环境变量将标志传递给MCP子进程
- 无需身份验证(受信任的子进程)
- OPENAI_API_KEY 必须设定在
.env文件(Google ADK 客户端 UI 测试必需)
启动服务:
docker compose --profile stdio up --build -d停止服务:
docker compose --profile stdio down访问服务:
- Google ADK 客户端用户界面http://localhost:3005/ 翻译为中文是:“本地主机上的3005端口”。不过,通常我们不会直接这样翻译URL地址,而是保持原样,因为URL地址在中文环境中也是通用的。所以,这个URL地址在中文语境下可以直接使用,无需翻译
- Wowza 流媒体引擎管理器http://localhost:8088/ 翻译为中文是:“本地主机的8088端口”。不过,通常我们不会直接这样翻译网址,而是会根据上下文来解释或说明这个网址的作用或访问方式。例如,可以说“访问本地开发服务器的8088端口”或“在本地计算机上打开8088端口的网页”
选项2:HTTP模式
在这种模式下,MCP服务器作为一个独立的HTTP服务运行,代理程序连接到该服务。这允许外部客户端(如VS Code、Claude Desktop或其他MCP客户端)连接到服务器。
要求:
- MCP_KEY 翻译成中文是“MCP密钥”或“MCP密钥值”,具体取决于上下文,但通常指的是用于某种认证、授权或加密过程的密钥 必须设置(不能为空)在
.env用于HTTP模式的文件 - X-Wowza-Flags(可译为“X-Wowza标志”或根据上下文具体含义调整) 每个HTTP请求都必须提供头部信息
- X-Wowza-MCP-Key 翻译为中文是:“X-Wowza-MCP-密钥” 必须提供标题且需与(内容)匹配
MCP_KEY价值 - 所有要求均需强制执行 - 服务器将拒绝不符合要求的请求
- OPENAI_API_KEY 必须设置在
.env文件(Google ADK 客户端 UI 测试必需)
启动服务:
docker compose --profile http up --build -d停止服务:
docker compose --profile http down访问服务:
- Google ADK 客户端用户界面http://localhost:3005/ 翻译为中文是:“本地主机:3005 端口”。不过,通常我们不会直接翻译网址,而是根据上下文来解释其含义或用途。在这个例子中,网址表示的是在本地计算机上运行的一个服务器或应用程序的地址,监听的是3005端口
- Wowza 流媒体引擎管理器http://localhost:8088/ 翻译为中文是:本地主机上的8088端口
- MCP 服务器(外部)http://localhost:8002/mcp 翻译为中文是:“本地主机:8002 端口上的 MCP(多协议控制器)”或简化为“本地8002端口的MCP服务”。这里,“localhost”指的是本地计算机,“8002”是端口号,“mcp”可能是某个特定应用程序或服务的名称,具体含义需根据上下文确定
连接外部客户端:
要将外部MCP客户端(如VS Code、Claude Desktop或Windsurf)连接到HTTP MCP服务器,请添加以下配置:
\*\*VS Code\*\* 的示例配置(mcp.json):
{
"servers": {
"wowza-streaming-engine": {
"url": "http://localhost:8002/mcp",
"type": "http",
"headers": {
"X-Wowza-Flags": "application",
"X-Wowza-MCP-Key": "your-secret-key-here"
}
}
},
"inputs": []
}示例配置用于 风帆冲浪 (mcp_config.json):
{
"mcpServers": {
"wowza-streaming-engine": {
"url": "http://localhost:8002/mcp",
"headers": {
"X-Wowza-Flags": "application",
"X-Wowza-MCP-Key": "your-secret-key-here"
},
"disabled": false,
"disabledTools": []
}
}
}示例配置如下 光标 (mcp.json):
{
"mcpServers": {
"wowza-streaming-engine": {
"url": "http://localhost:8002/mcp",
"type": "http",
"headers": {
"X-Wowza-Flags": "application",
"X-Wowza-MCP-Key": "your-secret-key-here"
}
}
}
}重要提示:
- X-Wowza-MCP-Key 翻译成中文是:“X-Wowza-MCP-密钥”或“X-Wowza-MCP-密钥头”(具体翻译可能根据上下文有所调整,但核心意思是“X-Wowza-MCP-密钥”这一概念)。这里,“X-Wowza-MCP-Key”通常指的是在HTTP请求头中用于标识或验证客户端身份的一个特定密钥,类似于API密钥或认证令牌必需 - 必须与(某物)匹配
MCP_KEY你心中的价值.env文件。 - X-Wowza-Flags(可译为“X-Wowza 标志”或根据上下文具体含义调整,但通常保留原样以表示特定的HTTP头字段)必需 - 控制可用工具。
- 示例: read, write, all, application, publisher,monitoring - 见 使用X-Wowza-Flags进行工具过滤 详情请见
- 每次请求时,都会对两个头部信息进行严格验证。缺失或无效的头部信息将导致错误。
使用X-Wowza-Flags进行工具过滤
Wowza Streaming MCP服务器提供了对通过(其接口)暴露的工具进行精细控制的功能 X-Wowza-Flags 头部(HTTP模式)或 WSE_FLAGS 环境变量(STDIO 模式)。
旗帜系统逻辑
这个标志系统与……一起工作 或逻辑(OR逻辑) 对于类别标志和 过滤逻辑 对于访问修饰符:
类别标志 (结合OR逻辑):
- 如果你指定了
application,publisher你会获得来自这两个类别的所有工具 - 使用特定类别来缩小可用工具的范围
访问修饰符标志 (过滤现有选择):
read过滤掉您所选类别中的所有写入/破坏性操作write仅显示您所选类别中的写操作(创建、更新、删除)
主要类别旗帜
| 旗帜 | 描述 |
|---|---|
application | 应用程序管理 - 创建、更新、配置应用程序和实例 |
publisher | 发布者/直播流管理 - 管理接收的流和发布者 |
transcoder | 转码操作 - 模板、编码和叠加设置 |
mediacache | 媒体缓存管理 - 来源、存储和缓存资源 |
mediacaster | MediaCaster 操作 - 从外部源(IP摄像头、流媒体服务器)拉取流媒体 |
monitoring | 服务器监控与统计 - 性能指标、分析及调优配置 |
streaming_engine | 流引擎操作 - 实时源和流目标管理 |
vhost | 虚拟主机管理 - vHost配置与统计信息 |
server-action | 服务器操作 - 重启、停止服务器运行 |
server-config | 服务器配置 - 服务器通用设置 |
server-info 服务器信息 - REST API版本和构建详情 | |
server-license | 服务器许可证管理 |
server-listener | 服务器监听器配置 |
server-logs | 服务器日志管理 - 访问和读取日志文件 |
server-status | 服务器状态信息 |
user 用户管理操作 | |
log4j | 日志配置 - 日志级别和设置 |
all | 所有可用工具 |
访问修饰符标志
| 标志 | 描述 |
|---|---|
read | 过滤器仅读取操作 - 移除所有写入/破坏性功能 |
write | 过滤器,仅记录选定类别中的写操作(创建、更新、删除) |
读取标志行为
该 read 标志(或旗帜)起着……的作用 过滤器 在您选择的类别中:
"application,read"= 所有应用程序工具,但仅限于读取操作"publisher,monitoring,read"= 所有发布者和监控工具,但仅限于读取操作"read"= 所有工具,但仅限读取操作
标志组合示例
类别或逻辑:
"X-Wowza-Flags": "application" // All application tools
"X-Wowza-Flags": "application,publisher" // All application AND publisher tools
"X-Wowza-Flags": "monitoring,transcoder" // All monitoring AND transcoder tools只读过滤器:
"X-Wowza-Flags": "application,read" // All application tools, read-only
"X-Wowza-Flags": "publisher,monitoring,read" // Publisher AND monitoring, read-only
"X-Wowza-Flags": "read" // All tools, read-only只写过滤器(创建、更新、删除):
"X-Wowza-Flags": "application,write" // Only write operations for application
"X-Wowza-Flags": "publisher,write" // Only write operations for publisher多个类别:
"X-Wowza-Flags": "application,publisher,transcoder" // All tools from these categories
"X-Wowza-Flags": "application,publisher,transcoder,read" // Same tools, but read-only