Delx Living Body
Delx Living Body is a meta-MCP server that unifies data from up to 15 wellness connectors (Whoop, Oura, Garmin, etc.) into a single interface for AI agents. It uses deterministic, rule-based synthesis (no LLM calls) to ensure stable, privacy-first outputs.
With this server you can:
Ask wellness questions (
living_body_ask) – Get synthesized answers with reasoning trace and confidence from all installed connectors.Get a daily wellness brief (
living_body_daily_brief) – Receive a Markdown summary aggregating daily highlights.Compose a unified wellness context (
living_body_compose_context) – Fetch a normalizeddelx-wellness-context/v1data shape merging recovery, sleep, body battery, and more.Detect installed connectors (
living_body_status) – See which local wellness connectors are available without making API calls.Check health of all connectors (
living_body_health_check) – View status and install hints for all 15 supported connectors.View server capabilities (
living_body_capabilities) – Self-description including per-connector availability matrix and recommended agent flows.Onboard AI agents (
living_body_agent_manifest) – Machine-readable instructions for clients like Claude, Cursor, etc.Quick connection readiness (
living_body_connection_status) – Snapshot of connector detection without vendor API calls.Browse data inventory (
living_body_data_inventory) – Static inventory of supported domains and privacy modes.Filter by source – Restrict composition to specific connectors.
Control privacy – All data tools support
summary,structured, orrawprivacy modes.Multiple transports – Supports stdio (default) and HTTP.
CLI commands – Run as MCP server, demo mode, doctor (detect connectors), setup, version.
The server is privacy-first: it never reads child tokens, strips secrets, and children run with structured privacy modes.
Allows AI agents to access Apple Health data including steps, sleep, and other health metrics via the Apple Health MCP connector.
Integrates with Eight Sleep to retrieve sleep tracking and smart bed data via the Eight Sleep MCP connector.
Provides access to Fitbit health and fitness data such as activity, sleep, and recovery metrics via the Fitbit MCP connector.
Enables AI agents to query Garmin health metrics like recovery, body battery, and training data via the Garmin MCP connector.
Connects to Google Health to access health and wellness data via the Google Health MCP connector.
Allows AI agents to use Samsung Health data including steps, sleep, and activity via the Samsung Health MCP connector.
Integrates with Strava to retrieve training and activity data such as runs, rides, and more via the Strava MCP connector.
delx-living-body
Meta-MCP that turns 15 wellness MCPs into one unified body data layer for AI agents.
Today, answering "should I train hard today?" forces an agent to orchestrate WHOOP recovery, Garmin Body Battery, Oura sleep, Nourish nutrition, and cycle phase across five separate MCP servers. That's brittle for users and confusing for the agent.
delx-living-body is one MCP server that:
Auto-detects which of 15 Delx Wellness connectors you already have installed locally — no manual config
Composes parallel calls to the right subset
Synthesizes a natural-language answer plus a structured reasoning trace and per-source confidence — using rule-based reasoning, no LLM calls
Install it once. Get a unified body data layer. Works with whatever wellness MCPs you already have.
Compose matrix (which children have *_series vs summary-only): docs/compose-matrix.md.
Pin drift: docs/pin-drift.md.
If it helps your agent workflow, star the repo. Stars make the single-entry Delx Wellness path easier for other AI builders to find.
HTTP (v2 stateless)
Default is stdio. Optional Streamable HTTP — no session id, JSON responses, loopback only:
npx -y delx-living-body --http
# GET http://127.0.0.1:3030/health
# POST http://127.0.0.1:3030/mcp (sessionless)Env: LIVING_BODY_MCP_HOST, LIVING_BODY_MCP_PORT, LIVING_BODY_MCP_TRANSPORT=http.
Try it now, no accounts —
npx -y delx-living-body demo("Should I train hard today?")Run it in Claude · Cursor · ChatGPT · Hermes · OpenClaw — see agent setup examples
Local-first —
delx-living-bodynever reads your tokens; children read their own creds (privacy)Which connector should I use? — start at the Delx Wellness front door
The three flagship connectors this composes over: google-health-mcp (google-health-mcp-unofficial), garmin-mcp (garmin-mcp-unofficial), and wellness-nourish (wellness-nourish).
Related MCP server: Garmin MCP
Install
npx -y delx-living-bodyThat's the whole install. No OAuth flow, no API keys — delx-living-body has no auth of its own. Each child connector handles its own credentials.
See the full agent demo → "Should I train hard today?" (no accounts needed)
npx -y delx-living-body demoOne command, no clone. The demo boots the real MCP server, fakes three
installed connectors (WHOOP + Oura + Garmin, backed by a bundled stub child that
carries synthetic body data), and drives it over stdio exactly the way an agent
does. No real accounts, API keys, or network. Add --scenario=red to see the
low-readiness ("back off today") path; demo --help lists options. Captured
output lives at
examples/demo-what-should-i-do-today.txt:
2) living_body_ask question="What should I do today?"
────────────────────────────────────────────────────────────────
Recommendation:
Today at a glance: recovery 74, sleep 83, body battery 68.
Confidence: high Sources: whoop, oura, garmin
3) living_body_ask question="Should I train hard today?"
────────────────────────────────────────────────────────────────
Recommendation:
Green light for a hard session. Recovery and sleep both support high intensity.
Confidence: high Sources: whoop, oura, garmin
Reasoning trace (rule-based, no LLM):
Intent classified as: training_readiness
- (rec_high) Recovery 74 supports a high-intensity day.
- (sleep_good) Sleep score 83 is supporting recovery.One question in → one synthesized answer composed across all three connectors, with a stable reasoning trace and zero LLM calls. This is the Body-vertical entrypoint: install once, ask in plain language, get a unified answer.
Tools (6)
Tool | Purpose |
| Which connectors are detected? Safe; no subprocess spawning. |
| Main tool. Spawns detected children in parallel, returns synthesized answer. Requires |
| Markdown brief built from each connector's |
| Normalized |
| All 15 known connectors with install hints for missing ones. |
| Self-description + per-connector availability matrix. |
How detection works
For each known connector, delx-living-body checks:
~/.<vendor>-mcp/tokens.jsonexists~/.<vendor>-mcp/config.jsonexists (password-based connectors like Eight Sleep)An export file at the path in the vendor's env var (Apple Health, Samsung Health)
~/.delx-wellness/profile.jsonlists the device
If any check passes → detected. Otherwise → missing (with install hint). Stateless connectors (Cycle Coach) are always considered available.
Detection results cache for 60s (DELX_LIVING_BODY_DETECT_TTL).
Known connectors (15)
ID | Package | Category |
|
| recovery |
|
| sleep |
|
| recovery |
|
| training |
|
| recovery |
|
| multi |
|
| multi |
|
| multi |
|
| multi |
|
| training |
|
| sleep |
|
| nutrition |
|
| environment |
|
| cycle |
|
| glucose |
Composition flow
When living_body_ask or living_body_compose_context runs:
Detect installed connectors.
For each, spawn it as a child MCP via
npx -y <package>over StdioClientTransport.Call the child's
*_wellness_context(or*_daily_summary) tool in parallel.Normalize results into a
delx-wellness-context/v1shape with merged scores.Run the synthesizer (rule-based, offline) to produce a recommendation + reasoning trace.
Critically: delx-living-body never calls an LLM. Synthesis is deterministic so downstream agents can reason on top of a stable trace.
Synthesizer rules
14 heuristic rules, each with a stable rule_id that appears in the reasoning trace:
rec_low/rec_mid/rec_high— recovery score bandsbb_low/bb_high— Garmin Body Battery bandssleep_poor/sleep_good— sleep score bandsstrain_high— WHOOP strain ≥ 18cycle_luteal/cycle_follicular— cycle phase signalsload_high/load_low— aggregate training loadno_data— nothing installed, advisory onlyconflict— sources disagree → low confidence
Privacy & security
delx-living-bodynever reads child connector tokens or config files — children read their own credentials independently.Upstream secret env vars (
*_CLIENT_SECRET,*_ACCESS_TOKEN,*_REFRESH_TOKEN,*_API_KEY,*_PASSWORD) are stripped before spawning children.Children are spawned with
privacy_mode=structuredby default.rawis only honored when the caller setsexplicit_user_intent: trueonliving_body_ask.Child responses are not logged verbatim — only counts and summary fields.
Per-child call timeout: 30s. A hanging child is marked
timeoutand skipped.Cache lives at
~/.delx-living-body/cache.sqlite(chmod 600), 5 min TTL. Disable withDELX_LIVING_BODY_NO_CACHE=true.No phone-home from
delx-living-bodyitself.
See SECURITY.md for the full threat model.
Env vars
Variable | Default | Purpose |
|
| Detection cache TTL in seconds |
| unset | Disable SQLite response cache |
|
| Override cache path |
|
| Override npm runner for child spawning |
| unset | Override child binary path (testing only) |
|
| HTTP transport bind address |
CLI
living-body-mcp-server # MCP stdio server (default)
living-body-mcp-server --http # Local HTTP transport
living-body-mcp-server doctor # Detect installed connectors
living-body-mcp-server doctor --json # JSON output
living-body-mcp-server setup # Print profile path + install hints
living-body-mcp-server demo # Zero-secret end-to-end demo (--scenario=red, --help)
living-body-mcp-server versionUse with Claude Desktop
{
"mcpServers": {
"living-body": {
"command": "npx",
"args": ["-y", "delx-living-body"]
}
}
}Use with Cursor
{
"mcpServers": {
"living-body": { "command": "npx", "args": ["-y", "delx-living-body"] }
}
}Not medical advice
Outputs are operational context for training/recovery/sleep/nutrition agents. Not for medical diagnosis or clinical use.
License
MIT — see LICENSE. Built by David Mosiah.
Dense series
When child connectors expose *_series tools (agent-safe-series/v1), prefer them over raw stream dumps.
Skill or MCP
Same package, two doors. MCP registers tools on stdio/HTTP. The skill can drive the same tools through the CLI when the client has no MCP:
npx -y delx-living-body call living_body_connection_status --json '{}'Copy skill/SKILL.md into your agent skills dir.
Available Tools
9 toolsliving_body_agent_manifestLiving Body — Agent ManifestARead-onlyIdempotent
Machine-readable install and operating instructions for AI agents. Call first when onboarding.
Inputs: client, response_format.
living_body_askLiving Body — AskARead-only
Ask a wellness question; composes detected connectors in parallel and returns a synthesized answer + reasoning trace. Spawns subprocesses — requires explicit_user_intent.
Inputs: question (required), explicit_user_intent (required), sources, privacy_mode, +1 more. Returns: reasoning, confidence, generated_at, sources_used, +4 more
living_body_capabilitiesLiving Body — CapabilitiesARead-onlyIdempotent
Self-description of this MCP, including the per-connector availability matrix.
Inputs: response_format. Returns: links, tools, creator, project, +8 more
living_body_compose_contextLiving Body — Compose ContextARead-only
Return the normalized delx-wellness-context/v1 shape merged across all detected sources. Spawns child MCP processes — requires explicit_user_intent: true.
Inputs: explicit_user_intent (required), sources, child_tool, privacy_mode, +1 more. Returns: notes, source, per_source, cycle_phase, +11 more
living_body_connection_statusLiving Body — Connection StatusARead-onlyIdempotent
Ready/not-ready snapshot of local connector detection without calling vendor APIs or child data tools.
Inputs: response_format.
living_body_daily_briefLiving Body — Daily BriefBRead-only
Synthetic daily briefing aggregating each detected connector's daily summary/context. Spawns child MCP processes — requires explicit_user_intent: true.
Inputs: explicit_user_intent (required), sources, privacy_mode, response_format. Returns: highlights, generated_at, sources_used, data_snapshot, +2 more
living_body_data_inventoryLiving Body — Data InventoryARead-onlyIdempotent
Static inventory of composed domains, known connectors, privacy modes and recommended first calls. No live child calls.
Inputs: response_format.
living_body_health_checkLiving Body — Health Check (all known connectors)ARead-onlyIdempotent
Returns status for every known connector — including missing ones — with install hints.
Inputs: response_format. Returns: connectors, total_known, generated_at, total_active, +1 more
living_body_statusLiving Body — Connector DetectionARead-onlyIdempotent
Detect which Delx Wellness connectors are installed locally. Safe, no subprocess spawning.
Inputs: response_format. Returns: missing, detected, total_known, generated_at, +2 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Three tools—connection_status, status, and health_check—all report connector availability and can be easily confused. Similarly, agent_manifest, data_inventory, and capabilities all serve self-description/onboarding purposes, making the tool boundaries unclear.
All tools share the living_body_ prefix and snake_case, which is helpful, but the pattern is mostly noun phrases with occasional verb forms like ask and compose_context. The naming is readable but not a consistent verb_noun convention.
Nine tools is within the ideal range, but several status and metadata tools overlap significantly, making the set feel slightly padded. The count is not excessive overall.
The core workflows—discovering connectors, checking health, asking wellness questions, and composing context—are covered. Minor gaps like direct per-connector data access or configuration tools exist, but agents can likely work around them.
Maintenance
Related MCP Connectors
MCP server for Withings health data — sleep, activity, heart, and body metrics.
Single-connection MCP gateway discovering and executing 490+ verified MCP & A2A tools.
Discover, plan and run tools across your connected business systems through one OAuth MCP endpoint
Real-time data APIs for 50+ commerce, grocery, social and maps platforms over one OAuth MCP server
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceExposes personal Garmin wellness data through MCP tools for accessing summary, sleep, HRV, heart rate, stress, body battery, and historical data.MIT
- AlicenseAqualityDmaintenanceMCP server that exposes Garmin Connect health and activity data (steps, sleep, stress, activities, etc.) via tools for querying, analysis, and visualization.17Apache 2.0
- AlicenseAqualityCmaintenanceMCP server for the Withings Health API with per-user OAuth2, enabling users to securely access their own health data (measures, activity, sleep, workouts, heart rate, devices, and goals) and optionally add measurements.12Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables read-only access to Amazfit/Zepp fitness data via the unofficial Zepp cloud API, exposing normalized health and workout metrics to MCP clients.AGPL 3.0