Skip to main content
Glama
dominick253

roku-debug-mcp

by dominick253

roku-debug-mcp

CI Python License MCP

AIエージェントにVS Code Rokuデバッグ体験のすべてを提供するMCPサーバー。

RokuのBrightScriptデバッグ機能をMCPツールとして公開し、AIエージェントがログの読み取り、シーングラフの検査、コードのステップ実行、変数の読み取り、ブレークポイントの設定を行えるようにします。これは開発者がVS Code Roku拡張機能で確認できるのと同じ情報です。

アーキテクチャ

graph TB
    subgraph "AI Agent (Hermes, VS Code, etc.)"
        MCP[<b>MCP Client</b><br/>stdio JSON-RPC]
    end

    subgraph "roku-debug-mcp (MCP Server)"
        Server[<b>MCP Server</b><br/>21 tools]
        Config[<b>Config</b><br/>ROKU_* env vars]
        Server --> Config
    end

    subgraph "Roku Device"
        direction LR

        subgraph "Port 80 — HTTP"
            Installer[<b>Sideloader</b><br/>Digest auth<br/>Expect: 100-continue]
        end

        subgraph "Port 8060 — ECP"
            ECP[<b>ECP Client</b><br/>Device info<br/>Scene graph<br/>Postback/keys]
        end

        subgraph "Port 8081 — Binary Debug"
            Debug[<b>Debug Client</b><br/>Binary protocol<br/>BSDBG magic]
        end

        subgraph "Port 8085 — Telnet"
            Console[<b>Text Console</b><br/>Fallback logs]
        end
    end

    MCP --> Server
    Server --> Installer
    Server --> ECP
    Server --> Debug
    Server --> Console

プロトコルレイヤー

ポート

プロトコル

認証

目的

80

HTTP

Digest + Expect: 100-continue

チャンネルのサイドロード

8060

ECP HTTP

なし

デバイス情報、シーングラフ、スクリーンショット

8081

Binary

なし

プライマリデバッグプロトコル(VS Codeが使用)

8085

Telnet

なし

テキストコンソール(フォールバック)

バイナリデバッグプロトコル(ポート8081)

sequenceDiagram
    participant C as Client (roku-debug-mcp)
    participant R as Roku Device (port 8081)

    C->>R: Handshake<br/>[magic(8)][protocol_version(4)]
    R-->>C: [magic(8)][protocol_version(4)][packet_len(4)][revision]

    Note over C,R: Request/Response Format:<br/>[packet_length(4)][request_id(4)][cmd_code(4)][payload]

    C->>R: GET_THREADS (cmd=3)
    R-->>C: THREADS response

    C->>R: STACKTRACE (cmd=4, thread_index)
    R-->>C: Stack frames

    C->>R: ADD_BREAKPOINTS (cmd=7)
    R-->>C: Confirmation

    Note over C,R: Update notifications (request_id=0):<br/>CONNECT_IO_PORT, ALL_THREADS_STOPPED, etc.

ハンドシェイクマジック: 0x0067756564756273 (b"bsdebug\0" リトルエンディアン)

サイドロードフロー(ポート80)

sequenceDiagram
    participant C as Client
    participant R as Roku (port 80)

    C->>R: POST /plugin_package (Expect: 100-continue)
    R-->>C: 401 Unauthorized (WWW-Authenticate: Digest)
    C->>C: Compute digest hash
    C->>R: POST /plugin_package (Authorization: Digest)
    R-->>C: 100 Continue
    C->>R: [ZIP payload]
    R-->>C: 200 OK [chunked response with Dev Kit HTML]

Related MCP server: Node.js Debugger MCP

AIでできること

  • デバイス情報の読み取り — モデル、バージョン、実行中のアプリ

  • シーングラフの検査 — 実行中アプリの完全なノード階層

  • コンソールログの読み取り — 実行中BrightScriptチャンネルからの標準出力

  • スレッドの一覧表示 — すべての実行スレッドとその停止状態を表示

  • スタックトレースの読み取り — 停止中のスレッドのフレームごとのコールスタック

  • 変数の検査 — ローカル変数、グローバル変数、シーングラフコンポーネントの状態

  • コードの実行 — 停止中のフレームで任意のBrightScriptを実行

  • ブレークポイントの管理 — ファイル/行でブレークポイントを追加、一覧表示、削除

  • ステップ実行 — ステップオーバー、ステップイン、ステップアウト、続行

  • チャンネルのサイドロード — リモートデバッグ付きでテストチャンネルをアップロードしてインストール

クイックスタート

1. インストール

cd /home/dom/src/roku-debug-mcp
pip install -e .

2. 環境設定

export ROKU_DEVICE_IP=192.168.1.10      # Roku device IP
export ROKU_DEV_USER=rokudev            # Dev channel username
export ROKU_DEV_PASSWORD=your-password  # Dev channel password

3. Hermesに登録

~/.hermes/mcp-servers.json に追加:

{
  "roku-debug-mcp": {
    "command": "roku-debug-mcp",
    "args": []
  }
}

4. Hermesセッションで使用

AIエージェントが21の新しいツールを利用できるようになります:

roku_device_info()
roku_scene_graph()
roku_debug_threads()
roku_debug_stacktrace(thread_index=0)
roku_debug_variables(thread_index=0, frame_index=0)
roku_debug_execute(thread_index=0, frame_index=0, code="x = 42")
roku_debug_breakpoints_add(breakpoints=[{...}])
roku_debug_console_output()

利用可能なツール

デバイス/UIツール(ECP — ポート8060)

ツール

説明

roku_device_info

デバイスのモデル、バージョンなど

roku_current_app

現在実行中のアプリ

roku_scene_graph

完全なシーングラフノード階層

roku_postback

チャンネルにポストバックを送信

roku_launch_uri

URIを起動

roku_key

リモコンキーを送信

roku_screenshot

画面イメージをキャプチャ

デバッグツール(バイナリプロトコル — ポート8081)

ツール

説明

roku_debug_threads

すべてのスレッドを一覧表示

roku_debug_stacktrace

スタックフレームを取得

roku_debug_variables

フレーム内の変数を読み取り

roku_debug_execute

BrightScriptコードを実行

roku_debug_breakpoints_add

ブレークポイントを追加

roku_debug_breakpoints_list

アクティブなブレークポイントを一覧表示

roku_debug_breakpoints_remove

特定のブレークポイントを削除

roku_debug_breakpoints_remove_all

すべてのブレークポイントをクリア

roku_debug_continue

実行を再開

roku_debug_step

ステップ実行

roku_debug_stop

実行を一時停止

roku_debug_console_output

標準出力の行を取得

roku_debug_protocol_info

デバッグプロトコルのバージョン

インストーラーツール(HTTP — ポート80)

ツール

説明

roku_install

チャンネルZIPをサイドロード

roku_launch_remote_debug

リモートデバッグを有効にして起動

テスト

ユニットテスト(モックRokuサーバー)

# Run all tests (uses mock server on ephemeral ports)
pytest tests/ -v

# Mock server runs automatically via conftest fixtures
# No manual setup required

統合テスト(実機のRokuデバイス)

# Requires env vars set
ROKU_DEV_IP=10.71.71.151 \
ROKU_DEV_PASSWORD=your-password \
pytest tests/test_integration_real_device.py -v

CI/CD

  • ユニットテスト はGitHub ActionsのUbuntuランナーで実行

  • 統合テスト はセルフホストランナー(10.71.71.90)で実行され、実機のRokuにLAN経由でアクセス

プロジェクト構造

src/rokumcp/
  config.py          # Environment-based configuration
  protocol.py        # Binary protocol constants and Stream I/O
  debug_client.py    # Synchronous binary debug client (port 8081)
  text_console.py    # Telnet text console client (port 8085)
  ecp.py             # ECP HTTP client (port 8060)
  installer.py       # HTTP Digest-auth sideloader (port 80)
  server.py          # MCP server entrypoint — 21 tools

tests/
  conftest.py                  # Pytest fixtures (mock server setup)
  mock_roku_server.py          # Mock Roku device simulator
  test_protocol.py             # Stream round-trips, ProtocolVersion
  test_config.py               # Config defaults, from_env
  test_ecp.py                  # ECP HTTP client
  test_text_console.py         # Telnet console client
  test_installer.py            # Digest auth + multipart
  test_debug_client.py         # Full E2E vs mock binary server
  test_integration_real_device.py  # Real device (gated on env vars)
  fixtures/                    # Test channel ZIP fixtures

プロトコルリファレンス

Roku公式リファレンスから派生した実装:

完全なプロトコル仕様とワイヤーフォーマットについては AGENTS.md を参照してください。

開発

プロトコルのデバッグ

# Run mock server manually
python tests/mock_roku_server.py

# Test specific protocol interaction
ROKU_DEVICE_IP=127.0.0.1 ROKU_DEBUG_PORT=8081 python -m rokumcp.server

ビルド

pip install -e .
roku-debug-mcp  # runs MCP server over stdio

ライセンス

Apache-2.0

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

  • A
    license
    C
    quality
    A
    maintenance
    Enables AI agents to perform step-through debugging of Python, JavaScript/Node.js, and Rust programs using the Debug Adapter Protocol, with support for breakpoints, variable inspection, and stack traces.
    21
    159
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    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.
    1

View all related MCP servers

Related MCP Connectors

  • Live browser debugging for AI assistants — DOM, console, network via MCP.

  • Agent Replay Debugger MCP — record every agent step + deterministic replay. Step-debugger for

  • Shared debugging memory for AI coding agents

View all MCP Connectors

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/dominick253/roku-debug-mcp'

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