CCM
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Skill index
  • MCP index
  • Marketplace index
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by mertbuilds.com

Independent project, not affiliated with Anthropic
divoomdevelop avatar

Divoom LAN Watchface

divoomdevelop/mcp-divoom-lan
1authSTDIOregistry active
Summary

Wraps Divoom pixel display LAN APIs so Claude can read, patch, and create watchfaces over your local network. Exposes tools for getting current clock info, modifying elements like fonts and colors, swapping backgrounds, adjusting brightness, and creating new faces from images or tar.gz bundles. Ships with read-before-write safety rules and a separate v2 visual editor for previewing ItemList structures before letting the AI apply patches. Useful when you want natural language control over a Divoom device without manually constructing JSON payloads, or when prototyping watchface tweaks in conversation and pushing them straight to hardware. Requires device IP and assumes you understand the multipart dial asset rules for create operations.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
Open Steps
Open Steps
Free an open-source skills that make AI coding agents easier to understand, verify, and control.
Download for free →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
Granola, the best AI meeting recorder
Granola, the best AI meeting recorder
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
Open Steps
Open Steps
Free an open-source skills that make AI coding agents easier to understand, verify, and control.
Download for free →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
Granola, the best AI meeting recorder
Granola, the best AI meeting recorder
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →

mcp-divoom-lan

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

  • GitHub: https://github.com/DivoomDevelop/divoom-watchface-visual-editor_v2
  • Live site: https://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.

Goals

  • Expose key capabilities from Divoom_Watchface_Remote_Customization_Guide_EN.md as MCP tools
  • Let MCP-enabled clients (Cursor, Claude Desktop, local LLMs, etc.) drive watchface actions via natural language
  • Preserve safety boundaries (read before write, explicit warnings for risky operations, multipart rules)

Default safety policy (important)

  • Identify every target first: Hardware 510/511/512 selects TimesFrame; 530 selects AstroToo. Unknown hardware is rejected. DeviceType is not used for product detection.
  • Read before write: call watchface_get_local, then watchface_patch_local, then read back to verify.
  • If GetLocalClockInfo returns an empty ItemList: stop writes; switch to an editable watchface first.
  • Do not call watchface_create_local_clock unless the user clearly asks to create a new one (no implicit creation).

Implemented tools (21)

Device tools (15):

  • watchface_get_device_info → hardware identification and LAN capability report
  • watchface_get_local → Device/GetLocalClockInfo
  • watchface_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/GetLocalFontList
  • watchface_get_store_market_list → Device/GetStoreClockMarketList
  • watchface_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/GetBrightness
  • watchface_set_brightness → Channel/SetBrightness
  • watchface_onoff_screen → Channel/OnOffScreen (1=on, 0=off)
  • watchface_replace_dial_bg_file → POST /replace_clock_dial_bg
  • watchface_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/ResetLocalClockFromServer
  • watchface_get_screen_snapshot → Device/GetScreenSnapshot (downloads the returned AstroToo snapshot path; TimesFrame keeps its WebP fallback)
  • watchface_raw_command → generic POST /divoom_api

Offline/model-aware authoring tools (6):

  • watchface_protocol_quick_reference → key protocol constraints for the model
  • watchface_clock_catalog → product-specific ClockId, Chinese/English names, fonts, disp and item-id semantics; optional native configuration
  • watchface_disp_catalog → model-specific disp catalog and filters
  • watchface_font_catalog → model-specific font catalog; with a live AstroToo target it merges local availability into the AstroToo names
  • watchface_template_search → curated TimesFrame or AstroToo watchface templates
  • watchface_layout_suggest → model-specific layout hints; AstroToo never receives TimesFrame coordinate statistics

Resources (context for the model)

Product 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/catalog
  • divoom://guide/quick-reference
  • divoom://skill/watchface-customization
  • divoom://font/catalog
  • divoom://font/guide
  • divoom://disp/catalog
  • divoom://watchface/schema
  • divoom://watchface/example-minimal
  • divoom://guide/ai-watchface
  • divoom://templates/curated
  • divoom://astrotoo/guide
  • divoom://astrotoo/disp/catalog
  • divoom://astrotoo/font/catalog
  • divoom://astrotoo/clocks/catalog
  • divoom://astrotoo/clocks/configs
  • divoom://astrotoo/templates/curated
  • divoom://astrotoo/watchface/example-minimal
  • divoom://astrotoo/watchface/schema

MCP Bundle (.mcpb)

For MCPB-compatible hosts (e.g. Claude desktop connectors, Smithery stdio releases), build a local bundle:

  1. Install the packer: npm install -g @anthropic-ai/mcpb
  2. From this package root: npm run mcpb:pack
  3. Output: mcp-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.

Quick start

cd tools/mcp-divoom-lan  # or your clone root for this package
npm install
npm run build
npm start

Development (watch rebuild):

npm run dev

Regenerate AstroToo resources from the simulator and Divoom command server:

$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

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

npm run release:check

Documentation

  • docs/README.md — documentation index
  • docs/quick-start.md — minimal setup
  • docs/mcp-tools.md — complete 21-tool API catalog and model-specific file policy
  • docs/astrotoo-and-multiple-devices.md — hardware detection, multiple targets, and AstroToo local storage
  • docs/adding-products.md — product registry, isolated resource directories, and onboarding checks
  • docs/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 MCP
  • docs/safety-and-troubleshooting.md — safety and FAQs
  • docs/reference/ — condensed protocol rules (EN/ZH)
  • docs/examples/ — sample requests/responses and catalog

Environment variables

  • DIVOOM_DEVICE_HOST — device LAN IP (e.g. 192.168.1.120)
  • DIVOOM_DEVICE_PORT — HTTP port, default 9000
  • DIVOOM_DEVICE_MODEL — auto (default), timesframe, or astrotoo; explicit values are compatibility checks, except timesframe can support legacy firmware without the hardware query
  • DIVOOM_TIMEOUT_MS — request timeout ms, default 45000

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

Example client config (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"
      }
    }
  }
}

You can also copy client-config.example.json in this directory as a starting point.

Publishing checklist (for maintainers)

  1. Use a dedicated repo (e.g. mcp-divoom-lan) with this package at the repo root.
  2. Verify metadata: LICENSE, SECURITY.md, CONTRIBUTING.md, CHANGELOG.md, RELEASE.md as applicable.
  3. Run npm run release:check.
  4. Tag a GitHub release (e.g. v0.1.2) with screenshots and sample requests if helpful.
  5. Submit listings where appropriate (MCP Registry, Smithery, Glama, MCP.so, and community indexes). For Glama, follow 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.
  6. Minimal demo flow: watchface_get_local → watchface_patch_local (font size/color) → watchface_replace_dial_bg_file (background).

Files often used at release

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.

Should the HTML visual editor ship inside this npm package?

Recommendation: no for the core MCP package — keep MCP lean. Offer the editor as a separate optional project.

  • Core: https://github.com/DivoomDevelop/mcp-divoom-lan
  • Visual editor v2: https://github.com/DivoomDevelop/divoom-watchface-visual-editor_v2
  • Hosted v2: https://divoomdevelop.github.io/divoom-watchface-visual-editor_v2/

Benefits:

  • Small MCP install suitable for all AI clients
  • Non-developers can use the visual UI to understand ItemList, then let the AI apply patches
  • Clear split between WYSIWYG editing and automated MCP writes

Alignment with upstream docs

This repo ships standalone docs under docs/, docs/reference/, and docs/examples/. If you maintain full guides elsewhere, keep this tree synced or treat it as the distribution subset.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
Open Steps
Open Steps
Free an open-source skills that make AI coding agents easier to understand, verify, and control.
Download for free →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
Granola, the best AI meeting recorder
Granola, the best AI meeting recorder
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →

Configuration

DIVOOM_DEVICE_HOST*

Divoom device LAN IP address

DIVOOM_DEVICE_PORTdefault: 9000

Divoom device HTTP port

DIVOOM_TIMEOUT_MSdefault: 45000

HTTP request timeout in milliseconds

Registryactive
Packagemcp-divoom-lan
TransportSTDIO
AuthRequired
UpdatedMay 11, 2026
View on GitHub