Skip to main content
Glama
kirisawa-subaru

miband-health-mcp

measure_heart_rate

Requests a single live heart-rate reading from a worn Mi Band over Bluetooth, then stops. Use it when you need current heart rate rather than historical data.

Instructions

Request one live heart-rate reading from the connected, worn Mi Band, then stop.

Uses the app's authenticated Bluetooth connection, not the historical database. Reports received_at (host receipt time), start/stop acknowledgments and cleanup errors. No reading may be available if the band is not worn or disconnected. Timeout: 30..90s. Current-state queries prefer a newer successful live reading; daily aggregates remain based on recorded history. Always attempts to stop; check stop_confirmed rather than assuming success. Requires Xiaomi Health to be running with its band connection available.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
timeout_secondsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes far beyond the annotations by disclosing behavioral nuances: it uses authenticated Bluetooth, reports received_at and start/stop acknowledgments and cleanup errors, may return no reading if the band is not worn, has a 30-90s timeout, always attempts to stop, and requires checking stop_confirmed rather than assuming success. This is rich, non-obvious operational guidance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action, then packs every subsequent sentence with relevant operational detail. Nothing feels redundant or decorative, and the format is scannable despite its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one optional parameter and an existing output schema, the description is complete enough to call correctly: it covers prerequisites, failure conditions, timeout bounds, return fields, and stop-confirmation expectations. The agent knows what to expect and how to handle ambiguous outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema only provides a default value for timeout_seconds with no description. The description compensates by stating the valid timeout range (30..90s) and implying that timeout controls how long to wait for the reading. It does not explicitly map the parameter name to its semantics, but it adds meaning the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Request one live heart-rate reading from the connected, worn Mi Band, then stop.' It also distinguishes itself from historical/higher-level queries by clarifying it uses the Bluetooth connection rather than the historical database, and notes how current-state queries versus daily aggregates relate to its output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: it is for a single live reading, requires Xiaomi Health running and the band connected, and is not a historical database query. It also explains that current-state queries prefer a newer successful live reading while daily aggregates use recorded history, which routes the agent semantically. However, it does not explicitly name sibling tools or state 'use X instead' for specific alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.