MCP.so
ログイン

MCP Divoom TimeFrame Lan

@DivoomDevelop

基本情報

カテゴリ

その他

トランスポート

stdio

作者

DivoomDevelop

投稿者

DIVOOM

MCP Divoom TimeFrame Lan について

mcp-divoom-lan is an open-source Model Context Protocol (MCP) server that exposes Divoom watchface customization over local LAN HTTP. AI assistants can read and patch the current on-device watchface JSON, manage fonts and store market lists, switch the active dial, adjust brightn

#mcp#divoom#watchface#lan#iot#smart-device#node-js#stdio#home-automation#timeframe#timegate#pixoo64

MCP Divoom TimeFrame Lan の設定

以下の設定を使って、このサーバーを MCP 対応クライアントに追加してください。

{
  "mcpServers": {
    "divoom-lan": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-divoom-lan"
      ],
      "env": {
        "DIVOOM_DEVICE_HOST": "192.168.1.120",
        "DIVOOM_DEVICE_PORT": "9000",
        "DIVOOM_TIMEOUT_MS": "45000"
      }
    }
  }
}

MCP Divoom TimeFrame Lan のツール

18

Call Device/GetLocalClockInfo for current or explicit clock id.

Patch local dial via Device/PatchLocalClockInfo with precheck. Defaults to POST /divoom_api (JSON only) for pure metadata edits. Prefer ItemPatchList (per-index field diff) — DO NOT include item_id inside patch.* unless the user explicitly asks to rename a slot, since the firmware will overwrite the device-side item_id and break menu/config bindings. When dialAssetsPath is set, switches to multipart POST /patch_local_clock: first JSON part (Device/PatchLocalClockInfo, optional DialAssets), second part single JPEG/WebP dial backdrop or clock_bg.tar.gz bundle. Element slots inside the tarball must be JPEG, WebP, or PNG (validated by firmware wf_validate_bundle_slot_image_file). Use ItemPatchList[].patch.bundle_image=<leaf> to bind a tar leaf to that slot's img_addr; supplying ItemList alone is a full-table replace and should be avoided unless the row count actually changes. Multipart framing (Content-Length / boundary / manual construction): see watchface_upload_file description and resources/skill-quick-reference.md.

Call Device/GetLocalFontList.

Call Device/GetStoreClockMarketList after device prefetch has populated in-memory store data.

Call Channel/SetClockSelectId with ClockId.

Call Sys/GetBrightness.

Call Channel/SetBrightness with Brightness.

Call Channel/OnOffScreen with OnOff (1=on, 0=off).

POST /replace_clock_dial_bg using multipart (Device/ReplaceClockDialBgFile). Replaces the cached dial bitmap only — does NOT modify cfg DeviceImageUrl, and does NOT accept tar.gz. Backdrop is validated by divoom_watchface_replace_clock_dial_bg_validate_saved_file: JPEG (FF D8) or WebP (RIFF…WEBP) only, ≤ 500 KiB (DIVOOM_REPLACE_DIAL_BG_MAX_FILE_BYTES), recommended 800x1280 portrait. Multipart framing notes: watchface_upload_file description.

POST /upload with multipart. First JSON part is caller-provided metadata (product-specific Command). 传输文件打包要求:固件在 divoom_http_server_upload_get_file_info 中要求每个文件段必须有 Content-Length,而浏览器 FormData 通常只使用 boundary 分隔、不包含每段 Content-Length。正在实现固件在无 Content-Length 时用 boundary 终止解析,并修复 JSON 段之后定位文件数据的指针计算;编辑器侧改为手动构造带 Content-Length 的 multipart 以提高兼容性。This server builds multipart with per-part Content-Length.

POST /create_local_clock (multipart) — Device/CreateLocalClock. metadata.DialAssets accepts 'auto' (default; sniffs gzip magic on the file part), 'image' (single JPEG/WebP backdrop), or 'bundle' (clock_bg.tar.gz). Legacy UseDialAssetBundle (0=image, non-0=bundle) is honored when DialAssets is omitted. Backdrop is JPEG/WebP only; element slots inside the tarball accept JPEG/WebP/PNG (firmware wf_validate_bundle_slot_image_file). Each ItemList[i] needs disp/font/x/y/w/h/size/alig numbers and color_1/color_2/item_id non-empty strings; ItemIdList must be a parallel non-empty string array. alig: 3=center, 4=left, 5=right. Multipart framing (Content-Length per part): see watchface_upload_file description.

Call Device/ResetLocalClockFromServer. This deletes local sys-side files before optional cloud refresh.

Raw POST /divoom_api command wrapper. Command is required; payload object is merged with enforced ReturnCode=0.

Return concise operational constraints extracted from the public guide and skill.

Return the full `disp` id catalog (194 entries) that the firmware understands for `ItemList[i].disp` and `ItemPatchList[i].patch.disp`. Each entry includes English symbol, Chinese description, and heuristic hints (`likelyUsesRasterOrAssetLayer` for image/GIF slots; `oftenUsesVectorFontForText` for text slots). Use it together with `watchface_font_catalog`: text-leaning disps need a font id; raster-leaning disps need an `image_addr` asset.

Return a curated font catalog so agents can pick `ItemList[i].font` ids deterministically. Each entry includes id, type (1=TTF, 0=image-font), display name, original charset, derived script (digits / digits-extended / latin / cjk), style tags (sans/serif/pixel/digital/handwriting/display/decorative/bold/light/etc), and recommendedFor (scenario names like time_digits / temperature_digits / weather_text / user_text / lunar_text). The response also includes a `scenarios` map that lists which `disp` ids each scenario covers and which tags to prefer. Use the optional filters to narrow the result. Always cross-check with `watchface_get_fonts_local` before committing a font id to a real device, because the on-device font list may be a subset.

Search the curated template library (`divoom://templates/curated`): ~20 marketplace-derived watchface skeletons with tags such as weather, lunar_calendar, split_time_digits, pixel_theme, asset_heavy. Prefer cloning an existing ItemList layout before inventing raw coordinates. Filters support tagsAll/tagsAny, bucket, clockIds, item-count bounds, and dispPresent (template must include that disp id). Set includeWatchface=false for a compact summary without the full ItemList payload.

Return layout hints for a single disp id by combining disp-catalog metadata with aggregated typography (median size/x/y/w/h, frequent colors, alignment mode) mined from bundled marketplace templates. Use before authoring a new ItemList row or ItemPatchList.patch fragment — values are soft guidance, not firmware-enforced. Always clamp boxes to the logical canvas (typically 800×1280).

概要

What is Mcp Divoom TimeFrame Lan?

Mcp Divoom TimeFrame Lan is an open-source Model Context Protocol (MCP) server for Divoom watchface customization over local LAN HTTP. It enables users to drive on-device watchface workflows in natural language from Cursor, Claude Desktop, or any MCP-compatible client.

How to use Mcp Divoom TimeFrame Lan?

Requires Node.js 20+ and network access to the Divoom device on the same LAN (HTTP API, commonly port 9000). Configure by setting environment variables: DIVOOM_DEVICE_HOST (device IP), DIVOOM_DEVICE_PORT (default 9000), and DIVOOM_TIMEOUT_MS (default 45000). Invoke tool calls from any MCP client; the target parameter can also be passed per call.

Key features of Mcp Divoom TimeFrame Lan

  • Read and patch the current local watchface
  • List local fonts and store/market dials
  • Switch active dial and read/set brightness
  • Multipart helpers for dial background replacement and file upload
  • Exposes MCP resources with protocol and safety notes for agents

Use cases of Mcp Divoom TimeFrame Lan

  • Customizing Divoom watchfaces on-device using natural language from an MCP client
  • Switching between active dials programmatically over local LAN
  • Reading or adjusting device brightness without a proprietary app

よくある質問

1

What does Mcp Divoom TimeFrame Lan do?

It is an MCP server that allows reading, patching, and managing Divoom watchfaces over local LAN HTTP from MCP-compatible clients.

2

What are the runtime requirements?

Node.js 20+ and network access to the Divoom device on the same LAN, typically using port 9000.

3

How do I configure the server?

Set environment variables: `DIVOOM_DEVICE_HOST` for the device IP, `DIVOOM_DEVICE_PORT` (default `9000`) for the HTTP port, and `DIVOOM_TIMEOUT_MS` (default `45000`) for timeout.

4

What safety precautions are recommended?

Prefer a read → patch → read back workflow before trusting changes. Some operations, such as reset from cloud, can be destructive; confirm with the user first.

5

Where can I find the source and report issues?

The repository is at https://github.com/DivoomDevelop/mcp-divoom-lan. Security issues can be reported to developer@divoom.com, and npm package is `mcp-divoom-lan`.

コメント

「その他」の他のコンテンツ