关于 CheerLights MCP Server
CheerLights MCP Server 为 AI 工具提供 CheerLights 全球同步网络的数据访问,可查询当前及历史颜色、分析使用情况并生成颜色报告。
主要功能
- 01获取网络当前颜色
- 02查询近期颜色历史
- 03分析颜色使用统计
- 04搜索历史颜色记录
- 05查询十六进制与 RGB 值
- 06提供资源与报告提示词
适用场景
- 01查看最新 CheerLights 颜色
- 02回顾近期颜色变化
- 03比较不同颜色的流行度
- 04生成颜色趋势报告
MCP 相关
向 MCP 客户端提供 CheerLights 数据查询与分析工具,以及当前颜色、历史记录和支持颜色列表等资源;还提供趋势分析和颜色报告提示词。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
CheerLights MCP 服务
一个现代化的模型上下文协议(MCP)服务,可全面访问 CheerLights API。CheerLights 是一个全球物联网项目,可在全球数千盏互联灯光之间同步颜色,打造实时共享体验。
🌈 功能
工具(操作)
- 当前颜色:获取全球网络中最新的 CheerLights 颜色
- 颜色历史记录:获取最近的颜色变化,可配置数量(1-100)
- 颜色统计:分析颜色使用模式及其随时间变化的受欢迎程度
- 颜色搜索:在历史数据中查找指定颜色
- 十六进制颜色代码:获取 CheerLights 颜色的十六进制代码和 RGB 值
资源(上下文)
- 当前颜色资源:以易读资源的形式提供实时当前颜色
- 历史记录资源:格式化的颜色历史记录,可用于注入上下文
- 支持的颜色:包含十六进制代码的有效 CheerLights 颜色完整列表
提示词(模板)
- 趋势分析:生成用于分析 CheerLights 颜色趋势的提示词
- 颜色报告:创建关于指定颜色的详细报告
🚀 快速开始
使用 uv(推荐)
# Clone the repository
git clone https://github.com/cheerlights/cheerlights-mcp.git
cd cheerlights-mcp
# Install with uv
uv sync
# Run the server
uv run cheerlights-mcp
使用 pip
# Clone and install
git clone https://github.com/cheerlights/cheerlights-mcp.git
cd cheerlights-mcp
pip install -e .
# Run the server
python -m cheerlights_mcp.server
📦 安装
用于开发
# Install with development dependencies
uv sync --dev
# Install pre-commit hooks
uv run pre-commit install
从 PyPI 安装(发布后)
pip install cheerlights-mcp
🔧 使用方法
与 Claude Desktop 配合使用
将以下内容添加到 Claude Desktop 配置中:
Windows:%APPDATA%\Claude\claude_desktop_config.json
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"cheerlights": {
"command": "uv",
"args": ["run", "cheerlights-mcp"],
"cwd": "/path/to/cheerlights-mcp"
}
}
}
直接执行
# Standard I/O (default)
python -m cheerlights_mcp.server
# With specific transport
python -m cheerlights_mcp.server stdio
python -m cheerlights_mcp.server sse
python -m cheerlights_mcp.server streamable-http
以编程方式使用
from cheerlights_mcp import create_server
# Create and run server
server = create_server("My CheerLights Server")
server.run()
🛠️ API 参考
工具
get_current_cheerlights_color()
返回结构化的 ColorData,包含:
color:当前颜色名称timestamp:颜色设置时间entry_id:唯一标识符created_at:解析后的日期时间(可选)
get_cheerlights_history(count: int = 5)
返回包含最近颜色变化的 ColorHistory(1-100 条记录)。
analyze_color_statistics(sample_size: int = 50)
返回 ColorStatistics,包含:
- 颜色频率计数
- 最受欢迎和最不受欢迎的颜色
- 分析时段信息
- 唯一颜色数量
search_colors(color: str, limit: int = 20)
返回包含匹配条目的 ColorSearchResult。
get_hex_color_code(color_name: str)
返回包含十六进制代码和 RGB 值的 HexColor。
资源
cheerlights://current- 当前颜色状态cheerlights://history/{count}- 最近的颜色历史记录cheerlights://colors/supported- 所有受支持的颜色
Claude 查询示例
- “当前的 CheerLights 颜色是什么?最近一次更改是什么时候?”
- “显示最近 20 次 CheerLights 颜色变化”
- “分析最近 100 次变化的颜色使用统计数据”
- “搜索最近所有颜色为 ‘blue’ 的记录”
- “CheerLights 的 ‘warmwhite’ 颜色对应的十六进制代码是什么?”
- “创建一份关于 CheerLights 颜色趋势的报告”
🧪 测试
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=cheerlights_mcp
# Run specific test files
uv run pytest tests/test_tools.py -v
🏗️ 架构
cheerlights-mcp/
├── src/cheerlights_mcp/
│ ├── api/ # ThingSpeak API client
│ ├── models/ # Pydantic data models
│ ├── tools/ # MCP tool implementations
│ ├── utils/ # Utilities (color mapping, statistics)
│ └── server.py # Main FastMCP server
├── tests/ # Comprehensive test suite
└── examples/ # Usage examples
主要组件
- ThingSpeakClient:用于 CheerLights API 的异步 HTTP 客户端
- Pydantic Models:类型安全的数据验证与序列化
- 结构化输出:全面支持 MCP 结构化响应
- 完善的错误处理:优雅降级与日志记录
- 统计引擎:颜色使用分析与趋势计算
🎨 支持的颜色
CheerLights 支持以下标准颜色:
- 原色:red、green、blue
- 间色:cyan、magenta、yellow
- 扩展颜色:orange、pink、purple、white、warmwhite、oldlace
- 实用颜色:black
每种颜色都包含十六进制代码和 RGB 值,以便精确表示。
📊 示例数据
当前颜色响应
{
"color": "red",
"timestamp": "2024-01-15 14:30:22 UTC",
"entry_id": "12345",
"created_at": "2024-01-15T14:30:22Z"
}
统计响应
{
"color_counts": {"red": 15, "blue": 12, "green": 8},
"most_popular": "red",
"least_popular": "green",
"total_changes": 35,
"unique_colors": 3,
"analysis_period": "2 hours"
}
开发环境设置
# Clone and setup
git clone https://github.com/cheerlights/cheerlights-mcp.git
cd cheerlights-mcp
uv sync --dev
# Install pre-commit hooks
uv run pre-commit install
# Run tests
uv run pytest -v
📝 更新日志
版本 2.0.0
- 使用现代 MCP Python SDK 全面重写
- 为所有工具提供结构化输出支持
- 增强 API 客户端,具备完善的错误处理
- 全面的测试套件,覆盖率超过 90%
- 全程使用 Pydantic 模型,确保类型安全
- 新增工具:统计、搜索、十六进制颜色代码
- 提供资源和提示词,实现更丰富的集成
- 使用 uv 和 pyproject.toml 实现现代化打包
版本 1.0.0
- 初始 FastMCP 实现
- 基础的当前颜色和历史记录工具
- 简单的 ThingSpeak 集成
📄 许可证
本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。
🔗 链接
- CheerLights 项目:cheerlights.com
- MCP 文档:modelcontextprotocol.io
- ThingSpeak API:thingspeak.com
- 原始教程:创建 MCP 服务
🎄 关于 CheerLights
CheerLights 是一个全球物联网项目,通过同步世界各地的彩灯,打造同步灯光秀。该项目由 Hans Scharler 创建,自 2011 年以来已连接全球数千盏彩灯。当有人在 CheerLights Discord Server 上更改颜色时,所有参与的彩灯都会近乎实时地切换到该颜色。
此 MCP 服务为 AI 助手提供对 CheerLights 数据的丰富访问能力,可分析这一独特物联网数据集中的全球灯光趋势、颜色流行度和时间模式。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。