---
title: "Garmin Integration"
description: "Manage Garmin list activities, list daily summaries, list sleep, list heart rates, list body composition"
---
The Garmin integration provides access to manage Garmin list activities, list daily summaries, list sleep, list heart rates, list body composition through the Integrate MCP server.

## Installation

The Garmin integration is included with the SDK:

```typescript
import { garminIntegration } from "integrate-sdk/server";
```

## Setup

### 1. Create a Garmin OAuth App

1. Create an OAuth application for Garmin
2. Configure your redirect URI
3. Note your Client ID and Client Secret

### 2. Configure the Integration on Your Server

Add the Garmin integration to your server configuration. The integration automatically reads `GARMIN_CLIENT_ID` and `GARMIN_CLIENT_SECRET` from your environment variables:

```typescript
import { createMCPServer, garminIntegration } from "integrate-sdk/server";

export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    garminIntegration({
      scopes: ["activities", "heartrate", "sleep", "stress", "body_composition", "user_metrics"], // Optional
    }),
  ],
});
```

You can override the environment variables by passing explicit values:

```typescript
garminIntegration({
  clientId: process.env.CUSTOM_GARMIN_ID,
  clientSecret: process.env.CUSTOM_GARMIN_SECRET,
      scopes: ["activities", "heartrate", "sleep", "stress", "body_composition", "user_metrics"], // Optional
});
```

### 3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

```typescript
import { client } from "integrate-sdk";

await client.authorize("garmin");
const result = await client.garmin.listActivities({});

console.log(result);
```

If you're using a custom client, add the integration to the integrations array:

```typescript
import { createMCPClient, garminIntegration } from "integrate-sdk";

const customClient = createMCPClient({
  integrations: [garminIntegration()],
});
```

## Configuration Options

<AutoTypeTable
  path="../src/integrations/garmin.ts"
  name="GarminIntegrationConfig"
/>


## Default Scopes

These defaults are applied unless you override `scopes` in the integration config:

- `activities`
- `heartrate`
- `sleep`
- `stress`
- `body_composition`
- `user_metrics`

## Tools

### `garmin_list_activities`

List activities

<AutoTypeTable
  path="generated/tool-params/garmin.ts"
  name="GarminListActivitiesParams"
/>

### `garmin_list_daily_summaries`

List daily summaries

<AutoTypeTable
  path="generated/tool-params/garmin.ts"
  name="GarminListDailySummariesParams"
/>

### `garmin_list_sleep`

List sleep

<AutoTypeTable
  path="generated/tool-params/garmin.ts"
  name="GarminListSleepParams"
/>

### `garmin_list_heart_rates`

List heart rates

<AutoTypeTable
  path="generated/tool-params/garmin.ts"
  name="GarminListHeartRatesParams"
/>

### `garmin_list_body_composition`

List body composition

<AutoTypeTable
  path="generated/tool-params/garmin.ts"
  name="GarminListBodyCompositionParams"
/>

## Notes

- Category: Fitness
- Authentication mode: OAuth
