Skip to main content

CheerLights MCP server

An MCP server that lets Claude and other AI assistants read the live CheerLights color, its history, and statistics.

PyPI Python CI License: MIT

CheerLights is a global network of lights that all show the same color, set by anyone on the CheerLights Discord. This server reads the public CheerLights feed (ThingSpeak channel 1417) and gives an assistant five read-only tools: the current color, recent history, statistics, search, and HEX and RGB values. It is built on the MCP Python SDK 2.x and needs no API key.

Quick start

You need uv, which installs Python 3.10 or later for you. uvx runs the server straight from PyPI, with nothing else to install.

Add the server to Claude Code:

claude mcp add cheerlights -- uvx cheerlights-mcp

Or add it to Claude Desktop's claude_desktop_config.json and restart the app:

{
  "mcpServers": {
    "cheerlights": {
      "command": "uvx",
      "args": ["cheerlights-mcp"]
    }
  }
}

Then ask: "What's the current CheerLights color?" The assistant calls get_current_cheerlights_color and answers with the live color.

Example

These results come from a live run of version 3.0.0 over stdio on 2026-10-28 (examples/client_example.py).

get_current_cheerlights_color returns the color, its HEX value, and when it was set:

{
  "color": "purple",
  "hex": "#800080",
  "set_at": "2026-10-28T15:46:23Z",
  "entry_id": 1067049
}

analyze_color_statistics with sample_size 1000 covered 2026-09-13 to 2026-10-28 (excerpt):

{
  "sample_size": 1000,
  "counts": { "orange": 111, "blue": 109, "red": 105, "...": "...", "white": 15 },
  "most_popular": "orange",
  "least_popular": "white",
  "unique_colors": 11
}

Tools

  • get_current_cheerlights_color: the current color, its HEX value, and when it was set.
  • get_cheerlights_history: the last 1 to 100 color changes, newest first.
  • analyze_color_statistics: how often each color was picked across the last 10 to 8000 changes.
  • search_colors: when a color was picked recently, newest first.
  • get_hex_color_code: the HEX and RGB values of any of the eleven CheerLights colors.
  • Resources cheerlights://current, cheerlights://history/{count}, and cheerlights://colors, as JSON.
  • Prompts analyze_cheerlights_trends and cheerlights_color_report.

Every tool is marked read-only, returns structured output with a schema, and answers an unknown color with an error that lists the valid ones.

Limits

  • It reads the color; it cannot set it. People set the color on the CheerLights Discord with /cheerlights.
  • History reaches back at most 8000 changes, the most ThingSpeak returns in one request.
  • If ThingSpeak cannot be reached, the tools return an error saying so.

Documentation

Development

git clone https://github.com/cheerlights/cheerlights-mcp
cd cheerlights-mcp
uv sync
uv run pytest

The 11 tests drive the server through an in-memory MCP client against a fake ThingSpeak. uv run python examples/client_example.py starts the server over stdio and calls every tool against the live feed. uv run ruff check . and uv run mypy src check style and types. To serve over HTTP instead of stdio, run uv run cheerlights-mcp streamable-http --port 8000.

License

MIT. See LICENSE.

Metadata

Release files for cheerlights-mcp 3.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cheerlights-mcp 3.0.0
File Size Uploaded Provenance Actions
cheerlights_mcp-3.0.0.tar.gz 112.7 kB With provenance Details for cheerlights_mcp-3.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for cheerlights-mcp 3.0.0
File Interpreter ABI Platform Actions
cheerlights_mcp-3.0.0-py3-none-any.whl Python 3 none any Details for cheerlights_mcp-3.0.0-py3-none-any.whl

Total release size: 123.0 kB

Release files / cheerlights_mcp-3.0.0.tar.gz

Download URL cheerlights_mcp-3.0.0.tar.gz
Size 112.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d193cb9ea83fad2dfbd46fe8a06b54d377f5069b4ed29753130dd3acbb7f89bb
BLAKE2b-256 checksum
How to use checksums
831b8178488c9fc33ee9aa7d093dd49b6592b864fab21d18ace2cecb211e2d11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Release files / cheerlights_mcp-3.0.0-py3-none-any.whl

Download URL cheerlights_mcp-3.0.0-py3-none-any.whl
Size 10.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5f8edac76bb4a7908e6ef1f31b8666250bf26869a55e7689ab367ae995732c80
BLAKE2b-256 checksum
How to use checksums
271c851fee396928b2af03f67b603ef95f04a148b5b61d44f4f49b7252b682a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Security for cheerlights-mcp 3.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for cheerlights_mcp-3.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

3.0.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page