Back to Directory/Developer Tools

io.github.contactxyz-admin/morningform

stdio MCP proxy for MorningForm — bridges Claude Code to MorningForm HTTPS MCP server.

Developer ToolsTypeScriptv0.1.0

Morning Form

Morning Form is a premium mobile-first state-optimization web app covering assessment, profile generation, protocol recommendation, daily guidance, check-ins, insights, and wearable integrations.

Local development

cd /Users/reubenselby/Desktop/morning-form
npm install
npx prisma db push
npm run db:seed
npm run dev

App URL:

http://localhost:3000

Demo user seeded locally:

demo@morningform.com

Current branch workflow

  • main: built MVP
  • feat/real-health-oauth: review branch for real provider connection wiring

Open PR:

https://github.com/contactxyz-admin/morning-form/pull/1

Health integrations

Morning Form currently supports:

  • Terra-backed Apple Health and Garmin connection flow
  • Direct OAuth scaffolding for Whoop, Oura, Fitbit, and Google Fit
  • persisted provider connections via Prisma
  • callback routes and token exchange when credentials are configured
  • graceful mock fallback when credentials are absent

Detailed provider setup lives in:

docs/HEALTH_PROVIDER_SETUP.md

Metrics

Retest loop

The retest loop (off by default, behind RETEST_LOOP_ENABLED) runs the "return leg": a lab panel completes a Draw, the next retest is scheduled, a daily Vercel cron (/api/cron/retest-nudge, gated by CRON_SECRET) sends a capped nudge sequence, and retention-to-retest is measured (nudge-attributed = loop-caused). The metrics CLI above appends a retest-retention section when the flag is on. Backfill existing users (run dark, before the flip): npx tsx scripts/retest/backfill-baseline-draws.ts (dry run) then --apply. Tunables live in src/lib/retest/constants.ts. See docs/runbooks/retest-loop-go-live.md and docs/plans/2026-06-17-001-feat-return-leg-retest-loop-plan.md.

Retrieval

Hybrid retrieval is enabled when an embedding provider is configured. It embeds only SourceChunk.text, stores one VectorEmbedding per chunk, and keeps search_graph_nodes on the same public contract while ranking with vector + lexical + graph RRF. Set HYBRID_RETRIEVAL_ENABLED=false to roll back to legacy lexical/graph behavior.

Production rollout:

npx prisma generate
npx prisma db push
npx tsx scripts/backfill-embeddings.ts --dry-run --estimate
npx tsx scripts/backfill-embeddings.ts --batch 80

See docs/runbooks/hybrid-retrieval-production.md and docs/runbooks/backfill-embeddings.md.

Installation

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

bash
npx -y @morningform/mcp

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-contactxyz-admin-morningform": {
      "command": "npx",
      "args": [
        "-y",
        "@morningform/mcp"
      ]
    }
  }
}

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

@morningform/mcpnpm

Compatible MCP Clients

io.github.contactxyz-admin/morningform 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