Back to Directory/Developer Tools

io.github.davidmosiah/wellness-cycle-coach

Local-first cycle coach MCP for phase-aware nutrition and training context.

Developer ToolsTypeScriptv0.3.5

⚡ One-command install — pick your runtime:


HTTP (v2 stateless)

Default is stdio. Optional Streamable HTTP — no session id, JSON responses, loopback only:

npx -y wellness-cycle-coach --http
# GET  http://127.0.0.1:3000/health
# POST http://127.0.0.1:3000/mcp   (sessionless)

Env: WELLNESS_CYCLE_COACH_HOST, WELLNESS_CYCLE_COACH_PORT, WELLNESS_CYCLE_COACH_TRANSPORT=http.

Overview

Pass in period start dates (from any source — Apple Health Cycle, Garmin women's health, Fitbit female health, or direct user input) and get back the user's current phase plus phase-aware recommendations for nutrition, training, and hydration. Stateless — the MCP itself never persists cycle data. Supports PCOS-aware mode via the cycle_irregular flag (v0.3.3) — accepts cycles 21-90 days, caps confidence at 'low', and returns a luteal_extended placeholder when standard 14-day-luteal math no longer applies.

Try It In 60 Seconds

npx -y wellness-cycle-coach doctor

# Or use the MCP directly via your client:
# {
#   "mcpServers": {
#     "wellness-cycle-coach": {
#       "command": "npx",
#       "args": ["-y", "wellness-cycle-coach"]
#     }
#   }
# }

Then in your agent:

{
  "name": "cycle_full_report",
  "arguments": {
    "history": [
      { "start_date": "2026-04-01" },
      { "start_date": "2026-04-29" }
    ]
  }
}

Returns current phase + nutrition emphasize/moderate/avoid + training style/intensity + hydration target + next-period estimate.

Tools (17)

ToolPurpose
cycle_agent_manifestRuntime contract
cycle_capabilitiesPhases, upstream connectors, metrics
cycle_connection_statusHealth + stateless reminder
cycle_privacy_auditWhat's logged (nothing) vs sent out (nothing)
cycle_data_inventoryPhase taxonomy + metric catalog
cycle_estimate_phaseCurrent phase + cycle day + confidence
cycle_predict_next_periodAverage cycle length + next-period date
cycle_phase_guidanceRecommendations for any specific phase
cycle_recommend_nutritionPhase-aware nutrition for current phase
cycle_recommend_trainingPhase-aware training for current phase
cycle_full_reportSingle-call combined report
cycle_irregular_checkPCOS / irregular-cycle screening from history
cycle_quickstartMinimal getting-started walkthrough
cycle_profile_getRead the shared Delx Wellness profile (read-only)
cycle_profile_updatePersist opt-in profile prefs (requires explicit user intent)
cycle_onboarding11-question onboarding flow for the shared profile
cycle_demoSample request/response for quick exploration

The 4-phase model

PhaseWhenEnergyNutrition emphasisTraining
menstrualdays 1 → period end (~5)LowerIron + magnesium + omega-3Restorative (yoga, walking, mobility)
follicularpost-period → ovulation - 2Rising / peakComplex carbs + lean protein + fermented foodsBuild (strength, sprints, new skills)
ovulatoryovulation ± 1 dayPeakAntioxidants + zincPeak (PRs, plyometrics)
lutealovulation + 2 → next periodFallingB vitamins + magnesium + complex carbsEndurance + technique

Why stateless?

Menstrual cycle data is medical-record sensitive. The strongest privacy guarantee is to never store it. Other apps (Flo, Clue) live by hoarding cycle data on their servers; this MCP refuses to participate. The agent passes data in, the coach returns guidance, the data evaporates.

Cross-connector wedge

Apple Health Cycle → period dates       ┐
Garmin women's health → cycle context   ├─→ wellness-cycle-coach → phase + guidance
Fitbit female health → period dates     ┘                                  │
                                                                            │
                                                                            ↓
                                                            wellness-nourish coach
                                                            (phase-aware meal planning)
                                                                            │
                                                            whoop-mcp / garminmcp / ouramcp
                                                            (recovery-aware late-luteal load adjustments)

Privacy

  • ✅ Stateless for cycle data — period dates are never persisted; they stay in process memory for the duration of the call and evaporate.
  • ✅ Opt-in local preferences — the cycle_profile_* tools can persist non-secret wellness preferences (name, goals, devices, training/nutrition context) to ~/.delx-wellness/profile.json, but only when the user explicitly asks (cycle_profile_update requires explicit_user_intent: true). Secrets (tokens, API keys, biomarkers) are rejected at write time.
  • ✅ Offline-capable — pure-function computation. No outbound calls.
  • ✅ Tool-arg-only cycle data — the agent passes period history in via the MCP request and it stays in process memory.

Run wellness-cycle-coach doctor to inspect.

What this is NOT

  • Not medical advice or diagnosis.
  • Not a fertility tracker or contraception aid (consult a clinician).
  • Not a replacement for talking to a healthcare provider about painful, abnormal, or absent periods.
  • PCOS / irregular cycles supported via cycle_irregular: true (v0.3.3), but this is NOT a substitute for clinical care — see clinician for fertility, contraception, or symptom-management decisions.
  • Not specialized for perimenopause or post-pill (yet — see CONTRIBUTING.md).

Roadmap

  • v0.2 — adapters for apple-health-mcp / garminmcp / fitbitmcp so agents can pull period history with one MCP call.
  • v0.3 — symptom logging surface + symptom-aware guidance adjustments (cramps → magnesium emphasis, mood drop → B-vitamin emphasis).
  • v0.4 — non-English locale support starting with pt-BR.

📧 Contact & Support

License

MIT — see LICENSE.

wellness-cycle-coach is independent research-software. Not affiliated with Clue, Flo, Stardust, or any other cycle-tracking app. Not medical advice.

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 wellness-cycle-coach call cycle_connection_status --json '{}'

Copy skill/SKILL.md into your agent skills dir.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y wellness-cycle-coach

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-davidmosiah-wellness-cycle-coach": {
      "command": "npx",
      "args": [
        "-y",
        "wellness-cycle-coach"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

wellness-cycle-coachnpm

Compatible MCP Clients

io.github.davidmosiah/wellness-cycle-coach works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More