go-garmin
Go client library and CLI for the Garmin Connect API with MCP server for LLM integration
claude mcp add --transport stdio llehouerou-go-garmin garmin mcp
How to use
The go-garmin MCP server exposes Garmin Connect data to an LLM via the go-garmin CLI. After you install and login to the CLI, you enable the MCP server by configuring Claude, Claude Desktop, or Cursor to point to the garmin binary with the mcp argument. Once configured, Claude can issue natural language requests that map to garmin's 52 tools (sleep, wellness, activities, weight, HRV, devices, metrics, fitness stats, biometric data, workouts, exercises, calendar, profile, and utility). Each command is exposed as a structured tool in the MCP layer so the LLM can fetch data like your latest sleep, VO2max, training readiness, or recent activities in a reliable, parseable JSON format. The integration leverages your existing Garmin session, so you only need to login once to establish a session that the MCP server reuses.
To use it, configure your MCP client (Claude, Claude Desktop, or Cursor) to run garmin mcp. Then ask for data like “Show my sleep last night” or “What is my VO2 max today?” The system will route the request to the appropriate garmin command, execute it, and return a structured JSON response that you can reason about programmatically.
How to install
Prerequisites:
- Go installed (Go 1.25 or later) and GOPATH/bin in your PATH
- A Garmin Connect account (for CLI data access) and a valid login
Installation steps:
- Install the CLI binary: go install github.com/llehouerou/go-garmin/cmd/garmin@latest
- Verify the CLI was installed: garmin --version
- Login to Garmin Connect (create a session that MCP can reuse): garmin login -email=your@email.com -password=yourpassword
- (Optional) Build from source for development: git clone https://github.com/llehouerou/go-garmin.git cd go-garmin go build -o garmin ./cmd/garmin ./garmin --help
Note: The MCP server for Claude is activated by running garmin with the mcp subcommand (garmin mcp). Ensure garmin is in your PATH and that you are logged in before enabling MCP access.
Additional notes
Tips and caveats:
- The MCP server reuses your CLI session; you only need to login once to establish a persistent session.
- If the MCP server isn’t responding, verify garmin is in your PATH and that you are logged in (garmin sleep should fetch data).
- If needed, you can provide the full path to the garmin binary in your MCP configuration: { "mcpServers": { "garmin": { "command": "/full/path/to/garmin", "args": ["mcp"] } } }
- Available tools cover a wide range of Garmin data (sleep, wellness, activities, metrics, workouts, etc.). Use natural language queries that map to these tool names to get structured JSON outputs.
- Ensure you keep your CLI up to date to access the latest features and tools.
Related MCP Servers
sandbox
A Model Context Protocol (MCP) server that enables LLMs to run ANY code safely in isolated Docker containers.
mcp-zero
Model Context Protocol (MCP) server for go-zero framework - Generate APIs, RPC services, and models with AI assistance.
hop
Fast, elegant SSH connection manager with a TUI dashboard and MCP server
garmin-connect
MCP server enabling LLMs to interact with Garmin Connect - activities, health metrics, sleep data, and training analysis
interop
Interop CLI: Go command-line tool for efficient project management and command execution across your development workspace.
mcp-tidy
CLI tool to visualize and manage MCP server configurations in Claude Code. List servers, analyze usage statistics, and clean up unused servers