Roku MCP Server

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.

Category
Visit Server

README

๐ŸŽฎ Roku MCP Server

ํ•œ๊ตญ์–ด | English


ํ•œ๊ตญ์–ด

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured