Health Hub MCP Server
Click on "Install 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., "@Health Hub MCP Serverwhat was my sleep duration and stages last night?"
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.
Health Hub MCP Server
Personal MCP server that ingests Health Connect data from an Android companion app and exposes aggregated health metrics to LLM clients over the Model Context Protocol.
Android 14+ ──POST /ingest/health──────▶ ┌──────────────────┐
(companion app) │ │
Android 14+ ──POST /ingest/hc-webhook──▶ │ Health Hub │──MCP──▶ LLM
(HC Webhook client) │ SQLite │
browser ──GET /debug──▶ └──────────────────┘The companion app reads raw records from Health Connect and pushes them to this server. The server normalizes, deduplicates, and rolls them up into daily aggregates, then exposes them to LLM clients (Claude, Perplexity, OpenCode) through five MCP tools. Raw events are never handed to the model by default — only rolled-up summaries with explicit caveats so the model cannot silently fabricate missing data.
Requirements
Android 14+ with life-dashboard-companion-app v1.4.0+
Any host with Docker and Docker Compose
Domain with TLS (Caddy handles certificates automatically)
Related MCP server: Fitbit Health MCP Server
Quick Start
cp .env.example .env
# Edit .env: set DEVICE_TOKEN and MCP_TOKEN (run: openssl rand -hex 32)
docker compose up -d --build
curl -s http://localhost:8000/healthCompanion Apps
The server accepts health data from two Android apps via separate endpoints. Both write to the same database and use content-hash deduplication — sending the same data from both apps will not double-count.
App | Endpoint | Format | Best for |
life-dashboard-companion-app v1.4.0 |
|
| Incremental sync, 200 records per type |
|
| Full sync, all types in one POST |
Both endpoints require:
Authorization: Bearer <DEVICE_TOKEN>
Content-Type: application/json; charset=utf-8The HC Webhook endpoint also accepts 5 additional Health Connect types not present in the companion app: skin_temperature, basal_metabolic_rate, vo2_max, intermenstrual_bleeding, body_water_mass. Unknown type keys are silently tolerated — only types in the server's registry are processed.
Connect Your Phone
See docs/ANDROID.md for step-by-step instructions.
Connect an LLM
Add to Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"health-hub": {
"url": "https://your-domain.example.com/mcp",
"headers": {"Authorization": "Bearer <YOUR_MCP_TOKEN>"}
}
}
}For Perplexity, OpenCode, or other MCP clients, use the same URL and token. The Authorization header must include the Bearer prefix — the server rejects requests without it.
MCP Tools
Tool | Description |
| Daily health rollups: steps, distance, calories, sleep, HR, weight |
| Time series for any metric with day/week bucketing |
| Detailed sleep sessions with stages (deep, REM, light, awake) |
| Per-type sync status: last event, coverage, gaps, errors |
| Raw payload metadata and app diagnostics |
Each tool returns an object (never a bare array) with a caveats: string[] field that warns the model about missing days, overlapping records, or aggregation changes. Responses are capped at 400 objects.
Known Limitations
No record IDs from Health Connect — deduplication is content-hash based
Multiple data sources (phone + watch) can cause double-counting for cumulative metrics. The server suppresses overlapping intervals, but this is a heuristic. Check the comparison panel on
/debug.App sync cursor only moves forward — records added to Health Connect retroactively may not arrive
Health Connect does not provide data older than 30 days without re-authorization — the server IS your archive. Back up
data/.
License
MIT — see LICENSE.
Companion App
life-dashboard-companion-app v1.4.0
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityAmaintenanceRead-only MCP server that exposes Apple Health data (steps, workouts, sleep, etc.) from a local SQLite store, allowing AI agents to query health metrics without sending data to hosted services.3Apache 2.0
- AlicenseAqualityBmaintenanceProvides read-only access to Fitbit health data (sleep, steps, heart rate, HRV) via local sync with Google Health API. Enables querying daily health summaries and trends through MCP tools without uploading data to cloud.6MIT
- Flicense-qualityBmaintenancePrivate, read-only health data bridge that reads from Android Health Connect and exposes heart rate, steps, sleep, and other health metrics to ChatGPT via MCP tools.
- Alicense-qualityBmaintenanceRead-only MCP server exposing Android phone timeline data, including events, hourly/daily features, data coverage, and gaps, so Claude can answer questions about observed phone activity.MIT
Related MCP Connectors
63 tools for Apple Health, Fitbit, Oura & Health Connect data in Claude, ChatGPT, Grok & Mistral.
MCP server for Withings health data — sleep, activity, heart, and body metrics.
A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/naymEvg/health-conect-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server