Skip to main content
Glama
feneute

Fernanda Health

by feneute
README.md
# Fernanda Health — private health-data MCP server

A private, read-only [Model Context Protocol](https://modelcontextprotocol.io) server that lets Claude
retrieve your own Oura Ring (and later Withings) health data for a daily check-in.

- **Private & self-hosted** on your own Cloudflare account.
- **Read-only.** It only *reads* your data; it can never change anything.
- **Authenticated.** Claude connects only after passing an OAuth login gated by a password you set.
  Nothing is exposed without authentication.
- **No secrets in code.** All tokens/passwords live as encrypted Cloudflare secrets.

## What it exposes

| Tool | What it returns |
|------|-----------------|
| `get_daily_health_summary(date?)` | Normalized daily metrics + 7/30-day baselines (Oura now; Withings reserved). |
| `get_oura_trends(days?, endDate?)` | Daily time-series + latest/7-day/30-day summaries for key Oura metrics. |
| `oura_connection_check()` | Confirms the server can reach Oura and which data collections are returning. |

The server only retrieves and normalizes data. All interpretation is done by Claude.

## Deploy (one click)

[![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/feneute/fernanda-health-mcp)

Clicking the button copies this repo into your GitHub, creates the KV namespaces and Durable Object
automatically, and deploys the Worker.

## After deploying — set your secrets

In the Cloudflare dashboard: **Workers & Pages → your Worker → Settings → Variables and Secrets**,
add these as type **Secret**:

| Secret | Value |
|--------|-------|
| `LOGIN_PASSWORD` | A strong password. You'll type this once when connecting Claude. |
| `OURA_TOKEN` | Your Oura [Personal Access Token](https://cloud.ouraring.com/personal-access-tokens) (read-only). |

(Optional: `TIMEZONE`, defaults to `America/Los_Angeles`.)

## Connect Claude

Claude → **Settings → Connectors → Add custom connector** →
Name: `Fernanda Health`, URL: `https://<your-worker>.<subdomain>.workers.dev/mcp`.
Claude will open the login page; enter your `LOGIN_PASSWORD` to authorize.

## Tech

Cloudflare Workers · `agents` McpAgent (Durable Object) · `@cloudflare/workers-oauth-provider` ·
`@modelcontextprotocol/sdk` · TypeScript. Deployed via GitHub.