Garmin Cache MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Garmin Cache MCP ServerShow my latest 5 activities"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Garmin Cache System - Multi-user Setup Guide
Multi-user Garmin Connect API med lokal SQLite caching och MCP support.
Features
✅ Multi-user support - Flera Garmin-konton
✅ Auto-login från .env - Autentisera vid första start
✅ 2FA support - Skriv MFA-kod i terminalen
✅ Separata tokens - Varje användare har egen cache
✅ Local caching - Minimerar API-anrop
✅ MCP integration - Claude Desktop, Open WebUI, etc
Related MCP server: Garmin MCP
Setup - 3 enkla steg
1️⃣ Klona och installera
git clone https://github.com/lddlinden/garmin-cache-system.git
cd garmin-cache-system
# Python
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
# Node.js (för MCP senare)
npm install2️⃣ Skapa .env med dina användare
Kopiera .env.example och lägg till dina Garmin-konton:
cp .env.example .envRedigera .env:
GARMIN_USERS=ana:ana@mail.se:PASSWORD1,john:john@mail.se:PASSWORD2
BACKEND_HOST=127.0.0.1
BACKEND_PORT=8000Format: alias:email:password,alias:email:password
3️⃣ Starta backend (första gången)
python backend.pyFörsta gången:
============================================================
🔐 GARMIN FIRST-TIME SETUP
============================================================
📝 Registering ana (ana@mail.se)...
🔑 Authenticating ana...
📱 MFA code required (check email/authenticator): 123456
✅ ana ready!
📝 Registering john (john@mail.se)...
🔑 Authenticating john...
📱 MFA code required (check email/authenticator): 654321
✅ john ready!
============================================================
✨ Setup complete - Backend starting...
🚀 Starting backend on 127.0.0.1:8000
INFO: Uvicorn running on http://127.0.0.1:8000Nästa gånger: Tokens är sparade, loggar in automatiskt!
Testa API
# Lista alla registrerade användare
curl http://localhost:8000/users
# Hämta aktiviteter för ana (user_id=1)
curl http://localhost:8000/activities/1?start=0&limit=5
# Hämta daglig summary
curl http://localhost:8000/daily-summary/1?date=2025-01-20
# Hjärtfrekvens
curl http://localhost:8000/heart-rate/1?date=2025-01-20Databaskemata
-- Användare (sparas från .env)
CREATE TABLE garmin_users (
id INTEGER PRIMARY KEY,
alias VARCHAR UNIQUE, -- "ana", "john"
email VARCHAR UNIQUE, -- din@mail.se
password VARCHAR, -- krypterad senare?
authenticated INTEGER, -- 1=autentiserad
last_auth DATETIME
);
-- Cache (automatisk)
CREATE TABLE garmin_cache (
id INTEGER PRIMARY KEY,
user_id INTEGER,
cache_key VARCHAR, -- "activities_0_20"
data TEXT (JSON), -- komplett API response
created_at DATETIME,
expires_at DATETIME -- auto-purge
);
CREATE INDEX ix_user_key ON garmin_cache(user_id, cache_key);Cache TTL
Aktiviteter: 2 timmar
Daglig summary: 24 timmar
Hjärtfrekvens: 24 timmar
Ändra i backend.py:
service.get_or_fetch(..., ttl_hours=12) # 12 timmar iställetMCP Integration
Claude Desktop
Starta backend (Terminal 1):
python backend.pyBuild MCP server (Terminal 2):
npm run buildLägg till i
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"garmin": {
"command": "node",
"args": ["dist/mcp-server.js"],
"cwd": "/path/to/garmin-cache-system",
"env": {
"BACKEND_URL": "http://localhost:8000"
}
}
}
}Restart Claude Desktop
Open WebUI
Samma setup, bara andra config-fil.
Fil-struktur
garmin-cache-system/
├── backend.py ← FastAPI server
├── mcp-server.ts ← MCP TypeScript
├── .env.example ← Template
├── .env ← Din konfiguration (gitignore)
├── garmin_cache.db ← SQLite database
├── .garmin-cache/ ← Token-mappar per user
│ ├── 1/ ← Ana's tokens
│ └── 2/ ← John's tokens
└── requirements.txt ← Python depsFelsökning
MFA inte triggad?
Kontrollera att ditt Garmin-konto har 2FA aktiverat
Väntande vid första autentiseringen - skriv MFA-koden från email
Fel: "User not authenticated"
# Rensa och starta om
rm garmin_cache.db
python backend.pyCheck databas
sqlite3 garmin_cache.db
> SELECT alias, email, authenticated FROM garmin_users;Nästa steg
✅ Backend körandes
⏳ Build MCP server:
npm run build⏳ Koppla till Claude Desktop / Open WebUI
⏳ Börja använda tools!
License
MIT
💡 Tips: Lägg .env i .gitignore (redan gjort) för att inte exponera lösenord!
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenanceExposes personal Garmin wellness data through MCP tools for accessing summary, sleep, HRV, heart rate, stress, body battery, and historical data.MIT
- Alicense-qualityDmaintenanceMCP server that exposes Garmin Connect health and activity data (steps, sleep, stress, activities, etc.) via tools for querying, analysis, and visualization.Apache 2.0
- Flicense-qualityBmaintenanceExposes Garmin Connect health and activity data (steps, sleep, heart rate, etc.) via MCP tools, with built-in login and MFA support.
- AlicenseBqualityBmaintenanceEnables retrieval of Garmin Connect data such as activities, sleep, heart rate, and body battery levels using unofficial API through MCP tools.4MIT
Related MCP Connectors
MCP server for Withings health data — sleep, activity, heart, and body metrics.
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
List, fetch, create, edit (replace), delete and schedule structured workouts on Garmin Connect (runn
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/lddlinden/garmin-cache-system'
If you have feedback or need assistance with the MCP directory API, please join our Discord server