MCP server for Divoom LAN watchface customization with safe read-before-write workflows.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
mcp-divoom-lan is an open-source MCP server that wraps Divoom TimesFrame and AstroToo watchface LAN APIs as standard tools for AI clients. One server can control several devices: every operation first reads Device/GetHardwareVersion from that target and selects the product profile from the returned Hardware value.
It works together with the v2 HTML visual editor for modifying watchfaces, switching faces, adjusting brightness, and creating new local watchfaces.
v2 visual editor (public):
https://github.com/DivoomDevelop/divoom-watchface-visual-editor_v2https://divoomdevelop.github.io/divoom-watchface-visual-editor_v2/Your local clone path (e.g. D:\divoom-watchface-visual-editor) is machine-specific; use the v2 GitHub / GitHub Pages URLs above in docs and MCP metadata.
Divoom_Watchface_Remote_Customization_Guide_EN.md as MCP toolsHardware 510/511/512 selects TimesFrame; 530 selects AstroToo. Unknown hardware is rejected. DeviceType is not used for product detection.watchface_get_local, then watchface_patch_local, then read back to verify.GetLocalClockInfo returns an empty ItemList: stop writes; switch to an editable watchface first.watchface_create_local_clock unless the user clearly asks to create a new one (no implicit creation).Device tools (15):
watchface_get_device_info β hardware identification and LAN capability reportwatchface_get_local β Device/GetLocalClockInfowatchface_patch_local β Device/PatchLocalClockInfo (default /divoom_api); optional dialAssetsPath switches to multipart POST /patch_local_clock. TimesFrame can use tar.gz; AstroToo accepts one backdrop and uses prior per-file local:// uploads for elements.watchface_get_fonts_local β Device/GetLocalFontListwatchface_get_store_market_list β Device/GetStoreClockMarketListwatchface_set_clock_select β Channel/SetClockSelectId (TimesFrame queues a paired request inside one serialized MCP operation so a manual selection suppresses the active traditional schedule for the current period; AstroToo sends once)watchface_get_brightness β Sys/GetBrightnesswatchface_set_brightness β Channel/SetBrightnesswatchface_onoff_screen β Channel/OnOffScreen (1=on, 0=off)watchface_replace_dial_bg_file β POST /replace_clock_dial_bgwatchface_upload_file β AstroToo-only POST /upload_local_asset; returns a temporary local:// staging reference consumed by a successful create/patch. AstroToo keeps product photo/pixel POST /upload separate. TimesFrame generic /upload is blocked in local-only MCP mode.watchface_create_local_clock β POST /create_local_clock (TimesFrame: single image or tar.gz; AstroToo: one 480Γ480 backdrop after uploading element files individually)watchface_reset_local_then_cloud β Device/ResetLocalClockFromServerwatchface_get_screen_snapshot β Device/GetScreenSnapshot (downloads the returned AstroToo snapshot path; TimesFrame keeps its WebP fallback)watchface_raw_command β generic POST /divoom_apiOffline/model-aware authoring tools (6):
watchface_protocol_quick_reference β key protocol constraints for the modelwatchface_clock_catalog β product-specific ClockId, Chinese/English names, fonts, disp and item-id semantics; optional native configurationwatchface_disp_catalog β model-specific disp catalog and filterswatchface_font_catalog β model-specific font catalog; with a live AstroToo target it merges local availability into the AstroToo nameswatchface_template_search β curated TimesFrame or AstroToo watchface templateswatchface_layout_suggest β model-specific layout hints; AstroToo never receives TimesFrame coordinate statisticsProduct data is stored by directory: resources/timesframe, resources/astrotoo, and resources/common. resources/products.json records Hardware mappings, canvas sizes, and directory names. A future product gets its own directory and registry entry; runtime loaders never fall back to another product's data.
The original resource URIs retain TimesFrame semantics. AstroToo has separate 480Γ480 resources:
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/catalogdivoom://astrotoo/font/catalogdivoom://astrotoo/clocks/catalogdivoom://astrotoo/clocks/configsdivoom://astrotoo/templates/curateddivoom://astrotoo/watchface/example-minimaldivoom://astrotoo/watchface/schemaFor MCPB-compatible hosts (e.g. Claude desktop connectors, Smithery stdio releases), build a local bundle:
npm install -g @anthropic-ai/mcpbnpm run mcpb:packmcp-divoom-lan.mcpb (gitignored). The staging directory mcpb/staging/ is also gitignored.The bundle includes dist/, resources/, production node_modules, and a manifest.json with user fields for device IP, port, and timeout.
Development (watch rebuild):
Regenerate AstroToo resources from the simulator and Divoom command server:
The generator calls https://appchina.divoom-gz.com/ + command string with a JSON body. It obtains default IDs from Device/GetClockDefaultList (IsDefault=1), font names from Device/GetFontForAI, and missing configurations from Device/GetClockInfoV3.
Pre-release check (typecheck, build, pack dry-run):
docs/README.md β documentation indexdocs/quick-start.md β minimal setupdocs/mcp-tools.md β complete 21-tool API catalog and model-specific file policydocs/astrotoo-and-multiple-devices.md β hardware detection, multiple targets, and AstroToo local storagedocs/adding-products.md β product registry, isolated resource directories, and onboarding checksdocs/tool-examples.md β tool usage examples (includes Β§5b analog pointer layout)docs/disp-usage.md β choosing disp ids (pointer layout 131/132/233; net-gallery uniqueness 13/125β130/173β175)docs/html-visual-editor.md β using the visual editor with MCPdocs/safety-and-troubleshooting.md β safety and FAQsdocs/reference/ β condensed protocol rules (EN/ZH)docs/examples/ β sample requests/responses and catalogDIVOOM_DEVICE_HOST β device LAN IP (e.g. 192.168.1.120)DIVOOM_DEVICE_PORT β HTTP port, default 9000DIVOOM_DEVICE_MODEL β auto (default), timesframe, or astrotoo; explicit values are compatibility checks, except timesframe can support legacy firmware without the hardware queryDIVOOM_TIMEOUT_MS β request timeout ms, default 45000If DIVOOM_DEVICE_HOST is unset, each tool call must pass target.host. To control several devices, pass a different target on each call. The server serializes a complete operation per host:port while allowing independent devices to run concurrently.
You can also copy client-config.example.json in this directory as a starting point.
mcp-divoom-lan) with this package at the repo root.LICENSE, SECURITY.md, CONTRIBUTING.md, CHANGELOG.md, RELEASE.md as applicable.npm run release:check.v0.1.2) with screenshots and sample requests if helpful.GLAMA_SUBMISSION_READY.md (including Dockerfile and glama.json). For MCP.so, follow MCP_SO_SUBMISSION_READY.md. For the Volcengine MCP catalog, see VOLCENGINE_SUBMISSION_READY.md (PR: https://github.com/volcengine/mcp-server/pull/398). For an Alibaba Cloud Bailian custom MCP deployed with npx, see BAILIAN_MCP_SUBMISSION_READY.md. For publishing a Coze HTTP plugin, see COZE_SUBMISSION_READY.md.watchface_get_local β watchface_patch_local (font size/color) β watchface_replace_dial_bg_file (background).Included in this repo (when present): LICENSE, CHANGELOG.md, CONTRIBUTING.md, SECURITY.md, RELEASE.md, optional checklist and directory templates, and .github/workflows/ci.yml.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/mcp-divoom-lan)<a href="https://allmcps.com/mcp/mcp-divoom-lan"><img src="https://allmcps.com/api/badge/mcp-divoom-lan?style=directory" alt="MCP Divoom Lan on AllMCPs" /></a>