About morningform
morningform is a stdio MCP proxy connecting Claude Code to the MorningForm HTTPS MCP server. It is for users who need a local MCP connection to MorningForm; the README does not describe the available tools or server capabilities.
Key features
- 01stdio MCP proxy
- 02Connects to MorningForm HTTPS MCP server
- 03Bridge for Claude Code
Use cases
- 01Connect Claude Code to MorningForm's MCP server
MCP support
It acts as a stdio proxy between Claude Code and the MorningForm HTTPS MCP server. The input does not list the MCP tools or resources it proxies.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @morningform/mcpMORNINGFORM_TOKENSecretBearer token issued from https://morning-form.vercel.app/settings/integrations/claudeMORNINGFORM_URLServer endpoint override. Defaults to the production MorningForm host. Only override for local dev — controls where your bearer token is sent.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMorning 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:
[email protected]
Current branch workflow
main: built MVPfeat/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:
Metrics
- Activation funnel (signup → first grounded answer → retained):
npx tsx scripts/metrics/activation-funnel.ts --signup-since 2026-03-22 --signup-until 2026-04-21. Prints CSV + human-readable summary. Seedocs/plans/2026-04-21-002-feat-activation-funnel-instrumentation-plan.md.
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.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.