Halo PixelBar MCP
A local MCP server for controlling an EDIFIER Halo PixelBar's ambient light, pixel screen, and hardware volume on Windows.
README
Halo PixelBar MCP
A local MCP server for controlling an EDIFIER Halo PixelBar from an AI on Windows. It exposes a small allowlist for the ambient light, pixel screen, and the speaker's independent hardware volume.
This is an independent community project. It is not affiliated with, endorsed by, or supported by EDIFIER.
See PROTOCOL_NOTES.md for the observed packet format, field mappings, and live hardware tests.
Prerequisites
- Windows 10 or Windows 11.
- An EDIFIER Halo PixelBar (花再) exposing USB VID
0x2D99, PID0xA106, HID interface4, usage page0xFF14, and usage1. - A USB connection that carries data, not a power-only cable. A data-capable adapter or dock is fine when Windows can enumerate the HID interface.
- Python 3.11 or newer.
- A local MCP host that can launch a stdio server, such as Codex or Claude Desktop.
EDIFIER TempoHub was installed while the protocol was validated, but this MCP does not call TempoHub, read an EDIFIER account, or require account credentials. The device filter is intentionally strict; other EDIFIER speakers and PixelBar revisions are not assumed to be compatible.
Install
git clone https://github.com/Seraph310/halo-pixelbar-mcp.git
cd halo-pixelbar-mcp
py -3.11 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[dev]"
Codex configuration
Add the following to %USERPROFILE%\.codex\config.toml, replacing both paths:
[mcp_servers.halo_pixelbar]
command = 'C:\path\to\halo-pixelbar-mcp\.venv\Scripts\python.exe'
args = ['C:\path\to\halo-pixelbar-mcp\server.py']
startup_timeout_sec = 30
Restart the MCP host after changing its configuration.
Tools
| Tool | Purpose |
|---|---|
get_halo_status |
Detect the validated HID control interface |
get_halo_volume |
Read the independent 0-16 speaker volume |
set_halo_volume |
Set the hardware volume and verify it by querying again |
show_halo_text |
Display a short UTF-8 message with a safe layout |
set_halo_scene |
Select a built-in clock, game, work, reading, pet, meme, cyber, or waveform scene |
set_halo_screen_color |
Set the pixel-screen theme color |
set_halo_ambient |
Set light effect, RGB color, brightness, and speed |
set_halo_ambient_power |
Switch only the ambient light on or off |
Tested environment
- Windows 11 64-bit, build
26200. - EDIFIER Halo PixelBar (花再), USB VID
0x2D99, PID0xA106. - EDIFIER TempoHub installer version
1.2.6. - Python
3.11.5. - A data-capable USB adapter; a direct motherboard connection is not required when Windows can still enumerate the HID interface.
Safety boundary
- Targets only the exact validated VID, PID, interface, usage page, usage, and a matching Halo/PixelBar product name.
- Exposes no arbitrary HID packet, firmware, factory-reset, account, file, or shell-command tool.
- Validates colors, scenes, effects, speed, brightness, layouts, text length, and hardware volume before writing.
- Does not require or read EDIFIER TempoHub credentials.
- Omits the physical device serial number from public MCP status results.
Optional music companion
Pair this server with CloudMusic Desktop MCP to let an MCP host coordinate AI-selected music with light, screen, and hardware-volume changes. The two servers are independent and can be installed separately.
Protocol attribution
The packet format was established through local device observation, the installed official controller, and live readback tests. It was also compared with the MIT-licensed XFEstudio/HaloPixelToolBox implementation and the official Halo PixelBar user manual. No extracted TempoHub binaries, decompiled files, credentials, firmware, or research snapshots are included in this repository.
Test
.\.venv\Scripts\python.exe -m pytest -q
Credits
Built together by Celia and OpenAI Codex.
Celia led the product direction and live hardware validation. Codex assisted with reverse engineering, implementation, and testing.
License
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.