Build agents on
real health data.
freddy is a personal multi-wearable MCP server. Sign a user up, connect their wearables, and query sleep, HRV, recovery, and workouts. All over the MCP standard, with an OAuth device flow built for headless clients and a one-command CLI.
npx @freddy-coach/cli loginOne server. Any agent.
Real wearable data over an open standard, with the auth and write tools a headless client needs.
Real data, 19+ sources
Polar, Oura, Garmin, WHOOP, Withings and more. The user's own accounts, never simulated.
The MCP standard
No proprietary API to learn. Any client that speaks MCP can read a user's data with one bearer token.
Device flow for headless
RFC 8628 device authorization plus dynamic client registration. No redirect_uri, no browser callback to wrangle.
Scoped, auditable write tools
Connect, disconnect, and sync wearables conversationally. Every call is scoped and lands in the user's audit log.
Three commands.
The CLI wraps device-flow auth, token storage and refresh, the wearable connect handoff, and MCP calls.
npx @freddy-coach/cli login
npx @freddy-coach/cli connect oura
npx @freddy-coach/cli query --metrics hrv,sleep_duration --days 7No terminal? Any MCP client can drive freddy over raw HTTP: register a client, start the device flow, poll for a token, then call /mcp. See the headless setup guide.
Ask for exactly what you need.
The user approves scopes at sign-in. Omit scope and you get mcp only.
| Scope | Grants |
|---|---|
| mcp | MCP tool access: the read tools plus the three write tools. |
| account:read | Profile, plan and subscription, connections, OAuth grants, email prefs, sync status. |
| account:write | Rotate MCP token, email prefs, billing checkout/cancel, integration requests, chat. |
| connections:write | Connect, disconnect, and sync wearables. |
| audit:read | Audit log plus bulk health-data export. |
Read and write, conversationally.
All under the mcp scope. Queries plus three write tools for managing wearables.
| Tool | Purpose |
|---|---|
| get_profile | User metadata, connected wearables, plan. |
| list_metrics | Available metrics with counts, date ranges, units, and sources. |
| query_metrics | Fetch metrics by name and date range. |
| connect_wearable | Returns a verification URL for OAuth providers, or stores an API key. |
| disconnect_wearable | Disconnects and wipes synced data. Destructive. |
| sync_provider | Triggers an incremental sync. Fire-and-forget. |
| accept_terms | Records the user's acceptance of the current Terms and Privacy version. |