Skip to main content

MCP server and CLI for Ulanzi TC001 Smart Pixel Clock (AWTRIX3)

Project description

Ulanzi MCP Server

Test CodeQL Libraries.io dependency status for latest release

ulanzi-mcp PyPI - Status PyPI GitHub

MCP server and CLI for the Ulanzi TC001 Smart Pixel Clock (AWTRIX3 firmware).

Features

  • MCP Server: Control your Ulanzi clock from AI assistants (Claude Desktop, Cursor, Windsurf)
  • CLI Tool: Command-line interface for scripting and automation
  • Multi-clock Support: Control multiple clocks from a single instance
  • Full API Coverage: Access all AWTRIX3 HTTP API endpoints

Quick Start

1. Install

cd ulanzi-mcp
uv sync

2. Configure

Copy .env.example to .env and set your clock IP:

ULANZI_HOSTS=http://192.168.1.100

For multiple clocks:

ULANZI_HOSTS=http://192.168.1.100,http://192.168.1.101

3. Use CLI

# Check configuration
ulanzi info

# Turn on display
ulanzi power on

# Show notification
ulanzi notify "Meeting in 5 minutes!"

# Set brightness
ulanzi brightness 200

4. Use with MCP (Claude Desktop)

Add to your Claude Desktop config:

{
  "mcpServers": {
    "ulanzi-mcp": {
      "command": "uv",
      "args": ["--directory", "/path/to/ulanzi-mcp", "run", "python", "-m", "ulanzi_mcp.server"]
    }
  }
}

Environment Variables

Variable Description Default
ULANZI_HOSTS Clock address(es), comma-separated http://192.168.1.100
ULANZI_USERNAME HTTP auth username (none)
ULANZI_PASSWORD HTTP auth password (none)
ULANZI_API_TIMEOUT Request timeout (seconds) 10
ULANZI_MQTT_PREFIX MQTT topic prefix awtrix

Available Tools/Commands

See docs/clock_spec.md for complete documentation.

Development

# Run MCP server in development mode
uv run mcp dev src/ulanzi_mcp/server.py

# Run CLI
ulanzi --help

# Run tests
uv run pytest

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ulanzi_mcp-0.1.0.tar.gz (78.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ulanzi_mcp-0.1.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file ulanzi_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: ulanzi_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 78.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ulanzi_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9917d228bbf01197a994ffb8948c0a748eb541ac9e47cf56735da1a32b648de0
MD5 fc686639517aea38839e53a0b1e49d4f
BLAKE2b-256 e1f070878b9a4951f704e0a6f8d150e1a7173d3ff7a6e8befcf9344943c863e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for ulanzi_mcp-0.1.0.tar.gz:

Publisher: publish.yml on Jelloeater/ulanzi-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ulanzi_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ulanzi_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ulanzi_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 36c68d003d282f38edee9000cae209a84a8d000ff2930aa8d47b21e93bece915
MD5 f1a72fbe7debdf61e964f7b9009c5d66
BLAKE2b-256 18a7d10b345534aff448bb2f0fd3f18c5695f21863ce392ba11004e21515640d

See more details on using hashes here.

Provenance

The following attestation bundles were made for ulanzi_mcp-0.1.0-py3-none-any.whl:

Publisher: publish.yml on Jelloeater/ulanzi-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page