年份-MCP
A. 模型上下文协议 用于Roku设备自动化的(MCP)服务器。公开用于应用程序部署、ECP远程控制、屏幕截图捕获、SceneGraph节点检查和BrightScript调试控制台访问的工具。
安装
npm install -g roku-mcp或者直接使用npx运行(无需安装):
npx roku-mcp客户端配置
光标
- 创建
.cursor/mcp.json在项目根目录中:
{
"mcpServers": {
"roku": {
"command": "npx",
"args": ["-y", "roku-mcp"],
"env": {
"ROKU_DEVICE_HOST": "192.168.1.XXX",
"ROKU_DEVICE_PASSWORD": "your-password"
}
}
}
}- 重新加载窗口:
Cmd+Shift+P(macOS)/Ctrl+Shift+P(Windows/Linux)→ 开发者:重新加载窗口 - 首选 光标设置→ MCP 并验证“roku”服务器是否显示绿色状态。如果它显示为禁用,请单击切换以启用它。
VS Code
需要VS代码 1.99+ 使用GitHub Copilot扩展。
- 创建
.vscode/mcp.json在项目根目录中:
{
"servers": {
"roku": {
"command": "npx",
"args": ["-y", "roku-mcp"],
"env": {
"ROKU_DEVICE_HOST": "192.168.1.XXX",
"ROKU_DEVICE_PASSWORD": "your-password"
}
}
}
}- 重新加载窗口:
Cmd+Shift+P/Ctrl+Shift+P→ 开发者:重新加载窗口 - 打开Copilot聊天并切换到 代理模式 (从聊天模式下拉列表中选择)。roku工具将在那里提供。
克劳德桌面版
添加到您的Claude Desktop配置文件中:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"roku": {
"command": "npx",
"args": ["-y", "roku-mcp"],
"env": {
"ROKU_DEVICE_HOST": "192.168.1.XXX",
"ROKU_DEVICE_PASSWORD": "your-password"
}
}
}
}保存后重新启动Claude Desktop。
帆板运动
创建 .windsurf/mcp.json 在项目根目录中:
{
"mcpServers": {
"roku": {
"command": "npx",
"args": ["-y", "roku-mcp"],
"env": {
"ROKU_DEVICE_HOST": "192.168.1.XXX",
"ROKU_DEVICE_PASSWORD": "your-password"
}
}
}
}保存后重新加载窗口。
任何兼容MCP的客户端
服务器使用 stdio传输任何支持MCP的客户端都可以通过以下方式启动它:
command: npx
args: ["-y", "roku-mcp"]通过 ROKU_DEVICE_HOST 和 ROKU_DEVICE_PASSWORD 或者省略主机以使用SSDP自动发现。
环境变量
| 变量 | 描述 |
|---|---|
ROKU_DEVICE_HOST | Roku设备的IP地址或主机名 |
ROKU_DEVICE_PASSWORD | Roku设备的开发者密码 |
两者也可以在每次工具调用时作为参数传递,从而覆盖环境变量。
自动发现
如果 ROKU_DEVICE_HOST 未设置且否 host 如果提供了参数,服务器将使用SSDP自动发现本地网络上的Roku设备,并使用第一个发现的设备。您还可以使用 roku_discover 工具列出所有可用设备。请注意,无法发现密码,仍必须配置密码。
.env 文件支持
服务器自动加载 .env 使用以下命令从当前工作目录中删除文件 Dotenv。如果你的项目 .env 已使用 ROKU_DEVICE_HOST 和 ROKU_DEVICE_PASSWORD,服务器无需额外配置即可获取它们——只需省略 env 从MCP配置中屏蔽:
ROKU_DEVICE_HOST=192.168.1.100
ROKU_DEVICE_PASSWORD=my-password如果您的项目使用不同的变量名(例如。 ROKU_IP, ROKU_DEV_PASSWORD),您可以在 env 块:
"env": {
"ROKU_DEVICE_HOST": "${ROKU_IP}",
"ROKU_DEVICE_PASSWORD": "${ROKU_DEV_PASSWORD}"
}或者简单地将两个预期变量添加到您的 .env 除了你现有的。
可用工具
部署
| 工具 | 说明 |
|---|---|
roku_deploy | 将Roku应用程序侧载(部署)到设备 |
roku_delete_dev_channel | 删除当前侧面加载的开发人员通道 |
发现
| 工具 | 说明 |
|---|---|
roku_discover | 通过SSDP扫描本地网络中的Roku设备 |
ECP(外部控制协议)
| 工具 | 说明 |
|---|---|
roku_keypress | 发送一个按键(Home、Select、Up、Down、Left、Right、Back等) |
roku_keypress_sequence | 按顺序发送多个按键,并具有可配置的延迟 |
roku_type_text | 在焦点字段中键入文本字符串(例如电子邮件、密码、搜索) |
roku_launch | 启动或深度链接到频道 |
roku_query_device_info | 获取设备型号、固件、序列号、网络信息 |
roku_query_active_app | 获取当前正在运行的应用程序 |
roku_query_media_player | 获取媒体播放器状态(播放/暂停/缓冲/停止)、位置和持续时间 |
roku_query_app_ui | 以XML格式获取当前应用程序UI树 |
roku_query_sg_nodes | 查询SceneGraph节点(全部、根或按节点ID) |
roku_find_node | 按ID或属性(子类型、文本等)在UI树中搜索节点 |
roku_get_focused_node | 获取当前聚焦的节点及其所有属性 |
roku_sleep | 等待指定的持续时间(在导航步骤之间有用) |
截图
| 工具 | 说明 |
|---|---|
roku_screenshot | 捕获屏幕截图(返回base64图像和文件路径) |
调试控制台
| 工具 | 说明 |
|---|---|
roku_console_connect | 打开与BrightScript调试控制台(端口8085)的TCP连接 |
roku_console_read | 读取缓冲控制台输出并自动断开连接 |
roku_console_send | 向调试控制台发送命令并自动断开连接 |
roku_console_disconnect | 关闭控制台连接(安全网) |
BrightScript分析器
分析 .bsprof Roku设备生成的文件。这些工具使用 bsprof-cli 解析二进制分析器格式并返回结构化JSON报告。
| 工具 | 说明 |
|---|---|
analyze_bsprof | 分析.bspro文件——内存泄漏、CPU热路径、完整报告或摘要。支持按模块/文件过滤和排序选项。 |
compare_bsprof | 比较两个.bspro配置文件,以检测回归、改进、新泄漏和已解决的泄漏。 |
bsprof_info | 无需完全解析即可获取标头元数据(目标名称、设备、固件、格式版本、功能)。 |
生成一个 .bsprof 文件,在Roku应用程序中启用分析器 manifest (bs_prof_enabled=true),运行应用程序,然后从下载配置文件 http://:8080.
完美追踪
记录、分析和比较Roku设备的Perfetto痕迹。需要 年OS 15.1+。这些工具使用 年度完美 用于ECP控制、WebSocket记录和PerfettoSQL分析。
| 工具 | 说明 |
|---|---|
roku_perfetto_enable | 通过ECP为频道启用Perfetto跟踪(跟踪在下次应用程序启动时开始) |
roku_perfetto_start | 通过WebSocket二进制流开始录制Perfetto跟踪 |
roku_perfetto_stop | 停止录制并返回文件路径、大小和持续时间 |
analyze_perfetto | 分析.trace文件——摘要、丢帧、关键事件、观察者、会合、设置字段或线程。返回AI友好的结构化JSON,并附带建议。 |
compare_perfetto | 比较两个.trace文件以检测性能回归和改进 |
query_perfetto | 对跟踪文件运行原始PerfettoSQL查询以进行自定义分析 |
工作流:启用跟踪→ 开始录制→ 与应用程序交互→ 停止录制→ 分析。这 .trace 文件也可以在以下位置打开 ui.完美.dev.
需求
- Node.js 18+
- Roku设备 开发者模式 在同一网络上启用
- 对于屏幕截图和部署:必须运行一个侧向加载的开发通道
许可证
麻省理工学院
