COLMI Smart Ring MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| COLMI_RING_ADDRESS | No | The Bluetooth address of the COLMI smart ring. If omitted, the server will automatically scan and bind to whichever ring is closest. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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. |
| 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. |
| blink_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. |
| sync_timeB | Synchronizes the smart ring's internal real-time clock (RTC) with the host system's current time. |
| 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. |
| 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. |
| 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. |
| 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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.