garmin-mcp-bridge: Instructions file for Claude Code

CLAUDE.md

garmin-mcp-bridge CLAUDE.md is an instructions file for Claude Code from jonas-theobald/garmin-mcp-bridge. It costs 1,052 tokens per session, scanned A, original, MIT.

Repository instructions for a service that exposes Garmin training data through the Intervals.icu API. Intervals.icu is a training platform that can synchronize data with Garmin Connect.

In plain words
What is it for?
They guide work on read-only activity and wellness data, planned workouts, the API client, the MCP server, and end-to-end checks.
Why use it?
They give coding agents the project's architecture, boundaries, and rules needed to change the service safely.

Instructions file for Claude Code

Written for Claude Code: the file is CLAUDE.md. Also seen: mentions CLAUDE.md; mentions Claude Code.

This is jonas-theobald/garmin-mcp-bridge's own configuration. It tells Claude Code how to work on garmin-mcp-bridge itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything garmin-mcp-bridge configures →

Reuse

Borrowing it

Nothing to install: this file belongs to jonas-theobald/garmin-mcp-bridge. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/jonas-theobald/garmin-mcp-bridge/main/CLAUDE.md
Clone the repo
git clone --depth 1 https://github.com/jonas-theobald/garmin-mcp-bridge

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for garmin-mcp-bridge CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/jonas-theobald/garmin-mcp-bridge/claude-md/github.svg)](https://agentmods.dev/instructions/jonas-theobald/garmin-mcp-bridge/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/jonas-theobald/garmin-mcp-bridge/claude-md"><img src="https://agentmods.dev/badge/instructions/jonas-theobald/garmin-mcp-bridge/claude-md/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for garmin-mcp-bridge CLAUDE.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/jonas-theobald/garmin-mcp-bridge/claude-md"><img src="https://agentmods.dev/badge/instructions/jonas-theobald/garmin-mcp-bridge/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 1,052 This file is loaded in full into every session.
When invoked 1,052 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.01052 $0.01052
Opus 5 $0.00526 $0.00526
Sonnet 5 $0.00210 $0.00210
Haiku 4.5 $0.00105 $0.00105

Measured 10d ago against content hash a02d1967b3c4, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

garmin-mcp-bridge CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

CLAUDE.md · 101 lines

How it starts

The opening of the file, as written. The whole thing — 101 lines — stays where its author put it; the contents beside it link to each section on GitHub.

CLAUDE.md

Context for Claude Code working in this repository.

What this is

An MCP server that exposes Garmin training data to MCP clients by talking to the Intervals.icu REST API. Garmin has no public API for individuals, so Intervals.icu — which syncs bidirectionally with Garmin Connect — is the bridge.

Read-only tools cover activities, streams and wellness. The write path creates planned workouts that Intervals.icu pushes to the user's watch.

Architecture

garmin_mcp_bridge/
  client.py   Intervals.icu REST client. NO MCP dependency — keep it that way.
  server.py   FastMCP tool definitions, stdio transport. Thin layer over client.
selftest.py   End-to-end check against the live API.
scripts/      install.sh (macOS/Linux), install.ps1 (Windows)

The separation is deliberate: client.py must stay transport-agnostic so the server can later be moved to HTTP/SSE (e.g. on a Raspberry Pi reacting to webhooks) by replacing server.py alone. Do not import mcp in client.py.

Hard constraints

Never send a workout_doc field when creating a calendar event. Including it — even as {} — makes Intervals.icu skip parsing the workout description into structured steps. The workout then lands in the calendar unstructured and never reaches the watch. This was established empirically against the live API; the README documents the full test matrix. This is the single most important behaviour in the codebase and it is counter-intuitive, so it is easy to "helpfully" reintroduce. Do not.

Keep the browser-like User-Agent in client.py. Intervals.icu sits behind Cloudflare, which challenges default Python library user agents and returns sporadic 403s.

Never commit an API key. INTERVALS_API_KEY comes from the environment. There is no key in the repo and none should appear in tests, fixtures or docs — use obviously fake placeholders.

Testing

There is no unit test suite. Verification runs against the live API:

INTERVALS_API_KEY=your_key uv run selftest.py          # read paths
INTERVALS_API_KEY=your_key uv run selftest.py --write  # plus workout creation

Read the full file on GitHub · 101 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 10d ago First seen · 101 lines · 1,052 tokens per session scan A a02d1967b3c4

Subscribe to this mod's changes

garmin-mcp-bridge CLAUDE.md is an instructions file published in the GitHub repository jonas-theobald/garmin-mcp-bridge (1 stars, last pushed 1mo ago), licensed MIT. It adds 1,052 tokens to every session, about $0.0053 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other instructions, from other repositories

vibe-coding-prompt-template backend.instructions.md

Instructions for KhazP/vibe-coding-prompt-template: Read AGENTS.md, agentdocs/techstack.md, and agentdocs/codepatterns.md.

KhazP/vibe-coding-prompt-template · 139 tokens

next.js AGENTS.md

AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.

vercel/next.js · 7,296 tokens

codex AGENTS.md

AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.

openai/codex · 5,153 tokens

vscode buildNext.instructions.md

Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).

microsoft/vscode · 6,785 tokens

spec-kit AGENTS.md

AGENTS.md instructions for github/spec-kit, covering agents.md, about spec kit and specify, quickstart — add a new integration in 5 steps, integration architecture and integrationmanifest — file tracking.

github/spec-kit · 7,104 tokens

langchain AGENTS.md

AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.

langchain-ai/langchain · 4,469 tokens