
Delx Living Body
io.github.davidmosiahPublished by GitHub account davidmosiahv0.3.0Updated Oct 24, 2026
Meta-MCP that auto-detects installed wellness connectors and composes them into one body data layer.
Overview
A local meta-MCP that detects installed wellness connectors and composes them into one body data layer for training, recovery, sleep and nutrition questions.
- What you can do
- Check which of 15 known wellness connectors are installed and get install hints for missing ones, plus a capabilities matrix and self-description. Ask a plain-language readiness question and get a synthesized recommendation with a rule-based reasoning trace and per-source confidence. Build a daily Markdown brief from each connector's daily summary. Merge sources into a normalized wellness context shape for downstream agents. Run a zero-secret demo with synthetic data.
- When to use it
- Useful when you already run several wellness MCP servers (such as WHOOP, Oura, Garmin or nutrition) and want one entry point that answers questions like whether to train hard today, instead of orchestrating each server separately.
- Requirements
- Runs locally via npx (Node.js). No auth of its own; each child connector handles its own credentials. Child connectors are spawned with npx, so network access is needed to fetch packages. Optional environment variables set the cache path, detection TTL, cache disabling and npm runner. Optional loopback-only HTTP transport.
Installation
In SourceWeft
- Open Delx Living Body in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
delx-living-body
Meta-MCP that turns 15 wellness MCPs into one unified body data layer for AI agents.
[npm] [GitHub Release] [npm downloads] [license] [conduct] [Delx Wellness] [Verified Release Index]
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:
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).
Install
That'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)
One 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:
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)
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)
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
CLI
Use with Claude Desktop
Use with Cursor
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:
Copy skill/SKILL.md into your agent skills dir.
Source: README.md at commit f795276
Tools
0Version history
1- v0.3.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts