Skip to main content
Glama
bblietz
by bblietz

brs-docs-mcp

MCP server for Roku BrightScript documentation plus device-control tools.

See CLAUDE.md for dev conventions and docs/superpowers/specs/2026-04-16-brs-docs-mcp-design.md for the design.

Tools

Documentation (SQLite FTS5)

  • brs_search(query, limit, kind?) full-text search across BrightScript docs.

  • brs_get(id) fetch a doc by id (e.g. component:roDateTime).

  • brs_list(kind, prefix?) list docs of a given kind, optional title prefix filter.

Read-only device introspection (ECP, port 8060)

  • roku_device_info(host?) parse /query/device-info.

  • roku_list_apps(host?) parse /query/apps.

  • roku_tail_log(host?, seconds=10) capture BrightScript debug console output for seconds.

  • roku_query_active_app(host?) parse /query/active-app.

  • roku_query_media_player(host?) parse /query/media-player to a flat snake_case dict.

  • roku_query_r2d2_bitrate(host?) parse /query/r2d2_bitrate into a list of stream entries.

  • roku_query_icon(app_id, host?) fetch the channel icon at /query/icon/<app_id>; returns mime, base64 body, byte count.

ECP control (port 8060, no auth)

  • roku_keypress(key, repeat=1, mode="press", host?) send /keypress, /keydown, or /keyup. Allowlisted standard keys (Home, Up, Down, ...) plus Lit_<char> for character input.

  • roku_keysequence(keys, delay_ms=150, host?) send a sequence of keypresses with delay_ms between each.

  • roku_launch(app_id, params?, host?) POST /launch/<app_id> with optional URL-encoded deep-link params. app_id="dev" is allowed.

  • roku_input(params, host?) POST /input?<urlencoded> to deep-link into the running channel.

  • roku_to_home(host?) macro that sends Home, Home to drop the device into a known idle state. NOT a reboot; the return value documents this.

Authenticated dev-portal (port 80, Digest)

  • roku_install(zip_base64, host?, password?) sideload a channel zip.

  • roku_remove(host?, password?) remove the currently installed dev channel.

  • roku_query_registry(dev_id, host?, password?) parse /query/registry/<dev_id>.

  • roku_profiler_snapshot(host?, password?) POST /plugin_inspect with mysubmit=Inspect; extract whatever blocks are present plus a 10 KB raw HTML excerpt.

  • roku_crashlog_pull(host?, password?) GET /plugin_factory_log. Returns ok=False on 404. Body is streamed and capped at 1 MB.

host falls back to BRS_DEFAULT_ROKU_HOST. password falls back to BRS_ROKU_DEV_PASSWORD.

F
license - not found
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/bblietz/brs-docs-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server