# Threshold: Garmin MCP Server > Threshold is an open-source, self-hosted Model Context Protocol (MCP) server that connects Garmin Connect data to AI assistants such as Claude, ChatGPT, Cursor, VS Code, Codex and Gemini CLI. It uses Garmin's official Personal API (no password), runs free on Cloudflare Workers, and computes training and recovery analysis in code: readiness, HRV baseline, training load (CTL/ATL/TSB, ACWR), best efforts, aerobic decoupling, and VO2 max decoded from FIT files. Key facts: - License: MIT. Repository: https://github.com/KareemmSayed/Threshold - Hosting: the user's own Cloudflare account (Workers Free plan is enough); one-click "Deploy to Cloudflare" button. - Auth: OAuth 2.1 (dynamic client registration, PKCE) for Claude and ChatGPT on web, desktop and mobile; bearer access key for config-file clients; mcp-remote for stdio-only clients. - Data source: Garmin Personal API (read-only). Single user only, per Garmin's terms. - Storage: Cloudflare D1 archive with full history and a read-only SQL tool. - Privacy: GPS coordinates and personal identifiers are removed from tool output by default. ## Docs - [README](https://github.com/KareemmSayed/Threshold/blob/main/README.md): features, quick start, client setup, FAQ - [Connect your AI](https://github.com/KareemmSayed/Threshold#connect-your-ai): Claude, ChatGPT, Claude Code, Cursor, VS Code, Codex, Gemini CLI, Windsurf, mcp-remote - [Security](https://github.com/KareemmSayed/Threshold/blob/main/SECURITY.md): threat model and key rotation ## Tools - daily_briefing: readiness today from HRV, resting HR, sleep, Body Battery, training form and load ramp versus personal baselines - recovery_analysis: HRV on a 60-day ln(rMSSD) baseline, resting-HR drift, sleep versus usual - training_load: CTL, ATL, TSB, ACWR, monotony, strain, weekly load by sport - weekly_report: week-by-week volume, intensity split, recovery, week-over-week change - metric_trend: trend and previous-period comparison for any metric - analyze_activity: FIT-file analysis (splits, HR zones, best efforts, decoupling, NP/IF/TSS, hidden VO2 max) - personal_records: fastest distances and power curve across history - list_activities, get_health_data, get_day_detail, get_activity, get_profile, query_archive, sync_now, server_status, garmin_api_get ## Optional - [Garmin Personal API](https://developer.garmin.com/gc-developer-program/personal/personal-api) - [Model Context Protocol](https://modelcontextprotocol.io)