It's Official! Garmin Chat Connector: Talk to Your Garmin Data — From Any AI Chat App on Desktop or Mobile
Ready for review, testing, and feedback
If you own a Garmin watch, you already know how much data it collects — steps, sleep stages, HRV, Body Battery, VO2 Max, training load, and more. The problem has always been accessing that data in a conversational way. You can tap through the Garmin Connect app, but you can’t just ask it a question.
Garmin Chat Connector solves that. It is a cloud-hosted Model Context Protocol (MCP) server that connects your Garmin Connect account directly to AI chat assistants — no local software, no setup files, no configuration. You get a personal MCP URL, paste it into your AI app, and start asking questions about your health data in plain English.
Where Did This Come From?
Garmin Chat Connector is a companion to Garmin Chat for Windows, a desktop app that lets you converse with your Garmin data through Claude for Desktop. The desktop app works great on a PC — but you cannot run a local MCP server from a mobile device.
Garmin Chat Connector is the bridge for mobile (and web). Instead of a locally-running server, it is a hosted MCP endpoint in the cloud. Each user gets a private, token-protected URL that they paste into Claude, ChatGPT, or any other AI tool that supports custom MCP connectors.
Already Using Garmin Chat for Windows? You’re Going to Love This.
If you use Garmin Chat for Windows on your desktop, you already know how useful it is to have a natural language conversation with your Garmin data. Garmin Chat Connector brings that same experience to your phone — no new learning curve, no new app to install.
Here’s all it takes:
Set up the connector once — visit the setup page, enter your Garmin credentials, and get your personal MCP URL (takes about 60 seconds)
Add it to Claude or ChatGPT — paste your MCP URL into the connector settings, from any device or browser
That’s it — the connector is tied to your account, not a specific device
Because the connector is registered at the account level in Claude and ChatGPT, you only need to add it once. Add it in a web browser on your PC and it’s immediately available when you open the Claude or ChatGPT app on your phone — no extra steps, no re-configuring on mobile. Your Garmin data follows you everywhere your AI assistant does.
The same 16 Garmin data tools you rely on in the desktop app are available on any device, through the same AI assistants you already use. Whether you’re at the gym, out for a run, or just checking in on your recovery between meetings — your Garmin data is always a question away.
Currently supported platforms:
What Can You Ask?
Once connected, you can have natural language conversations about your fitness and health data:
“How well did I sleep last night?”
“What’s my Body Battery right now? Should I train hard or take it easy?”
“Show me my runs from the past two weeks.”
“What’s my current VO2 Max and training status?”
“How much water did I log today?”
“Give me a full health snapshot for this morning.”
“Summarize my training load over the last month.”
The connector exposes 16 data tools across five categories:
Daily Overview
Recovery & Wellness
Training Performance
Nutrition & Hydration
Body Metrics & Range Queries
How to Connect
Step 1 — Set Up Your Account
Visit the setup page and enter your Garmin Connect email and password. If your account has two-factor authentication enabled, you’ll be prompted for your MFA code.
Your credentials are used once to obtain OAuth tokens from Garmin Connect — they are never stored. Only the encrypted OAuth tokens are persisted.
After setup you’ll receive a personal MCP URL that looks like:
https://your-instance.railway.app/garmin/?token=abc123...
Keep this URL private. It is the key to your data. You can revoke it at any time from the disconnect page.
Step 2A — Add to Claude
Open the Claude app (mobile or web at claude.ai)
Go to Settings → Connectors (or Integrations)
Tap Add Connector, paste your MCP URL, and name it Garmin Chat
After adding, open the connector settings and set tool permissions to Always allow — otherwise Claude will prompt for approval on every single request
Start chatting! Try: “How did I sleep last night?” or “Give me a health overview for today”
Step 2B — Add to ChatGPT
NOTE: MCP connector support in ChatGPT is currently available in developer / beta mode. Make sure it is enabled in your account settings before proceeding.
Open ChatGPT and go to Settings → Beta features, then enable MCP servers
In a new chat, click the Tools icon (or go to Settings → Connectors) and choose Add custom MCP server
Paste your MCP URL and give the connection a name, then save
Start chatting! Try: “What’s my Body Battery right now?” or “Summarize my training this week”
NOTE: I will be submitting this to OpenAI as an official app, so in the future developer mode will not be needed.
How It Works Under the Hood
Your Garmin Watch
│ syncs to
▼
Garmin Connect (cloud)
│ API
▼
┌──────────────────────────────────┐
│ Garmin Chat Connector │ ← deployed on Railway
│ │
│ /setup → web setup form │
│ /garmin/?token=… → MCP server │
│ │
│ PostgreSQL (encrypted tokens) │
└──────────────────────────────────┘
│ MCP over HTTPS
▼
Claude / ChatGPT / other AI tools
When you set up your account, the connector authenticates with Garmin Connect via Garmin’s OAuth flow, encrypts the resulting tokens using Fernet symmetric encryption, and stores them in a PostgreSQL database. Each user gets a unique, randomly-generated access token.
When your AI tool calls a data tool:
The connector looks up your encrypted Garmin tokens by your access token
Decrypts and injects them into an isolated, in-memory Garmin client
Fetches the requested data from the Garmin Connect API
Returns formatted text that the AI reads and summarizes in natural language
Saves any refreshed OAuth tokens back to the database
Discards the in-memory client — no shared state between requests
Each request is fully isolated. Multiple users can connect to the same instance simultaneously without their sessions interfering.
Security & Privacy
Your Garmin credentials are used once during setup and never stored
Only OAuth tokens are persisted — encrypted at rest with Fernet symmetric encryption
Your personal access token (the
?token=part of your URL) is a randomly-generated 32-byte hex string and is never logged in fullAll traffic is encrypted over HTTPS
Revoking your connection at
/disconnectimmediately deletes all associated tokens from the database
Frequently Asked Questions
Does this work with all Garmin devices? Yes. Each tool returns “No data available” gracefully if your device doesn’t support a particular metric (e.g., Training Readiness requires newer hardware; nutrition data requires manual logging in Garmin Connect).
Can multiple people use the same hosted instance? Yes. The connector is designed for multi-user deployment. Each user gets their own isolated token and encrypted Garmin session.
Will my session expire? Garmin OAuth tokens are automatically refreshed on every request. The updated tokens are saved back to the database, so your session stays active indefinitely under normal use.
Is this affiliated with Garmin? No. This is an independent project that uses the Garmin Connect API via the garth and garminconnect Python libraries.
What if something breaks or I have a question? Head over to the Garmin Chat Community Forums on GitHub Discussions — it’s the best place to report issues, ask questions, and share what you’re building.
Support the Project
Garmin Chat Connector is free to use. If you find it useful, please consider supporting it — it helps cover the hosting costs and encourages continued development and support for additional AI platforms.
No pressure — the connector works the same either way. But if you’re going to use it regularly, it makes sense. Thank you.
Links
Garmin Chat Connector Setup: https://garminfit-connector-production.up.railway.app/setup
Disconnect Your Account: https://garminfit-connector-production.up.railway.app/disconnect
Community & support: Garmin Chat Forums
Desktop companion app: Garmin Chat for Windows
Support the project: buy.stripe.com/bJe9AUeaYcdT46z1F75os00











