garth
Garmin Connect MCP server based on Garth
claude mcp add --transport stdio matin-garth-mcp-server uvx garth-mcp-server \ --env GARTH_TOKEN="<output of `uvx garth login`>"
How to use
This MCP server exposes Garmin Connect data via the garth-mcp-server backend. It uses the UVX tool to run a Python-based MCP server that communicates with Garmin Connect through the garth framework. Tools are organized into categories such as Health & Wellness, Activities, Additional Health Data, Device & Gear, and Utility Tools. Each tool retrieves specific Garmin Connect data (e.g., user_profile, nightly_sleep, get_activities, get_devices, get_connectapi_endpoint) or performs actions like filtering activity lists or fetching weather data for activities. You can whitelist or blacklist tools via environment variables to tailor the context and reduce response size for LLM usage. To start the server, ensure you are logged in to Garmin via UVX and provide GARTH_TOKEN to authorize API access. The MCP server then surfaces the configured tool endpoints so clients can request structured data programmatically.
How to install
Prerequisites:
- Python environment with UVX and garth-compatible tooling installed
- Access token for Garmin Connect via UVX (GARTH_TOKEN)
- The MCP environment should have the garth-mcp-server entry installed or available via uvx
Installation steps:
- Install or prepare UVX and garth-based tooling as described in upstream garth documentation.
- Ensure the UVX command is accessible from the MCP runtime path (note: MCP may require full path, e.g. /Users/{user}/.local/bin/uvx).
- Create or update the MCP config (as shown below) to point to the garth-mcp-server entry and supply GARTH_TOKEN.
- Start the MCP server using your chosen runtime (the MCP runner will invoke uvx with the garth-mcp-server module).
Example configuration (save as mcp_config.json):
{"mcpServers": {
"Garth - Garmin Connect": {
"command": "uvx",
"args": ["garth-mcp-server"],
"env": {
"GARTH_TOKEN": "<output of uvx garth login>"
}
}
}}
Additional notes
Tips:
- The GARTH_TOKEN must be provided and valid for Garmin Connect access. If using a restricted token, tools may fail due to permissions.
- Tool exposure can be filtered via GARTH_ENABLED_TOOLS or GARTH_DISABLED_TOOLS. If ENABLED is set, DISABLED is ignored.
- Tool names are case-insensitive and comma-separated in filter values.
- For macOS paths, MCP may require absolute paths for the uvx binary; typical location is /Users/{user}/.local/bin/uvx.
- The server exposes a broad set of tools by default; consider enabling only necessary tools to optimize performance and data transfer.
- If you experience authentication or rate-limit issues, verify the GARTH_TOKEN scope and the Garmin Connect API access permissions.
Related MCP Servers
mcp-vegalite
MCP server from isaacwasserman/mcp-vegalite-server
github-chat
A Model Context Protocol (MCP) for analyzing and querying GitHub repositories using the GitHub Chat API.
nautex
MCP server for guiding Coding Agents via end-to-end requirements to implementation plan pipeline
pagerduty
PagerDuty's official local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account directly from your MCP-enabled client.
futu-stock
mcp server for futuniuniu stock
mcp -boilerplate
Boilerplate using one of the 'better' ways to build MCP Servers. Written using FastMCP