Roku Dev Studio MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_action_types | Return every supported Action Script step |
| get_action_schemaA | Return the schema for one Action step type. Required argument |
| get_capability_bundleA | Single payload of every static capability (actions, vocabularies, RALE built-ins, presets, authoring rules, op directory, |
| validate_script | Validate an Action Script before |
| probe_bridgeA | Returns |
| get_selected_deviceA | Device the user is currently focused on in Dev Studio. |
| list_devices | Every device Dev Studio knows about (connected, discovered, remembered, remote). Entries: |
| connect_device | Open or focus a Dev Studio tab. Required |
| list_app_connector_functions | Live |
| rale_get_node_by_idA | Read-only |
| send_script_to_builderA | Drop a validated Action Script into Dev Studio Builder for human review (does not auto-run). Runs the same validation as |
| network_inspector_statusA | Report whether Dev Studio's Network Inspector is enabled and actively capturing, plus connected Roku clients, packet/event counts, MITM (HTTPS decryption) state, and |
| network_inspector_list_events | List captured network events as lightweight summaries (no full headers/body — drill down with network_inspector_get_event_detail using an event |
| network_inspector_get_event_detailA | Fetch the full headers and body for one captured event by |
| network_inspector_analyzeA | Aggregate the captured buffer into hotspots and rollups in one call — counts by event type, by HTTP status class (2xx/3xx/4xx/5xx), top hosts (with error counts), top content types, total HTTP/MITM transactions, error count, and the largest responses. Use this to orient on a session before drilling into individual events. Accepts the same optional filters as network_inspector_list_events ( |
| network_inspector_get_ca_info | Return the Dev Studio MITM CA fingerprint, proxy host:port, and the BrightScript snippet needed to trust the proxy so HTTPS request/response bodies become visible to the Network Inspector. Use when network_inspector_list_events shows TLS handshakes but no decrypted HTTP bodies, to guide the user through enabling HTTPS decryption for their sideloaded dev channel. |
| keypressA | Send an ECP remote key (e.g. "Home", "Up", "Select", "Play") to a Roku device. Mirrors what the user does with the on-screen remote. |
| launch_appA | Launch a channel / app on the device by app id. Use /query/apps or ecp_query to discover ids. "dev" is the sideloaded Dev App. |
| input_textB | Send a literal text string to whatever input field is currently focused on the device (ECP /input endpoint). |
| deep_linkC | Launch an app with a deep link (contentId + mediaType). Equivalent to /launch/?contentId=...&mediaType=... in ECP. |
| ecp_query | Run a read-only ECP GET against a device. Use endpoints from list_query_presets or any /query/* path. Does not change device state. |
| ecp_postA | POST to an arbitrary ECP endpoint (e.g. /sgrendezvous/track). Side-effecting — agents should use list_post_presets for safe defaults. |
| test_connectionA | Probe a device IP for ECP availability. Returns reachability + basic device info. Does not require the device to have a tab open. |
| get_app_iconA | Fetch the 336x210 app icon for a channel on the device (data URL / base64). |
| sideloadA | Upload and install a .zip channel package on the device. Destructive: replaces any currently sideloaded Dev App. Provide the zip in ONE of two ways: (1) |
| delete_sideloadA | Remove the currently sideloaded Dev App from the device. Password optional when Dev Studio has remembered it for this device. |
| screenshot | Capture a screenshot of the current device screen and return it inline as an MCP image content block (JPEG, base64). Hosts (Cursor, Claude Desktop, etc.) render this image to the user, so for any human-facing capture let |
| scan_devices | Run SSDP discovery (multicast) and optionally a subnet HTTP sweep. Does not connect devices — follow up with connect_device to open a tab. |
| rale_commandA | Run any built-in RALE command against the active App Connector session — including destructive ones (addRegistryField, removeRegistrySection, clearRegistry, …). Use list_rale_builtins for the catalog. Every call surfaces as a toast in Dev Studio. |
| app_connector_connect | Open a RALE / App Connector session against the device's running Dev App. |
| app_connector_disconnect | Close the RALE / App Connector session on the targeted device. |
| app_function | Invoke a single function on the sideloaded channel through the App Connector. Use this for any one-off function call exposed by the channel; only wrap it in an |
| get_telnet_log | Read lines from the BrightScript debug console (port 8085) buffer that Dev Studio holds in memory. Returns |
| telnet_connect | Open the BrightScript debug console (TCP 8085) for the targeted device, exactly as if the user had clicked the Connect button on the Telnet Console tab. Idempotent: returns |
| telnet_disconnectA | Close the BrightScript debug console (TCP 8085) for the targeted device, mirroring the Disconnect button. Idempotent: returns |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| roku-one-shot-action | Primes the agent to perform a single deterministic action (keypress, launch, ecp_query/post, rale_command, screenshot, …) via a direct op — **not** by authoring an Action Script. |
| roku-action-script-quickstart | Primes the agent to author an Action Script for multi-step / conditional / saved-or-reviewed flows (bridge probe → capability load → validate → send to Builder). For single actions, prefer `roku-one-shot-action`. |
| roku-debug-device | Primes the agent to inspect a Roku using read-only tools (probe_bridge → list_devices → get_selected_device → ecp_query / rale_get_node_by_id). |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| quick-start | One-page primer: bridge probe, capability loading, device selection, and the validate → send workflow. Read first. |
| action-script-contract | Canonical shape for validate_script / send_script_to_builder inputs (root, appFunction params, wait / if conditions). |
| capability-bundle | Every static catalog the agent needs in one JSON: actions, presets, vocabularies, RALE built-ins, authoring rules, op directory, and the agent contract. |
| authoring-rules | Constraints the agent must obey when generating Action Scripts (version, password handling, wait vs delay, …). |
Latest Blog Posts
- 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/paramount-engineering/roku-dev-studio'
If you have feedback or need assistance with the MCP directory API, please join our Discord server