roku-dev-mcp
Roku Development MCP Server (roku-dev-mcp)
Ein autonomer Model Context Protocol (MCP)-Server, der KI-Codierungsagenten (wie Antigravity, Claude und Cursor) befähigt, Roku BrightScript- und SceneGraph-Anwendungen zu entwickeln, bereitzustellen, zu navigieren, zu inspizieren und zu debuggen.
1. Übersicht
Roku OS trennt die Entwicklungs-APIs über vier verschiedene Netzwerkprotokolle auf vier verschiedenen Ports. roku-dev-mcp fungiert als Middleware-Controller, der die strukturierte JSON-Tool-Call-Schnittstelle des Agenten mit der fragmentierten Entwickler-API-Oberfläche von Roku verbindet.
┌──────────────────────────────────────────────────────────────────┐
│ MCP Client (Agent) │
│ (Antigravity / Claude / etc.) │
└──────────────────────────┬───────────────────────────────────────┘
│ MCP Protocol (stdio)
▼
┌──────────────────────────────────────────────────────────────────┐
│ roku-dev-mcp Server │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌────────────────────────┐ │
│ │ Tool Router │ │ Log Buffer │ │ Connection Manager │ │
│ │ (Zod Schemas│ │ (Ring Buffer │ │ (Mutex, Reconnect, │ │
│ │ & Handlers)│ │ & Crash Det)│ │ Timeouts) │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬─────────────────┘ │
│ │ │ │ │
│ ┌──────┴─────────────────┴──────────────────┴─────────────────┐ │
│ │ Roku Interface Adapters │ │
│ │ ┌─────────────┐ ┌──────────┐ ┌──────────┐ ┌─────────────┐ │ │
│ │ │ Port 80 │ │ Port │ │ Port │ │ Port 8085 │ │ │
│ │ │ Installer │ │ 8060 ECP │ │ 8080 SG │ │ BS Console │ │ │
│ │ │ (HTTP/ │ │ (HTTP │ │ Debug │ │ (Telnet / │ │ │
│ │ │ Digest) │ │ REST) │ │ (Telnet) │ │ Persistent)│ │ │
│ │ └──────┬──────┘ └────┬─────┘ └────┬─────┘ └──────┬──────┘ │ │
│ └─────────┼─────────────┼────────────┼──────────────┼──────────┘ │
└────────────┼─────────────┼────────────┼──────────────┼────────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌──────────────────────────────────────────────────────────────────┐
│ Roku Device (TV / Stick) │
│ :80 Installer :8060 ECP :8080 SG Debug :8085 BS Debug │
└──────────────────────────────────────────────────────────────────┘Related MCP server: roku-mcp
2. Port-Architektur-Matrix
Port | Protokoll | Authentifizierung | Verbindung | Zweck |
80 | HTTP | Digest ( | Pro Anfrage | Sideloading ( |
8060 | HTTP REST | Keine* | Pro Anfrage | Fernbedienungstasten, Deep Linking, Geräte-/Medienstatusabfragen |
8080 | Telnet (TCP) | Keine | On-Demand (Serialisiert) | SceneGraph-Live-Knotenbaum-Dumps ( |
8085 | Telnet (TCP) | Keine | Dauerhafter Hintergrund | BrightScript-Konsolenprotokolle, Echtzeit-Crash-Erfassung, interaktiver Debugger |
*Erfordert, dass „Control by mobile apps“ in Roku OS 14.1+ aktiviert ist.
3. Voraussetzungen
3.1 Roku-Gerätekonfiguration
Entwicklermodus aktiviert:
Fernbedienungssequenz:
Home ×3 → Up ×2 → Right → Left → Right → Left → Right.Legen Sie ein Entwicklerpasswort fest (wird als
ROKU_DEV_PASSWORDverwendet).
„Control by mobile apps“ aktiviert:
Einstellungen → System → Erweiterte Systemeinstellungen → Steuerung durch mobile Apps→ wählen Sie „Aktiviert“.
Lokale Netzwerkverbindung:
Stellen Sie sicher, dass der Host, auf dem der MCP-Server läuft, sich im selben Subnetz wie das Roku-Gerät befindet.
Die Ports
80,8060,8080und8085müssen erreichbar sein.
3.2 Host-Umgebung
Node.js:
≥ 20.0.0(LTS empfohlen)npm oder pnpm
4. Konfiguration & Umgebungsvariablen
Erstellen Sie eine .env-Datei im Projektstamm oder konfigurieren Sie Umgebungsvariablen in Ihrem MCP-Client:
Variable | Erforderlich | Standard | Beschreibung |
| Ja | — | Entwicklerpasswort, das bei der Aktivierung des Entwicklermodus festgelegt wurde. |
| Nein | SSDP-Erkennung | IPv4-Adresse des Ziel-Roku-Geräts (z. B. |
| Nein |
| Maximale Zeilen im BrightScript-Ringpuffer. |
| Nein |
| Verzögerung in Millisekunden zwischen aufeinanderfolgenden Tastendrücken. |
| Nein |
| TCP-Verbindungszeitüberschreitung für Telnet-Sockets. |
| Nein |
| Zeitüberschreitung für die Ausführung von Telnet-Befehlen. |
5. MCP-Client-Einrichtung
5.1 Antigravity / Claude Desktop-Konfiguration
Fügen Sie den Server zu Ihrer MCP-Client-Konfiguration hinzu (z. B. mcpServers in claude_desktop_config.json oder Antigravity-MCP-Einstellungen):
{
"mcpServers": {
"roku-dev": {
"command": "node",
"args": ["/absolute/path/to/roku-dev-mcp/dist/index.js"],
"env": {
"ROKU_DEV_PASSWORD": "your_roku_dev_password",
"ROKU_DEVICE_IP": "192.168.1.50"
}
}
}
}Detaillierte Konfigurationsanweisungen für Antigravity, Claude CLI / Claude Desktop, Codex und Opencode finden Sie in docs/INSTALL.md.
6. Verfügbare MCP-Tools
1. roku_build_and_deploy
Zippt ein BrightScript/SceneGraph-Projektverzeichnis und lädt es auf das Roku-Gerät (Sideloading).
Eingaben:
source_dir(string): Absoluter Pfad zum Projektstamm (mussmanifestenthalten).action("Install" | "Replace", Standard:"Install"): Installieren ersetzt eine vorhandene Sideload-App.exclude_patterns(string[], optional): Zusätzliche Glob-Muster zum Ausschließen.
Rückgabe: Bereitstellungsergebnis, Startprotokolle, Installationsdauer und Absturzstatus.
2. roku_send_keys
Sendet sequenzielle ECP-Tastendruckbefehle mit konfigurierbaren Verzögerungen zwischen den Tasten.
Eingaben:
keys(string[]): Geordnete Liste von ECP-Tasten (z. B.["Home", "Down", "Select", "Lit_a"]).delay_ms(number, optional): Verzögerung zwischen Tastendrücken in Millisekunden.
Rückgabe: Anzahl gesendeter Tasten, Ausführungsdauer und ggf. Fehler.
3. roku_get_ui_tree
Inspiziert und analysiert den Live-SceneGraph-Knotenbaum in eine JSON-Baumstruktur.
Eingaben:
filter_id(string, optional): Knoten-ID der Teilbaumwurzel.include_fields(boolean, Standard:true): Knotenfeld-Schlüssel-Werte einbeziehen.max_depth(number, optional): Maximale Baumtiefe.
Rückgabe: Analysierter Knotenbaum mit Referenzzählern und Felddaten.
4. roku_capture_state
Erstellt eine zusammengesetzte multimodale Momentaufnahme des Gerätezustands.
Eingaben:
log_lines(number, Standard:50): Letzte BrightScript-Protokolleinträge.include_screenshot(boolean, Standard:true): Base64-Screenshot-Bild.include_ui_tree(boolean, Standard:false): SceneGraph-Baum-Momentaufnahme.
Rückgabe: Zusammengesetzter JSON-Zustand plus Inline-Bild-Payload für multimodale Agenten.
5. roku_assert_playback
Fragt den ECP-Mediaplayer ab, um den Videowiedergabestatus und Metriken zu überprüfen.
Eingaben: Keine.
Rückgabe:
is_playing,is_buffering,progress_percent, Dauer, Stream-Bitrate sowie Audio-/Videoformate.
6. roku_wait_for_condition
Deterministisches, bedingungsbasiertes Polling, um fest codierte Schlaf-Timer zu vermeiden.
Eingaben:
condition(string): Bedingungsausdruck (node_exists: {id},node_field: {id}.{field}={val},playback_state: {state},app_active: {id},log_contains: {pattern},crash_detected).timeout_seconds(number, Standard:10): Maximale Wartedauer.poll_interval_ms(number, Standard:500): Abfrageintervall.
Rückgabe: Erfüllungsflag, verstrichene Zeit, Anzahl der Abfragen und passende Momentaufnahme.
7. roku_launch
Stellt Deep-Links zu bestimmten Inhaltselementen in der sideloadeten Anwendung her.
Eingaben:
content_id(string, optional): Ziel-Inhalts-ID.media_type(string, optional): Medientyp-Hinweis (movie,series, usw.).params(Record<string, string>, optional): Zusätzliche Abfrageparameter.
Rückgabe: Startbestätigung und Überprüfung der aktiven App.
7. Entwicklung & Testen
# Install dependencies
npm install
# Run unit tests (uses built-in MockRokuDevice)
npm test
# Run unit tests specifically
npm run test:unit
# Run integration tests against a real Roku TV
npm run test:integration
# Run all tests (unit + integration)
ROKU_INTEGRATION_TEST=1 npm test
# Run build
npm run buildDie vollständige Testdokumentation und Schritt-für-Schritt-Verifizierungsanweisungen finden Sie in docs/TESTING.md.
8. Lizenz
Dieses Projekt ist unter der Unlicense lizenziert — Public Domain.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Build, validate, and deploy multi-agent AI solutions from any AI environment.
Control real Android and iOS devices with LLM agents — tap, swipe, type, automate flows.
Develop, manage, and debug Railway projects, services, and deployments from within agents.
Run, build, and validate firmware on virtual hardware from your AI agent. Hardware knowledge corpus.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables 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.1
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to inspect and control Roku devices—query UI elements, send remote input, launch channels, and run tests—using the Model Context Protocol or a CLI.174MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to interact with a running Roblox game client to execute Lua code, inspect scripts, spy on remotes, and more.95216MIT
- AlicenseAqualityCmaintenanceAll-in-one developer tool and MCP Server for Roku development, featuring ECP device control, automated channel sideloading, BrightScript debugging, and real-time log monitoring.3528MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/voidxela/roku-dev-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server