Roku MCP Server
Enables AI agents to develop, test, and certify Roku applications by providing direct control over device functions like app deployment, remote input, and SceneGraph inspection. It supports automated workflows including real-time log collection, media monitoring, and certification verification.
README
🎮 Roku MCP Server
한국어
Roku 기기 개발, 테스트, 인증을 위한 MCP (Model Context Protocol) 서버입니다.
AI 에이전트(Gemini, Claude, Copilot 등)가 Roku 기기를 직접 제어하고 테스트할 수 있게 합니다.
✨ 주요 기능
- 📦 앱 배포 — 사이드로드 배포 및 스크린샷 캡처
- 🖥️ 해상도 검증 — HD/FHD 호환성 자동 확인
- ⌨️ 리모컨 제어 — 키 입력, 시퀀스, 텍스트 입력
- 📱 앱 관리 — 설치된 앱 조회, 실행, 딥링크 테스트
- 📋 로그 수집 — BrightScript 콘솔 실시간 로그
- 🔍 SceneGraph 검사 — 노드 트리, 메모리, 포커스 요소
- 🎥 스트리밍 모니터링 — 재생 상태, 버퍼링, 대역폭
- 🛡️ 인증 검증 — DRM, 접근성(Audio Guide/자막), RAF 광고
- 🧪 통합 테스트 — 여러 동작을 시퀀스로 자동 실행
📋 도구 목록 (25개)
| 카테고리 | 도구 | 설명 |
|---|---|---|
| 배포 | roku_deploy |
앱 사이드로드 배포 |
roku_screenshot |
화면 캡처 (base64 이미지) | |
| 디스플레이 | roku_device_info |
기기 정보 (모델, 해상도, 펌웨어) |
roku_check_resolution |
HD/FHD 해상도 호환성 검증 | |
| 입력 | roku_keypress |
리모컨 키 입력 |
roku_keypress_sequence |
키 시퀀스 전송 | |
roku_input |
커스텀 이벤트/딥링크 파라미터 | |
| 앱 관리 | roku_apps |
설치된 앱 목록 |
roku_active_app |
현재 실행 중인 앱 | |
roku_launch |
앱 실행/재시작 | |
roku_deep_link |
딥링크 인증 테스트 | |
roku_registry |
앱 레지스트리 데이터 조회 | |
roku_app_state |
앱 라이프사이클 추적 | |
| 로그 | roku_log |
BrightScript 콘솔 로그 |
| SceneGraph | roku_sg_nodes |
SG 노드 트리 검사 |
roku_perf |
CPU/메모리 사용량 | |
roku_graphics_fps |
그래픽 FPS | |
roku_element |
UI 요소 검색 (WebDriver) | |
roku_focused_element |
포커스 요소 조회 | |
| 스트리밍 | roku_media_player |
미디어 재생 상태 |
roku_server_check |
서버 헬스체크 | |
| 인증 | roku_check_drm |
DRM 콘텐츠 보호 상태 |
roku_check_accessibility |
접근성 준수 검사 | |
roku_check_raf |
RAF 광고 프레임워크 검증 | |
| 테스트 | roku_run_test |
통합 테스트 실행 |
🛠️ 설치
git clone https://github.com/maskelog/roku-mcp.git
cd roku-mcp
npm install
npm run build
⚙️ 설정
.env.example을 .env로 복사한 후 설정:
ROKU_DEV_HOST=192.168.0.100 # Roku 기기 IP (설정 > 네트워크 > 정보)
ROKU_DEV_PASSWORD=your_password # Developer Mode 비밀번호
ROKU_PROJECT_ROOT= # 프로젝트 루트 (기본: 상위 디렉토리)
ROKU_APP_SERVER_URL= # 앱 서버 URL (선택)
⚠️ Roku Developer Mode를 활성화해야 합니다.
🔌 MCP 클라이언트 연결
AI 에이전트의 MCP 설정에 추가:
{
"mcpServers": {
"roku-dev": {
"command": "node",
"args": ["/path/to/roku-mcp/dist/index.js"],
"env": {
"ROKU_DEV_HOST": "192.168.0.100",
"ROKU_DEV_PASSWORD": "your_password"
}
}
}
}
💡 사용 예시
AI 에이전트에게 자연어로 요청:
- "Roku 기기 정보 알려줘" →
roku_device_info - "앱 배포하고 스크린샷 찍어줘" →
roku_deploy→roku_screenshot - "광고 설정 어떤지 확인해" →
roku_check_raf - "HD/FHD 해상도 호환 되는지 봐줘" →
roku_check_resolution - "통합 테스트 돌려줘" →
roku_run_test
English
MCP (Model Context Protocol) server for Roku device development, testing, and certification.
Enables AI agents (Gemini, Claude, Copilot, etc.) to directly control and test Roku devices.
✨ Features
- 📦 App Deployment — Sideload apps and capture screenshots
- 🖥️ Resolution Verification — Auto-check HD/FHD compatibility
- ⌨️ Remote Control — Key presses, sequences, text input
- 📱 App Management — List apps, launch, deep link testing
- 📋 Log Collection — Real-time BrightScript console logs
- 🔍 SceneGraph Inspection — Node tree, memory, focused elements
- 🎥 Streaming Monitoring — Playback state, buffering, bandwidth
- 🛡️ Certification Checks — DRM, accessibility (Audio Guide/Captions), RAF ads
- 🧪 Integration Testing — Automated multi-step test sequences
📋 Tools (25)
| Category | Tool | Description |
|---|---|---|
| Deploy | roku_deploy |
Sideload app to device |
roku_screenshot |
Capture screen (base64 image) | |
| Display | roku_device_info |
Device info (model, resolution, firmware) |
roku_check_resolution |
Verify HD/FHD resolution support | |
| Input | roku_keypress |
Send remote key press |
roku_keypress_sequence |
Send key sequence | |
roku_input |
Custom events / deep link params | |
| App | roku_apps |
List installed apps |
roku_active_app |
Currently running app | |
roku_launch |
Launch / restart app | |
roku_deep_link |
Test deep linking (certification req.) | |
roku_registry |
Read app registry data | |
roku_app_state |
Track app lifecycle | |
| Logging | roku_log |
BrightScript console logs |
| SceneGraph | roku_sg_nodes |
Inspect SG node tree |
roku_perf |
CPU / memory usage | |
roku_graphics_fps |
Graphics frame rate | |
roku_element |
Find UI element (WebDriver) | |
roku_focused_element |
Get focused element | |
| Streaming | roku_media_player |
Media playback state |
roku_server_check |
Server health check | |
| Certification | roku_check_drm |
DRM content protection status |
roku_check_accessibility |
Accessibility compliance | |
roku_check_raf |
RAF ad framework verification | |
| Testing | roku_run_test |
Run integration test sequence |
🛠️ Installation
git clone https://github.com/maskelog/roku-mcp.git
cd roku-mcp
npm install
npm run build
⚙️ Configuration
Copy .env.example to .env and configure:
ROKU_DEV_HOST=192.168.0.100 # Roku device IP (Settings > Network > About)
ROKU_DEV_PASSWORD=your_password # Developer Mode password
ROKU_PROJECT_ROOT= # Project root (default: parent directory)
ROKU_APP_SERVER_URL= # App server URL (optional)
⚠️ Roku Developer Mode must be enabled on the target device.
🔌 MCP Client Setup
Add to your AI agent's MCP configuration:
{
"mcpServers": {
"roku-dev": {
"command": "node",
"args": ["/path/to/roku-mcp/dist/index.js"],
"env": {
"ROKU_DEV_HOST": "192.168.0.100",
"ROKU_DEV_PASSWORD": "your_password"
}
}
}
}
💡 Usage Examples
Ask your AI agent in natural language:
- "Show me the Roku device info" →
roku_device_info - "Deploy the app and take a screenshot" →
roku_deploy→roku_screenshot - "Check if the ad framework is set up correctly" →
roku_check_raf - "Verify HD/FHD resolution support" →
roku_check_resolution - "Run a full integration test" →
roku_run_test
🏗️ Architecture
roku-mcp/
├── src/
│ ├── index.ts # MCP server entry (25 tools + 2 resources)
│ ├── roku-client.ts # ECP + Dev Web Server client
│ ├── log-client.ts # BrightScript console (Telnet :8085)
│ ├── webdriver-client.ts # Roku WebDriver (port 9000)
│ └── test-runner.ts # Integration test orchestrator
├── dist/ # Compiled output
├── package.json
├── tsconfig.json
└── .env.example
📡 Roku APIs Used
| API | Port | Purpose |
|---|---|---|
| ECP (External Control Protocol) | 8060 | Device control, queries, key presses |
| Developer Web Server | 80 | App sideloading, screenshots |
| BrightScript Console | 8085 | Runtime logs, debugging |
| SceneGraph Debug | 8080 | SG-specific debugging |
| WebDriver | 9000 | UI element automation |
📝 Self-Documenting
Every tool includes inline Roku API documentation in its description — API endpoints, ports, parameters, expected responses, and links to official docs. AI agents can use the tools without consulting external documentation.
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。