healthkite-mcp, which discovers the iPhone with Bonjour/mDNS and opens the TLS-PSK channel.
Addressing
Users do not copy an IP address. HealthKite MCP advertises a DNS-SD service:8080, configurable in Settings.
Endpoints
| Method | Path | Purpose |
|---|---|---|
GET | / | Status snapshot |
GET | /workouts | Paginated workout summaries |
GET | /workouts/{uuid} | Full columnar workout detail |
GET | /quantity-types | Catalog of standalone HealthKit quantity types |
GET | /quantity/{type} | Standalone quantity series, columnar |
GET | /sleep | Reconciled nightly sleep sessions |
GET | /day-snapshot/{date} | Single-day overview (matches iOS Day view numbers) |
405 Method Not Allowed with Allow: GET. Unknown paths return 404 Not Found.
Response shapes
All responses share three conventions:- HealthKit-native field names. No invented vocabulary. See Wire format.
sampleEncoding: "columnar-v1"— discriminator at the top of any response containing sample series. Future versions bump the suffix.sourcesarray +srcindices — provenance is hoisted. See Provenance hoisting.
Errors
Unauthorized or Unreachable tool errors.
Query parameters are forgiving: bad limit/offset values clamp to defaults. Path parameters like /workouts/{uuid} or /day-snapshot/{date} do enforce shape (a malformed UUID won’t match anything; a malformed date returns 400 bad_date).