Mcp Divoom TimeFrame Lan について
mcp-divoom-lanは、ローカルネットワーク経由でDivoom TimesFrame、AstroToo、PIXOO64、TimeGateを操作するオープンソースのMCPサーバーです。文字盤の編集や画面制御に、製品別ガイドと安全確認を組み合わせています。
主な機能
- 01デバイスの検出とモデル識別
- 02管理対象の文字盤の読み取りと更新
- 03文字盤の切り替えと明るさ調整
- 04PIXOO64とTimeGateの画面操作
- 05製品別カタログとテンプレート
- 06書き込み前の読み取りによる安全対策
活用シーン
- 01TimesFrameまたはAstroTooの文字盤編集
- 02表示中の文字盤や明るさの変更
- 03PIXOO64へのテキストやアニメーション送信
- 04LAN経由でのTimeGate画面操作
MCP 対応
LAN上のデバイス検出、文字盤操作、画面制御に使う42個のツールと製品別リソースをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
18掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| target | object | いいえ | 呼び出しごとに指定できる任意のターゲット上書き値です。省略した場合は環境変数が使用されます。 |
| target.host | string | いいえ | デバイスの LAN IP。例:192.168.1.120 |
| target.port | integer | いいえ | デバイスの HTTP ポート。通常は 9000 です。 |
| target.timeoutMs | integer | いいえ | HTTP のタイムアウト時間(ミリ秒)。 |
| clockId | integer | いいえ | |
| useCurrentDisplayClock | boolean | いいえ | |
| parentClockId | integer | いいえ | |
| parentItemId | integer | いいえ |
詳細
mcp-divoom-lan
mcp-divoom-lan は、TimesFrame/AstroToo のウォッチフェイスと PIXOO64/TimeGate の LAN ディスプレイ制御に対応するオープンソースの MCP サーバーです。TimesFrame/AstroToo は Device/GetHardwareVersion を照会します。PIXOO64/TimeGate は、検出された Hardware または明示的なハードウェアプロファイルを使用します。不明なハードウェアは拒否されます。利用可能な検出データを確認したうえで、TimesFrame で応答がない場合のフォールバックを維持しています。
PIXOO64 Hardware 90/92 は 80/post、96 は 9000/divoom_api を使用します。10 個の専用ツールで、ディスプレイ要素、テキスト、RGB アニメーション、制御コマンドを送信します。Hardware 96 のコマンドリストは、参照ファームウェアに合わせるため、MCP 内で順番に実行されます。PIXOO64 のガイドと例を参照してください。デバイスのファームウェアは変更されません。
ウォッチフェイスの編集、切り替え、明るさの調整、新しいローカルウォッチフェイスの作成には、v2 HTML ビジュアルエディターを併用できます。
TimeGate Hardware 400 は 80/post、402 は 9000/divoom_api を使用します。10 個の専用ツールで、独立した 5 つの 128×128 画面を制御します。デバイス設定から取得した LocalToken が必要です。Hardware 402 のバッチは、MCP 内で順番に実行されます。バージョンごとのフィールド、配置、背景の違いについては、TimeGate ガイドを参照してください。デバイスのファームウェアは変更されません。
v2 ビジュアルエディター(公開版):
- GitHub:
https://github.com/DivoomDevelop/divoom-watchface-visual-editor_v2 - ライブサイト:
https://divoomdevelop.github.io/divoom-watchface-visual-editor_v2/
ローカルのクローン先(例:D:\divoom-watchface-visual-editor)はマシンごとに異なります。ドキュメントと MCP メタデータでは、上記の v2 GitHub / GitHub Pages の URL を使用してください。
目標
Divoom_Watchface_Remote_Customization_Guide_EN.mdの主要な機能を MCP ツールとして公開する- MCP 対応クライアント(Cursor、Claude Desktop、ローカル LLM など)が自然言語でウォッチフェイスの操作を実行できるようにする
- 安全性の境界を維持する(書き込み前の読み取り、リスクのある操作に対する明示的な警告、マルチパートのルール)
デフォルトの安全ポリシー(重要)
- 製品プロファイルを選択します:
Hardware510/511/512 は TimesFrame、530 は AstroToo、90/92/96 は PIXOO64、400/402 は TimeGate を選択します。明示的なtarget.hardwareは呼び出し元によるプロファイルの上書きです。これらの製品にはpixoo64_*またはtimegate_*を使用してください。以下の管理対象ウォッチフェイスのルールは TimesFrame/AstroToo に適用されます。 - 内部管理スロット: ユーザーと MCP クライアントは、作成およびパッチ適用の呼び出しで
ClockIdを省略します。サーバーが管理スロットを挿入し、最初に読み取ってから、存在しない場合は作成し、存在する場合は更新します。 - 書き込み前に読み取ります: MCP サーバーは管理スロットを事前確認してから書き込みます。その後、クライアントは読み戻して確認してください。
GetLocalClockInfoが空のItemListを返す場合: 書き込みを中止し、まず編集可能なウォッチフェイスに切り替えてください。- 編集には
watchface_patch_localを優先してください。ユーザーがウォッチフェイスの作成を求めた場合、または管理対象の設定と背景全体を意図的に置き換える場合は、watchface_create_local_clockを使用してください。
実装済みツール(42)
検出ツール(1):
watchface_list_devices→ 選択可能な TimesFrame/AstroToo/PIXOO64/TimeGate のターゲットと、製品固有のデフォルトポートを返します
デバイスツール(15):
watchface_get_device_info→ ハードウェアの識別情報と LAN 機能のレポートwatchface_get_local→Device/GetLocalClockInfowatchface_patch_local→ 呼び出し元からClockIdを指定せずに、管理対象スロットを追加または更新します。既存の設定にはDevice/PatchLocalClockInfoを使用します。背景と完全なアイテムテーブルが指定されている場合、設定がなければ新規作成します。watchface_get_fonts_local→Device/GetLocalFontListwatchface_get_store_market_list→Device/GetStoreClockMarketListwatchface_set_clock_select→Channel/SetClockSelectId(TimesFrame では、手動選択によって現在の期間の従来のスケジュールが抑制されるよう、1 回のシリアル化された MCP 操作内でペアのリクエストをキューに登録します。AstroToo では 1 回だけ送信します)watchface_get_brightness→Sys/GetBrightnesswatchface_set_brightness→Channel/SetBrightnesswatchface_onoff_screen→Channel/OnOffScreen(1=オン、0=オフ)watchface_replace_dial_bg_file→POST /replace_clock_dial_bgwatchface_upload_file→ AstroToo 専用のPOST /upload_local_asset。成功した作成/更新で使用する、一時的なlocal://ステージング参照を返します。AstroToo では製品写真/ピクセル用のPOST /uploadは別扱いです。TimesFrame ではローカルのみの MCP モードで汎用/uploadはブロックされます。watchface_create_local_clock→ 呼び出し元からClockIdを指定せずに、管理対象スロットをマルチパート形式で追加または更新します。設定がない場合は/create_local_clock、すでにある場合は/patch_local_clockを使用します。watchface_reset_local_then_cloud→Device/ResetLocalClockFromServerwatchface_get_screen_snapshot→Device/GetScreenSnapshot(返された AstroToo のスナップショットパスをダウンロードします。TimesFrame では WebP フォールバックを維持します)watchface_raw_command→ 汎用のPOST /divoom_api
オフライン/モデル認識型の作成ツール(6):
watchface_protocol_quick_reference→ モデル向けの主要なプロトコル制約watchface_clock_catalog→ 製品固有の ClockId、中国語/英語の名称、フォント、disp、アイテム ID の仕様。ネイティブ設定は任意です。watchface_disp_catalog→ モデル固有のdispカタログとフィルターwatchface_font_catalog→ モデル固有のフォントカタログ。稼働中の AstroToo ターゲットがある場合、ローカルで利用可能なフォントを AstroToo の名前に統合します。watchface_template_search→ 厳選された TimesFrame または AstroToo の文字盤テンプレートwatchface_layout_suggest→ モデル固有のレイアウトのヒント。AstroToo に TimesFrame の座標統計が渡されることはありません。
PIXOO64 ツール(10):pixoo64_get_device_info、pixoo64_send_animation、pixoo64_send_items、pixoo64_send_text、pixoo64_clear_text、pixoo64_set_brightness、pixoo64_onoff_screen、pixoo64_set_channel、pixoo64_play_gif、pixoo64_command_list。divoom://pixoo64/guide と divoom://pixoo64/example を参照してください。LAN のターゲットを直接指定する場合は、{ "host":"192.168.1.100", "model":"pixoo64", "hardware":90 } のように指定できます。バージョンのデフォルト値を使用するには、port と DIVOOM_DEVICE_PORT を省略してください。
TimeGate ツール(10):timegate_get_device_info、timegate_send_items、timegate_send_text、timegate_clear_text、timegate_set_brightness、timegate_get_brightness、timegate_onoff_screen、timegate_select_clock、timegate_play_gif、timegate_command_list。divoom://timegate/guide と divoom://timegate/example を参照してください。認証が必要な呼び出しでは、実際のデバイス設定から取得した localToken を指定します。
リソース(モデルのコンテキスト)
製品データはディレクトリごとに格納されています:resources/timesframe、resources/astrotoo、resources/pixoo64、resources/timegate、resources/common。resources/products.json には、ハードウェアの対応関係、画面ごとのキャンバスサイズ、ディレクトリ、ルートが記録されています。実行時のローダーが別の製品のデータにフォールバックすることはありません。
元のリソース URI は TimesFrame のセマンティクスを維持しています。AstroToo には、480×480 の専用リソースがあります:
divoom://products/catalogdivoom://guide/quick-referencedivoom://skill/watchface-customizationdivoom://font/catalogdivoom://font/guidedivoom://disp/catalogdivoom://watchface/schemadivoom://watchface/example-minimaldivoom://guide/ai-watchfacedivoom://templates/curateddivoom://astrotoo/guidedivoom://astrotoo/disp/summarydivoom://astrotoo/disp/catalogdivoom://astrotoo/disp/guide/endivoom://astrotoo/disp/guide/zh-cndivoom://astrotoo/font/catalogdivoom://astrotoo/clocks/catalogdivoom://astrotoo/clocks/configsdivoom://astrotoo/templates/curateddivoom://astrotoo/watchface/example-minimaldivoom://astrotoo/watchface/schema
MCP バンドル(.mcpb)
MCPB 互換ホスト(Claude デスクトップコネクタ、Smithery の stdio リリースなど)向けに、ローカルバンドルをビルドします:
- パッカーをインストールします:
npm install -g @anthropic-ai/mcpb - このパッケージのルートから実行します:
npm run mcpb:pack - 出力:
mcp-divoom-lan.mcpb(gitignore 対象)。ステージングディレクトリmcpb/staging/も gitignore 対象です。
バンドルには dist/、resources/、本番用の node_modules、およびデバイス IP、ポート、製品検出、タイムアウトのユーザーフィールドを含む manifest.json が格納されます。
クイックスタート
公開済み npm パッケージ:
{
"mcpServers": {
"divoom-lan": {
"command": "npx",
"args": ["-y", "mcp-divoom-lan@latest"],
"env": {
"DIVOOM_DEVICE_HOST": "192.168.1.120",
"DIVOOM_DEVICE_PORT": "9000",
"DIVOOM_DEVICE_MODEL": "auto",
"DIVOOM_TIMEOUT_MS": "45000"
}
}
}
}
DIVOOM_DEVICE_HOST は省略可能です。設定せず、1 つの MCP サーバーで複数のデバイスを制御する場合は、各ツール呼び出しに target.host を含めてください。
ソースからビルド:
cd tools/mcp-divoom-lan # or your clone root for this package
npm install
npm run build
npm start
開発(変更を監視して再ビルド):
npm run dev
シミュレーターと Divoom コマンドサーバーから AstroToo リソースを再生成:
$env:DIVOOM_ASTROTOO_SIMULATOR_ROOT='D:\work\divoom_product\timebox\trunck\device\tool_src\lv_sim_visual_studio\LvglAstroTooSimulator'
$env:DIVOOM_ASTROTOO_DEVICE_ID='300400436'
npm run build:astrotoo
ジェネレーターは、JSON ボディを使って https://appchina.divoom-gz.com/ + コマンド文字列を呼び出します。デフォルト ID は Device/GetClockDefaultList(IsDefault=1)から、フォント名は Device/GetFontForAI から、不足している設定は Device/GetClockInfoV3 から取得します。
リリース前チェック(型チェック、ビルド、パックのドライラン):
npm run release:check
ドキュメント
docs/README.md— ドキュメントのインデックスdocs/quick-start.md— 最小限のセットアップdocs/mcp-tools.md— 全 42 ツールの API カタログとモデル固有のファイルポリシーdocs/astrotoo-and-multiple-devices.md— ハードウェア検出、複数のターゲット、AstroToo のローカルストレージdocs/astrotoo-watchface-workflow.md— AstroToo のウォッチフェイスを作成、更新、切り替え、スクリーンショット撮影するリリース対応ワークフローdocs/adding-products.md— 製品レジストリ、分離されたリソースディレクトリ、オンボーディング時のチェックdocs/tool-examples.md— ツールの使用例(§5b のアナログポインターレイアウトを含む)docs/disp-usage.md—dispID の選択方法(ポインターレイアウト131/132/233、ネットギャラリーの一意性13/125–130/173–175)docs/html-visual-editor.md— MCP でビジュアルエディターを使用する方法docs/safety-and-troubleshooting.md— 安全性と FAQdocs/reference/— 簡潔にまとめたプロトコル規則(EN/ZH)docs/examples/— リクエスト/レスポンスのサンプルとカタログ
環境変数
DIVOOM_DEVICE_HOST— デバイスのLAN IP(例:192.168.1.120)DIVOOM_DEVICE_PORT— オプションの上書き値です。PIXOO64 90/92 または TimeGate 400 の場合は80、それ以外は9000を使用します。省略可能です。DIVOOM_DEVICE_MODEL—auto(デフォルト)、timesframe、astrotoo、pixoo64、またはtimegateDIVOOM_DEVICE_HARDWARE— オプションのデフォルトデバイスプロファイル:PIXOO6490/92/96または TimeGate400/402。省略するとデバイスを検出します。DIVOOM_TIMEGATE_LOCAL_TOKEN— オプションのデフォルトのTimeGate設定にあるLocalTokenです。ホストを基準に照合されます。それ以外の場合は、呼び出しごとにlocalTokenを指定してください。DIVOOM_TIMEOUT_MS— リクエストのタイムアウト(ミリ秒)。デフォルトは45000です。
DIVOOM_DEVICE_HOST が設定されていない場合は、各ツール呼び出しで target.host を指定する必要があります。複数のデバイスを操作するには、呼び出しごとに異なる target を指定してください。サーバーはホストごとに一連の操作をまとめて直列化しつつ、各デバイスの独立した処理は並行して実行します。
クライアント設定例(stdio)
Cursor / Claude Desktop
{
"mcpServers": {
"divoom-lan": {
"command": "node",
"args": [
"/ABSOLUTE/PATH/to/tools/mcp-divoom-lan/dist/index.js"
],
"env": {
"DIVOOM_DEVICE_HOST": "192.168.1.120",
"DIVOOM_DEVICE_PORT": "9000",
"DIVOOM_DEVICE_MODEL": "auto",
"DIVOOM_TIMEOUT_MS": "45000"
}
}
}
}
このディレクトリにある client-config.example.json をコピーして、設定の出発点として使うこともできます。
公開チェックリスト(メンテナー向け)
- このパッケージをリポジトリのルートに配置した専用リポジトリ(例:
mcp-divoom-lan)を使用します。 - 該当するメタデータを確認します:
LICENSE、SECURITY.md、CONTRIBUTING.md、CHANGELOG.md、RELEASE.md。 npm run release:checkを実行します。- 必要に応じてスクリーンショットやリクエスト例を添えて、GitHub リリースにタグを付けます(例:
v0.3.0)。 - 適切な掲載先(MCP Registry、Smithery、Glama、MCP.so、およびコミュニティのインデックス)に登録を申請します。Glama については、
Dockerfileとglama.jsonを含むGLAMA_SUBMISSION_READY.mdに従ってください。MCP.so については、MCP_SO_SUBMISSION_READY.mdに従ってください。Volcengine MCP カタログについては、VOLCENGINE_SUBMISSION_READY.mdを参照してください(PR:https://github.com/volcengine/mcp-server/pull/398)。npx でデプロイする Alibaba Cloud Bailian カスタム MCP については、BAILIAN_MCP_SUBMISSION_READY.mdを参照してください。Coze HTTP プラグインの公開については、COZE_SUBMISSION_READY.mdを参照してください。 - 最小限のデモフロー:
watchface_get_local→watchface_patch_local(フォントサイズ/色)→watchface_replace_dial_bg_file(背景)。
リリース時によく使うファイル
このリポジトリに含まれるファイル(存在する場合):LICENSE、CHANGELOG.md、CONTRIBUTING.md、SECURITY.md、RELEASE.md、オプションのチェックリストとディレクトリテンプレート、および .github/workflows/ci.yml。
HTML ビジュアルエディターをこの npm パッケージに含めるべきですか?
推奨: コア MCP パッケージには含めず、MCP は軽量に保ちます。エディターは独立したオプションのプロジェクトとして提供してください。
- コア:
https://github.com/DivoomDevelop/mcp-divoom-lan - ビジュアルエディター v2:
https://github.com/DivoomDevelop/divoom-watchface-visual-editor_v2 - ホスト版 v2:
https://divoomdevelop.github.io/divoom-watchface-visual-editor_v2/
メリット:
- あらゆるAIクライアントに適した、小規模なMCPのインストール
- 開発者でなくてもビジュアルUIで
ItemListを理解し、その後AIにパッチを適用させることができます - WYSIWYG編集と自動化されたMCP書き込みを明確に分離できます
上流ドキュメントとの整合性
このリポジトリには、docs/、docs/reference/、docs/examples/ に単独で利用できるドキュメントが含まれています。別の場所で包括的なガイドを管理している場合は、このディレクトリ構成との同期を保つか、配布用のサブセットとして扱ってください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。