Skip to content
Agentmart
Submit a tool

Roku MCP

MCP server for Roku device automation — deploy, ECP control, screenshots, and debug console

Connector by jack1590 · GitHub account verified by the MCP Registry

IndexedLicense unknownLocal (stdio)★ 4
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/jack1590-rokumcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

MCP server for Roku device automation — deploy, ECP control, screenshots, and debug console

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
17 read · 14 write · 2 delete · 9 not yet classified
Secrets
1 (API keys, tokens or passwords)
Install scripts
None found
Runs as
Node.js package

Tools by what they do 42

Read from the source code; the running server may list different tools.

Read 17 · Look things up without changing anything.

  • analyze_bsprof
  • analyze_perfetto
  • bsprof_info
  • compare_bsprof
  • compare_perfetto
  • roku_console_capture_status
  • roku_console_read
  • roku_discover
  • roku_find_node
  • roku_get_focused_node
  • roku_get_value
  • roku_query_active_app
Show 5 more tools
  • roku_query_app_ui
  • roku_query_device_info
  • roku_query_media_player
  • roku_query_sg_nodes
  • roku_screenshot

Write 14 · Create, change, send or run things.

  • roku_console_disconnect
  • roku_console_send
  • roku_create_node
  • roku_deploy
  • roku_edit_node
  • roku_focus_node
  • roku_keypress
  • roku_keypress_sequence
  • roku_move_node
  • roku_perfetto_enable
  • roku_perfetto_start
  • roku_perfetto_stop
Show 2 more tools
  • roku_set_node_visible
  • roku_type_text

Delete 2 · Delete, drop, revoke or wipe things.

  • roku_delete_dev_channel
  • roku_remove_node

Not yet classified 9 · We could not tell from the name and description.

  • query_perfetto
  • roku_console_capture_start
  • roku_console_capture_stop
  • roku_console_connect
  • roku_console_wait
  • roku_diagnose_stream
  • roku_launch
  • roku_observe_field
  • roku_sleep

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • ROKU_DEVICE_PASSWORD

Other settings (environment variables or headers).

  • ROKU_DEVICE_HOST

Network hosts it talks to 3

  • developer.roku.com · found in code
  • github.com · found in code
  • ui.perfetto.dev · found in code

Files it touches

  • Any path the agent passes to its tools

Tools (42)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • analyze_bsprof

    Analyze a BrightScript Profiler (.bsprof) file from a Roku device. Supports memory leak detection, CPU hot-path analysis, combined full reports, and one-page summaries. Returns structured JSON.

  • analyze_perfetto

    Analyze a Roku Perfetto trace file (.trace). Returns structured JSON with AI-friendly suggestion fields for each analysis area. Requires the trace_processor binary (auto-downloaded on first use). Modes: summary (full report), frame-drops, key-events, observers, rendezvous, set-fields, threads.

  • bsprof_info

    Get header metadata from a .bsprof file without full analysis — target name, device model, firmware, format version, duration, file size, and enabled features. Reads only the header/footer, so it is instant even on multi-hundred-MB profiles.

  • compare_bsprof

    Compare two BrightScript Profiler (.bsprof) files to detect regressions, improvements, new memory leaks, resolved leaks, and CPU time deltas between runs.

  • compare_perfetto

    Compare two Roku Perfetto trace files to detect performance regressions and improvements. Returns metric deltas for frame drops, key events, observers, rendezvous, and setField calls.

  • query_perfetto

    Run a raw PerfettoSQL query against a Roku Perfetto trace file. Use for custom analysis beyond the built-in modes. Common queries: SELECT * FROM slice WHERE name = 'swapBuffers' ORDER BY dur DESC; SELECT * FROM slice WHERE name = 'keyEvent' ORDER BY dur DESC;

  • roku_console_capture_start

    Start recording the BrightScript debug console (port 8085) to a file, keeping the connection open until roku_console_capture_stop. Output from before the capture (the console replays the previous session on connect) is skipped. Console text is never returned; use roku_console_wait to detect lines. Port 8085 accepts a single client: detach the VS Code BrightScript debugger first.

  • roku_console_capture_status

    Report whether a console capture is active, its file, bytes and line count.

  • roku_console_capture_stop

    Stop the active console capture, flush and close the file. Returns file path, bytes and line count.

  • roku_console_connect

    Open a persistent TCP connection to the BrightScript debug console on port 8085. Only one connection is active at a time.

  • roku_console_disconnect

    Close the active BrightScript debug console connection.

  • roku_console_read

    Read buffered output from the BrightScript debug console since the last read. Automatically disconnects after reading.

  • roku_console_send

    Send a command to the BrightScript debug console and return the response. Automatically disconnects after receiving the response. Common commands: bt (backtrace), var (variables), cont (continue), step, over, out, exit, print <expr>.

  • roku_console_wait

    Wait until a console line matching a regex appears in the active capture (see roku_console_capture_start). Returns line number, timestamp and a short redacted preview; the full line is in the capture file. Resolves early with reason "waiting_for_debugger" if the channel is blocked waiting for the VS Code debugger (redeploy it with roku_deploy).

  • roku_create_node

    Create a new SceneGraph node at runtime and append it as a child of an existing node via RTA createChild. Subtype must be a SceneGraph node type registered for the running scene (e.g. Label, Rectangle, Poster, Group).

Show 27 more tools
  • roku_delete_dev_channel

    Delete the currently sideloaded developer channel from the Roku device.

  • roku_deploy

    Sideload (deploy) a Roku application to the device. Packages all files in the project directory and uploads them. A dev channel must not already be running, or it will be replaced.

  • roku_diagnose_stream

    Diagnose why an HLS/DASH stream fails on Roku specifically by correlating the evidence you already have. Provide any combination of: the Video node error the device reported (errorInfo, as JSON or pasted log text), the manifest (a url to fetch, or pasted m3u8/mpd content), and a Charles/HAR HTTP capture file. The tool cross-references them into ranked root-cause findings (e.g. "errorCode -6 DRM + a 403 license POST = license server rejected the Roku request"). No Roku device is required for this. Optionally set captureLive=true (with host+password) to deploy a bundled StreamProbe harness and c…

  • roku_discover

    Scan the local network for Roku devices using SSDP discovery. Returns a list of all found devices with their IP addresses.

  • roku_edit_node

    Edit a SceneGraph node on the running dev channel at runtime by setting one or more fields. Uses the roku-test-automation (RTA) On-Device Component on TCP port 9000 — the same backend the SceneGraph Inspector in the vscode-brightscript-language extension uses. Requires RTA to be present in the running channel (see README "Runtime UI Editing"). nodeId can be either a `uiElementId` like "RTA_1773" (as shown by roku_query_sg_nodes) or a BrightScript scene-level `id`. Common fields: visible (boolean), translation ([x,y]), text (string), color (hex like "0xRRGGBBAA"), opacity (number 0..1).

  • roku_find_node

    Search the app UI tree for a node by its ID or attribute value. Returns the matching node with all its properties (text, visible, focused, subtype, bounds, etc.). Only works when a sideloaded dev channel is running.

  • roku_focus_node

    Set focus on a SceneGraph node by id via RTA focusNode.

  • roku_get_focused_node

    Get the currently focused node in the app UI tree. Returns the node with all its properties (id, subtype, text, bounds, etc.). Only works when a sideloaded dev channel is running.

  • roku_get_value

    Read a field value from a SceneGraph node at runtime via RTA getValue. Returns the value as JSON. Pass either nodeId+field, or a full keyPath like "MainScene.rowList.0.title".

  • roku_keypress

    Send a single key press to the Roku device via ECP. Common keys: Home, Rev, Fwd, Play, Select, Left, Right, Down, Up, Back, InstantReplay, Info, Backspace, Search, Enter, Lit_<character>

  • roku_keypress_sequence

    Send a sequence of key presses to the Roku device with an optional delay between each press.

  • roku_launch

    Launch or deep-link into a channel on the Roku device. Use appId "dev" for the sideloaded developer channel.

  • roku_move_node

    Move a SceneGraph node to a new position by setting its `translation` field to [x, y].

  • roku_observe_field

    Wait for a SceneGraph field to change (or match a specific value) via RTA onFieldChangeOnce. Returns when the observer fires or the timeout elapses. Great for "wait until video starts playing" style assertions.

  • roku_perfetto_enable

    Enable Perfetto tracing for a Roku channel via ECP. Tracing starts automatically on each app launch. Requires Roku OS 15.1+. There is no disable command — enabled channels are cleared on reboot.

  • roku_perfetto_start

    Start recording a Perfetto trace from the Roku device. Opens a binary WebSocket to stream trace data to a local file. Only one recording session at a time. Call roku_perfetto_enable first.

  • roku_perfetto_stop

    Stop the active Perfetto trace recording. Returns the file path, size, and duration. The resulting .trace file can be opened at https://ui.perfetto.dev/ or analyzed with analyze_perfetto.

  • roku_query_active_app

    Query the currently active (foreground) app on the Roku device.

  • roku_query_app_ui

    Get the current app UI tree as XML. Only works when a sideloaded dev channel is running.

  • roku_query_device_info

    Query the Roku device for its info: model, firmware version, serial number, network info, etc.

  • roku_query_media_player

    Query the media player state on the Roku device. Returns playback state (play, pause, buffer, stop, none), position, duration, and error info. Use this to verify video playback in tests.

  • roku_query_sg_nodes

    Query SceneGraph nodes on the Roku device. Use type "all" for all nodes, "roots" for root nodes, or "node" with a nodeId to inspect a specific node.

  • roku_remove_node

    Remove a SceneGraph node from its parent at runtime via RTA removeNode.

  • roku_screenshot

    Capture a screenshot of the current screen on the Roku device. A sideloaded dev channel must be running. Returns the image as base64-encoded content and the file path where it was saved.

  • roku_set_node_visible

    Show or hide a SceneGraph node by id via RTA setValue on the `visible` field.

  • roku_sleep

    Wait for a specified duration. Use this between navigation steps to allow the UI to render, animations to complete, or content to load.

  • roku_type_text

    Type a text string into the currently focused text field on the Roku device. Each character is sent as an individual Lit_ keypress. Use this for search fields, email inputs, password fields, etc.

Signals

Stars
4
Forks
3
Open issues
0
Last commit
Oct 15, 2026 (13 days ago)
Last release
Oct 12, 2026 (17 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.jack1590/RokuMCP
Version
1.3.2
Auth
API key
Packages
npm roku-mcp
License
License unknown
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from jack1590

Cite this page

Roku MCP. Agent Mart. https://agentmart.dev/connectors/jack1590-rokumcp (last updated 2026-10-24)