COLMI Smart Ring MCP Server
Enables interaction with COLMI smart rings over Bluetooth Low Energy, providing tools for scanning rings, reading battery and device status, syncing time, blinking LEDs, retrieving daily activity, sleep and recovery metrics, real-time heart rate/SpO2, and raw 3-axis accelerometer motion data.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@COLMI Smart Ring MCP Server check my ring's battery and blink the LED if it's under 20%"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
COLMI Smart Ring Toolkit & Cross-Platform MCP Server
The definitive open-source toolkit, reverse-engineered Bluetooth Low Energy (BLE) protocol specification, and Model Context Protocol (MCP) server for COLMI R02, COLMI R03, and compatible smart rings. Connect physical health rings directly to AI agents (Claude Desktop, Cursor, Antigravity, VS Code) without vendor clouds, accounts, or subscriptions.
๐ Search Keywords & Supported Hardware
Supported Devices:
COLMI R02 & COLMI R03 Smart Rings
COLMI R01, R04, R05, R06, R07, R08, R10 family
QRing OEM Variants: KSIX Ring, boAt Ring, Blaupunkt, VK-5098, MERLIN, Hello Ring, RING1, TR-R02, OneRing, BOK.
SoC Families: BlueX Micro RF03 / RF03-01 (ARM Cortex-M0) & Realtek RTL8762E / RTL8762ESF (ARM Cortex-M4F, RT02R revision).
Comparative Ecosystem:
Oura Ring (Gen 2, Gen 3, Ring 4)
Ultrahuman Ring AIR
RingConn (Gen 1 & Gen 2)
Samsung Galaxy Ring
Tags & Topic Index:
colmi, colmi-r02, colmi-r03, smart-ring, oura-alternative, mcp-server, model-context-protocol, claude-desktop, cursor-ai, antigravity, bluetooth-le, ble, qring, reverse-engineering, local-first, biometrics, heart-rate-variability, hrv, sleep-staging, hypnogram, accelerometer, firmware.
Related MCP server: Oura MCP
๐ Is it Cross-Platform?
YES, 100% Cross-Platform!
The toolkit and MCP server run natively on Linux, macOS, and Windows 10/11:
Cross-Platform Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ colmi-smart-ring MCP Server โ
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ bleak Cross-Platform Engine โ
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โผ โผ โผ
โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ
โ Linux โ โ macOS โ โ Windows โ
โโโโโโโโโโโโโโโโโค โโโโโโโโโโโโโโโโโค โโโโโโโโโโโโโโโโโค
โ โข BlueZ DBus โ โ โข Native Core โ โ โข Windows. โ
โ โข Systemd / โ โ Bluetooth โ โ Devices. โ
โ Raspberry Piโ โ โข Apple Silicon/โ โ Bluetooth โ
โ โข dbus-fast โ โ Intel Mac โ โ (WinRT BLE) โ
โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโBluetooth Layer (
bleak): Automatically selects the native OS Bluetooth subsystem:Linux: Speaks directly to the Linux BlueZ daemon via asynchronous DBus sockets.
macOS: Communicates through Apple's native
CoreBluetoothframework on both Apple Silicon (M1/M2/M3/M4) and Intel Macs.Windows: Interfaces with the native
Windows.Devices.BluetoothUniversal Windows Runtime (WinRT) APIs.
MCP Protocol Layer (
mcp 2.x): Operates over standard input/output (stdio), supported identically across all operating systems.No External Cloud Dependencies: Communicates directly from your computer to the ring on your finger over local 2.4 GHz radio.
โก Feature Overview
๐ค Model Context Protocol (MCP) Server: Exposes 8 native tools to AI agents (
scan_rings,get_ring_status,blink_ring,sync_time,get_daily_activity,get_sleep_and_recovery,read_realtime_vitals,get_motion_sample).๐ Device Health & Battery: Real-time battery %, charging state, hardware revision (
RY03_V3.0), firmware version (RY03_3.00.22).๐ก Physical Bidirectional Alerts: Let your AI assistant physically blink the optical LEDs on your ring (
blink_ring) when code finishes compiling or tests pass.๐ค Sleep Staging & Hypnogram: Reads multi-night sleep data (Deep, REM, Light, Awake) via the Big Data channel (
0xBC/ ID0x27).๐ Insight Engine (Recovery Score 0โ100): Computes clinical-grade Recovery Scores, sleep efficiency, and Resting Heart Rate Nadir timing locally.
๐ Step & Activity Telemetry: Daily cumulative steps, estimated calories, and distance.
๐ฎ Raw 3-Axis Accelerometer (12-bit): Stream real-time motion at 25โ350 Hz with pitch, roll, vector magnitude, and tap detection for gesture control or MIDI.
๐ Zero Telemetry / 100% Privacy: No QRing app, no Chinese cloud servers, no account registration.
๐ Quickstart Installation
1. Clone & Install
git clone https://github.com/orviwan/mcp-for-colmi-smartring.git
cd mcp-for-colmi-smartring
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -e .๐ค Configuring with AI Assistants (Claude Desktop / Cursor)
A. Claude Desktop
Edit your Claude Desktop configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"smart-ring": {
"command": "/path/to/Colmi/.venv/bin/python",
"args": ["/path/to/Colmi/tools/colmi_mcp.py"],
"env": {
"PYTHONPATH": "/path/to/Colmi",
"COLMI_RING_ADDRESS": "31:31:43:30:A9:00"
}
}
}
}(Tip: If you omit COLMI_RING_ADDRESS, the server will automatically scan and bind to whichever ring is closest).
B. Cursor IDE
In Cursor Settings $\rightarrow$ Features $\rightarrow$ MCP Servers (or in .cursor/mcp.json):
{
"mcpServers": {
"smart-ring": {
"command": "/path/to/Colmi/.venv/bin/python",
"args": ["/path/to/Colmi/tools/colmi_mcp.py"],
"env": {
"PYTHONPATH": "/path/to/Colmi"
}
}
}
}๐ ๏ธ MCP Tools Reference (What the AI Can Do)
Tool Name | Parameters | Description |
|
| Scans for nearby rings and returns names, addresses, and RSSI. |
|
| Reads battery percentage, charging state, hardware & firmware revisions. |
|
| Physically pulses green optical sensor LEDs twice (locator or notification chime). |
|
| Synchronizes ring's internal RTC clock with computer's clock. |
|
| Returns cumulative steps, calories (kcal), and distance (m). |
|
| Pulls sleep hypnogram and calculates Recovery Score (0โ100) with sleep stage breakdown. |
|
| Takes an active optical pulse (Heart Rate BPM or SpO2 %). |
|
| Samples 3-axis accelerometer for 2s (X/Y/Z g-forces, pitch, roll, magnitude). |
๐ป Standalone Command-Line Tools
You can also run all tools directly from your terminal:
# 1. Scan for nearby rings
colmi-scanner
# (or: python tools/colmi_scanner.py)
# 2. Query status & battery
colmi-reader --address 31:31:43:30:A9:00 --info --battery --set-time
# 3. Blink finder LED
colmi-reader --address 31:31:43:30:A9:00 --blink
# 4. Stream real-time 3-axis motion & tap detector
colmi-accel --address 31:31:43:30:A9:00
# 5. Record accelerometer samples to CSV for ML/gesture training
colmi-accel --address 31:31:43:30:A9:00 --csv my_gesture.csv
# 6. Run the Biometric Insight & Recovery Scoring Engine (Demo Simulation)
colmi-insights --demo๐ Deep-Dive Documentation Index
Documentation Guide | Contents |
Full architectural specification, JSON-RPC schemas, and Claude/Cursor conversation scenarios. | |
Physiological reference matrix comparing smart ring insights: HRV (RMSSD vs proxy), Resting Heart Rate nadir timing, sleep architecture, sleep apnea (ODI), temperature deviation, and custom recovery scoring formulas. | |
Teardown analysis, physical specifications, SoC variants (BlueX RF03 vs Realtek RTL8762E), sensors (STK8321, VC30F), battery systems, and SWD debug pads. | |
Byte-level wire protocol specification: 16-byte packet framing, checksum calculation, command tables ( | |
Master comparison matrix across COLMI, Oura Ring 3/4, Ultrahuman Ring AIR, RingConn Gen 1/2, and Samsung Galaxy Ring. Details sensor arrays, pricing, subscription models, cloud APIs, and BLE hackability. | |
Survey of GitHub projects, Python/Go/TypeScript tools, Web Bluetooth apps, custom firmware patches (FasterRawValuesMOD, Nosh118 Low-Latency, 352Hz overdrive), and privacy analysis. | |
Biophysical principles of smart ring sensors, AC/DC PPG signal decomposition, optical pulse oximetry, HRV proxy analysis, and debunking fake metrics (blood pressure, blood glucose, ECG). | |
Step-by-step tutorial on connecting to the ring, querying battery, synchronizing time, and streaming real-time heart rate using Python and | |
How to stream raw 12-bit 3-axis motion data, calculate pitch/roll/g-force, detect taps and wave gestures, and map tilt to virtual mice or MIDI controllers. | |
How to ditch the proprietary QRing app and set up a 100% private, self-hosted telemetry pipeline with SQLite, VictoriaMetrics, Home Assistant, and Grafana. |
๐งช Automated Testing
The repository includes a comprehensive pytest test suite with 20 unit tests verifying packet framing, 8-bit checksum algorithms, 12-bit signed accelerometer math, sleep hypnogram decoders, and MCP tool registrations:
PYTHONPATH=. pytest -v tests/๐ Attributions & Prior Art
This project builds directly upon the reverse-engineering breakthroughs, packet logs, and hardware teardowns conducted by the open-source smart ring research community. We gratefully credit the following upstream projects and authors:
Aaron Christophel (@atc1441): Reverse-engineering the BlueX Micro RF03 SoC, STK8321 accelerometer, VC30F optical sensor, SWD pinouts, and creating the
FasterRawValuesMODfirmware patch and Web Bluetooth flasher (atc1441/ATC_RF03_Ring).Wesley Ellis (@tahnok): Developing the foundational Python BLE client, discovering the 16-byte packet structure and 8-bit checksum algorithm (tahnok/colmi_r02_client).
Tony Smith (@smittytone): Discovering and reverse-engineering the Big Data GATT channel (
DE5BF728...) for multi-night sleep hypnograms and 24-hour SpO2 max/min records (smittytone/RingCLI).Puxtril (@Puxtril): Documenting the complete QRing opcode catalog, device settings, and response schemas reverse-engineered from the COLMI R03 (Puxtril/colmi-docs).
Nosh118 (@Nosh118): Discovering the Realtek RTL8762ESF / RT02R hardware revision, QRing DFU OTA transfer protocol, and motion-to-MIDI mapping (Nosh118/colmi-ring-tools).
Robin O'JW (@robinojw): TypeScript implementation, modular BLE adapters, and test fixture references (robinojw/openring).
Cyril Zakka, MD (@cyrilzakka): Native iOS companion app connecting COLMI rings to Apple HealthKit with 100% local privacy (cyrilzakka/Halo-iOS).
CitizenOneX (@CitizenOneX): 12-bit accelerometer two's complement decoding and wave gesture detection (CitizenOneX/colmi_r0x_controller).
Juan Perez (@perezjuanj): Research into RingConn Gen 2 BLE protocol (perezjuanj/OpenCircuit).
See ATTRIBUTIONS.md for full license notices and upstream project details.
๐ License
This project is licensed under the permissive MIT License โ see the LICENSE file for details.
Available Tools
8 toolsblink_ringA
Causes the green optical biosensor LEDs on the smart ring to blink twice. Can be used as a physical locator ('Find my ring') or as a physical notification signal from the AI.
Inputs: address. Returns: result
get_daily_activityA
Queries the smart ring for step count, estimated calories burned, and distance walked. days_ago: 0 for today, 1 for yesterday, etc.
Inputs: address, days_ago. Returns: result
get_motion_sampleB
Samples the Sensortek STK8321 3-axis accelerometer for 2 seconds. Returns g-force along X, Y, Z, total vector magnitude, pitch, and roll in degrees.
Inputs: address. Returns: result
get_ring_statusA
Connects to the smart ring and queries hardware revision, firmware revision, battery percentage, and current charging status. If address is omitted, automatically finds and connects to the nearest ring.
Inputs: address. Returns: result
get_sleep_and_recoveryB
Pulls multi-night sleep hypnograms (Light, Deep, REM, Awake) from the ring's Big Data service and runs the physiological InsightEngine to compute a 0-100 Recovery / Readiness Score.
Inputs: address. Returns: result
read_realtime_vitalsA
Activates the optical PPG biosensor on the ring to take a live measurement of Heart Rate (BPM) or SpO2 (%). metric: 'heart_rate' or 'spo2' duration_seconds: Duration to sample (10 to 30 seconds recommended). Note: The ring must be worn snugly on a finger with the sensor on the palm side.
Inputs: metric, address, duration_seconds. Returns: result
scan_ringsB
Scans for nearby smart rings over Bluetooth Low Energy. Returns list of discovered rings with device name, MAC address/UUID, and RSSI signal level.
Inputs: timeout_seconds. Returns: result
sync_timeB
Synchronizes the smart ring's internal real-time clock (RTC) with the host system's current time.
Inputs: address. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogโฆ
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose: scanning/discovery, status/battery, time sync, sleep/recovery, daily activity, live vitals, motion sampling, and physical LED signaling. The only mild overlap is scan_rings vs get_ring_status, but their outputs and roles are well separated.
All tool names use snake_case and follow a predictable verb_noun or verb_noun_phrase pattern (scan_rings, get_ring_status, sync_time, read_realtime_vitals). The use of get_, read_, scan_, sync_, and blink_ is consistent and readable.
Eight tools are well-scoped for a smart ring MCP server, covering discovery, status, sync, health metrics, and device actions without feeling bloated or thin. Each tool appears to earn its place.
The surface covers core smart ring workflows: discovery, status, time sync, sleep, activity, live vitals, motion, and physical notification. Minor gaps exist for historical heart-rate/SpO2 retrieval or alarm/notification configuration, but agents can work around these for many use cases.
Maintenance
Related MCP Connectors
Garmin data in Claude: 135 tools โ activities, sleep, HRV, training, workouts. Free, open source.
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Connect ChatGPT, Claude, Cursor or VS Code to your Windows PC: files, terminal, browser, apps.
Real-time chat hub for AI agents โ Claude Code, Cursor, Cline, Codex over MCP or REST.
Related MCP Servers
- AlicenseBqualityBmaintenanceLocal-first MCP server that connects AI agents to your Garmin sleep, HRV, Body Battery, stress, training readiness and activities, keeping tokens on your machine.242484 npm13MIT
- AlicenseBqualityAmaintenanceLocal-first MCP server that connects AI agents to your Oura Ring readiness, sleep, activity, and HRV data. Tokens never leave your machine.27101 npm5MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to query personal health data collected by any wearable or phone fitness app through Android Health Connect or Apple Health, exposing read-only tools for metrics like heart rate, sleep stages, VO2 max, and body composition. It can run locally over USB with nothing stored, or be self-hosted on Cloudflare Workers with D1 to retain history beyond Health Connect's 30-day limit.20 npmMIT
- AlicenseNot gradedqualityCmaintenanceGives Claude and other MCP clients read-only access to Oura Ring data through the Oura API v2, exposing sleep sessions, readiness, activity, stress, heart rate, workouts and long-range trends as queryable tools. It runs locally, evens out the API's quirks, and keeps credentials on the user's machine.MIT