- Home
- MCP servers
- Garmin MCP Poke Server
Garmin MCP Poke Server
- python
0
GitHub Stars
python
Language
4 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
You can deploy and run a Garmin MCP Server for Poke, exposing more than 90 Garmin Connect tools over HTTP via FastMCP. This server lets you connect Poke and other MCP clients to Garmin data through a Render-hosted or local setup, providing practical MCP endpoints for your workflow.
How to use
You will access the MCP server through a standard MCP client by pointing it at the server’s MCP URL. When running remotely (Render), use the public Render URL followed by /mcp. When running locally, you will connect your MCP client to the local address where the server is listening. Once connected, you can browse activities, health metrics, gear data, workouts, and other Garmin-connected endpoints provided by the server. If you need to refresh tokens, re-authenticate, or reconfigure connections, you will update the environment variable and restart the server.
How to install
Prerequisites: You need Python and access to install Python packages. If you plan to run locally, you also need network access to Garmin services for token generation.
pip install garminconnect garth
python scripts/generate_tokens.py
Additional setup and usage notes
Render deployment provides an optional one-click setup. You will need to provide your Garmin token in the environment variable GARMINTOKENS_BASE64 after initiating the deployment.
For local development, you can start the MCP server after preparing tokens and dependencies. The server exposes its MCP interface at localhost and connects to Garmin services using the generated tokens.
Security and token management
Tokens last for an extended period, typically around six months. When tokens expire, regenerate them and update your environment variable or deployment settings, then restart the server to apply the changes.
Troubleshooting tips
If the MCP client cannot connect, verify that the server is reachable at the expected URL (remote: https://your-service-name.onrender.com/mcp, local: http://localhost:8000/mcp). Confirm that GARMINTOKENS_BASE64 is correctly set and that the tokens were generated using the supported Garmin account with MFA if applicable.
Examples of local testing
Test with MCP Inspector to ensure the MCP endpoint is responding. Open a terminal and run the inspector tool against the local MCP endpoint.
npx @modelcontextprotocol/inspector
Notes on deployment options
Option 1: One-Click Deploy to Render. Click the Deploy to Render button, then set GARMINTOKENS_BASE64 to the token string produced in token generation.
Option 2: Manual Deployment. Fork the repository, connect your GitHub account to Render, create a new Web Service, connect your fork, and ensure Render detects the render.yaml configuration. Set GARMINTOKENS_BASE64 in environment variables.
Connecting to Poke
Configure Poke to point to the MCP endpoint exposed by your Render service. Use the following address to connect Poke to the Garmin MCP server.
Configuration overview
The server relies on a Garmin token-based authentication flow. Tokens are stored as a base64-encoded string in the GARMINTOKENS_BASE64 environment variable. When deploying, you must provide this value so the server can authenticate with Garmin Connect and expose the MCP endpoints.
Tool categories and availability
The Garmin MCP server exposes a wide range of tools grouped into categories such as Activity Management, Health & Wellness, Training, User Profile, Devices, Gear Management, Weight Management, Challenges, Workouts, Data Management, Women's Health, and Workout Templates. Each category contains multiple endpoints that enable reading, aggregating, or updating Garmin data via the MCP protocol.
Notes on environment and dependencies
- Language: Python
- Package manager: pip
- Local start typically uses a Python command to run the server script (for example, python src/server.py)
- Token management relies on Garmin accounts with MFA when prompted by the token generation script
Appendix: example commands
pip install garminconnect garth
python scripts/generate_tokens.py
# Local development
pip install -r requirements.txt
cp .env.example .env
# Edit .env and set GARMINTOKENS_BASE64
python src/server.py
# Test MCP Inspector locally
npx @modelcontextprotocol/inspector