Skip to main content
Glama
DivoomDevelop

mcp-divoom-lan

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DIVOOM_TIMEOUT_MSNoRequest timeout in milliseconds, default 4500045000
DIVOOM_DEVICE_HOSTNoDevice LAN IP (e.g., 192.168.1.120). If unset, each tool call must pass target.host.
DIVOOM_DEVICE_PORTNoHTTP port, default 90009000

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}
resources
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
watchface_get_localC

Call Device/GetLocalClockInfo for current or explicit clock id.

watchface_patch_localB

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= 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. Pointer fixes (131/132/233 = DIVOOM_CLOCK_DISP_SUPPORT_*_POINT_IMAGE): shared square x/y/w/h, w×w PNGs, center rotation; ref ClockId 60012; transp 100; hier 0/1/2 only — docs/tool-examples.md §5b. Avoid duplicate image-backed disp rows (NET_PIC family); docs/disp-usage.md. Multipart framing: watchface_upload_file description and resources/skill-quick-reference.md.

watchface_get_fonts_localC

Call Device/GetLocalFontList.

watchface_get_store_market_listC

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

watchface_set_clock_selectD

Call Channel/SetClockSelectId with ClockId.

watchface_get_brightnessD

Call Sys/GetBrightness.

watchface_set_brightnessC

Call Channel/SetBrightness with Brightness.

watchface_onoff_screenC

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

watchface_replace_dial_bg_fileA

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.

watchface_upload_fileC

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.

watchface_create_local_clockA

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. Pointer slots DIVOOM_CLOCK_DISP_SUPPORT_HOUR_POINT_IMAGE=131, MIN_POINT_IMAGE=132, SECOND_POINT_IMAGE=233: mandatory shared square w=h and identical x,y,w,h on all three rows; w×w bitmaps; center pivot, hand toward 12 o'clock — never full-screen 800×1280 layers or mismatched thin rects; reference ClockId 60012 export. transp: MUST use 100 for visible layers — LLMs often emit 0 → invisible on device. hier: ONLY 0=auto, 1=bottom, 2=top (no tier 3+). See docs/tool-examples.md §5b. Uniqueness: do not duplicate the same image-backed disp in one dial — later rows overwrite earlier ones; especially NET_PIC family (disp 13, 125–130, 173–175, DIVOOM_CLOCK_DISP_SUPPORT_NET*_PIC); see docs/disp-usage.md. Multipart framing (Content-Length per part): see watchface_upload_file description.

watchface_reset_local_then_cloudA

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

watchface_raw_commandB

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

watchface_protocol_quick_referenceC

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

watchface_disp_catalogA

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.

watchface_font_catalogA

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. For visual style and mood per font id, read MCP resource divoom://font/guide first. 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.

watchface_template_searchA

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.

watchface_layout_suggestA

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).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
Divoom Watchface Guide Quick ReferenceKey LAN API constraints and command flow for watchface customization.
Divoom Watchface Skill PromptCompact prompt that teaches agents how to safely operate the Divoom LAN API.
Divoom Watchface Font CatalogCurated TTF and image-font catalog (id, type, name, charset, script, style tags, recommended scenarios) sourced from the visual editor's font_info.cfg. Use it to pick `ItemList[i].font` ids without guessing.
Divoom Watchface Font AI GuideHuman-readable guide for all 157 editor fonts: visual style, mood, recommended use cases, scenario index, TTF vs image_glyph styling rules, and per-id descriptions. Read this before `divoom://font/catalog` when choosing fonts for themed dials.
Divoom Watchface Disp CatalogCatalog of every `disp` id supported by this firmware (194 entries) with English symbol, Chinese description, and heuristic hints for whether the slot expects an image asset or vector text. Use to pick `ItemList[i].disp` and to decide whether the slot needs an `image_addr` asset.
Divoom Watchface JSON SchemaJSON Schema (draft 2020-12) for the editor's watchface config (`ItemList[]`, `ItemIdList`, `ClockId`, names). Validate generated payloads before sending them to PatchLocalClockInfo / CreateLocalClock.
Minimal Watchface ExampleSmallest valid watchface JSON (single time row at 800x1280). Use as a starting template before adding more `ItemList` rows.
AI Watchface Authoring GuideEditor-side narrative on AI-assisted watchface authoring: canvas conventions, font rules, where the catalogs come from, regeneration workflow.
Curated Watchface Templates~20 designer-made skeleton watchfaces mined from the HTML editor's bundled marketplace configs (`public/template/config`). Each entry lists tags (weather, lunar, pixel_theme, …), stats, and a stripped `watchface` JSON (ClockId, names, ItemIdList, ItemList) safe to clone before swapping fonts/colors. Does not include DeviceImageUrl.

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/DivoomDevelop/mcp-divoom-lan'

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