# Everfit MCP tools

> Every Everfit MCP tool on the Cotlet server: tool names, input schemas, a tools/call example and an example result for each tool.

Source: https://cotlet.dev/docs/mcp/everfit

Docs sections: [Get started](https://cotlet.dev/docs.md) · [REST API](https://cotlet.dev/docs/api.md) · [MCP](https://cotlet.dev/docs/mcp.md) · [SDKs & CLI](https://cotlet.dev/docs/sdks.md) · [Integrations](https://cotlet.dev/docs/integrations.md)

15 tools for Everfit on the Cotlet MCP server. Your agent picks them from tools/list.

- MCP server: `https://cotlet.dev/mcp/v1`
- Connects with: Your own Everfit coach account (owner or admin to assign another coach to a new client)
- Integration page: https://cotlet.dev/integrations/everfit-api-mcp-server

## Endpoints

| Endpoint | Access | Description |
|---|---|---|
| `everfit_list_clients` | read | Clients in your workspace with type, coach, groups and status. |
| `everfit_get_client` | read | Client overview: profile, goals, limitations or injuries, private notes and workout counts. |
| `everfit_list_workouts` | read | Workouts on a client's training calendar in a date range, with completion and logged results. |
| `everfit_get_body_metrics` | read | Entries for a client's tracked metrics, such as weight, with date, time and unit. |
| `everfit_list_programs` | read | Programs in your Program Library with length in weeks. |
| `everfit_list_autoflows` | read | Your Autoflows with name, status and number of clients. |
| `everfit_list_conversations` | read | Your Inbox conversations with clients: who, unread flag and last message. |
| `everfit_get_conversation` | read | Messages with one client, oldest first, with links to images and videos. |
| `everfit_invite_client` | write | Add a client and email them an invite to set up the Everfit app. |
| `everfit_assign_program` | write | Add a program to a client's training calendar from a start date. |
| `everfit_add_client_to_autoflow` | write | Enroll a client in an Autoflow; an active one sends its workouts, tasks and announcements. |
| `everfit_log_body_metric` | write | Add a result for one of a client's tracked metrics. |
| `everfit_assign_task` | write | Add a task to a client's calendar, with instructions and a reminder time. |
| `everfit_send_message` | write | Send a message to a client in Inbox, as you. |
| `everfit_send_broadcast` | write | Inbox Broadcast to many clients at once. Studio plan. |

## List clients

MCP tool: `everfit_list_clients`

Access: read.

Lists your clients with type (online, in person or hybrid), the coach they belong to, groups and status. Archived clients are returned only when you ask for them. Use the client_id of each item in the other tools. Pass next_cursor back as cursor for the next page.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `status` | enum | no | active or archived. Default: active. |
| `type` | enum | no | online, in_person or hybrid. |
| `group` | string | no | Only clients in this group. |
| `coach_id` | string | no | Only clients of this coach. |
| `search` | string | no | Name or email contains. |
| `limit` | integer | no | 1 to 200. Default: 50. |
| `cursor` | string | no | Next page cursor from the previous call. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "everfit_list_clients",
    "arguments": {}
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "clients": [
      {
        "client_id": "66f1c2a9e4b0a1d2c3f4e5a6",
        "first_name": "Sam",
        "last_name": "Rivera",
        "email": "sam@example.com",
        "type": "online",
        "coach_id": "64a1b2c3d4e5f6a7b8c9d0e1",
        "groups": [
          "Fat loss"
        ],
        "status": "active",
        "joined_at": "2026-09-15"
      }
    ],
    "next_cursor": null
  },
  "isError": false
}
```

## Get client

MCP tool: `everfit_get_client`

Access: read.

Returns what the client overview page shows: profile, goals, limitations or injuries, your private notes, and the number of workouts tracked in the last 7 and 30 days. Notes and limitations are not shared with the client.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `client_id` | string | yes | Client ID from list_clients. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "everfit_get_client",
    "arguments": {
      "client_id": "client_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "client_id": "66f1c2a9e4b0a1d2c3f4e5a6",
    "first_name": "Sam",
    "last_name": "Rivera",
    "type": "online",
    "goals": "Lose 5 kg before the wedding in March.",
    "limitations": "Mild left knee pain on deep squats.",
    "notes": "Prefers morning sessions.",
    "workouts_tracked": {
      "last_7_days": 0,
      "last_30_days": 9
    }
  },
  "isError": false
}
```

## List workouts

MCP tool: `everfit_list_workouts`

Access: read.

Returns the workouts on one client's training calendar between two dates, each with whether the client completed it and the results they logged. The default range is the last 7 days and the next 7 days. Use it to find clients with no tracked workouts.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `client_id` | string | yes | Client ID from list_clients. |
| `from` | date | no | Start date. Default: 7 days ago. |
| `to` | date | no | End date. Default: 7 days ahead. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "everfit_list_workouts",
    "arguments": {
      "client_id": "client_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "client_id": "66f1c2a9e4b0a1d2c3f4e5a6",
    "workouts": [
      {
        "workout_id": "w_4a91",
        "date": "2026-10-06",
        "title": "Lower Body A",
        "completed": false,
        "results": null
      },
      {
        "workout_id": "w_4a92",
        "date": "2026-10-08",
        "title": "Upper Body A",
        "completed": false,
        "results": null
      }
    ],
    "completed_count": 0,
    "planned_count": 2
  },
  "isError": false
}
```

## Get body metrics

MCP tool: `everfit_get_body_metrics`

Access: read.

Returns the entries a client has for a metric, such as Weight or a custom metric, each with date, time, value and unit, plus the change from the first to the last entry in the range. Only metrics enabled for that client return data. Without metric, it returns every tracked metric.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `client_id` | string | yes | Client ID from list_clients. |
| `metric` | string | no | Metric name, e.g. Weight. Default: all tracked metrics. |
| `from` | date | no | Start date. Default: 90 days ago. |
| `to` | date | no | End date. Default: today. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "everfit_get_body_metrics",
    "arguments": {
      "client_id": "66f1c2a9e4b0a1d2c3f4e5a6",
      "metric": "Weight",
      "from": "2026-09-14",
      "to": "2026-10-11"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "client_id": "66f1c2a9e4b0a1d2c3f4e5a6",
    "metric": "Weight",
    "unit": "kg",
    "entries": [
      {
        "recorded_at": "2026-07-12T08:10:00Z",
        "value": 84.2
      },
      {
        "recorded_at": "2026-08-16T08:05:00Z",
        "value": 82.9
      },
      {
        "recorded_at": "2026-09-20T08:20:00Z",
        "value": 81.5
      },
      {
        "recorded_at": "2026-10-10T08:12:00Z",
        "value": 80.6
      }
    ],
    "change": -3.6
  },
  "isError": false
}
```

## List programs

MCP tool: `everfit_list_programs`

Access: read.

Lists the programs in your Program Library with their length in weeks. Pass program_id to assign_program.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `search` | string | no | Program name contains. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "everfit_list_programs",
    "arguments": {}
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "programs": [
      {
        "program_id": "65d8b7c6a5f4e3d2c1b0a9f8",
        "title": "Beginner Strength",
        "weeks": 8
      },
      {
        "program_id": "65d8b7c6a5f4e3d2c1b0a9f9",
        "title": "Hypertrophy Block",
        "weeks": 12
      }
    ]
  },
  "isError": false
}
```

## List Autoflows

MCP tool: `everfit_list_autoflows`

Access: read.

Lists the Autoflows you can see, your own and those shared with the team, with their status (active or paused) and how many clients are in each. Adding a client to a paused Autoflow sends them nothing until it is activated.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `status` | enum | no | active, paused or all. Default: all. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "everfit_list_autoflows",
    "arguments": {}
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "autoflows": [
      {
        "autoflow_id": "65e0a1b2c3d4e5f6a7b8c9d0",
        "name": "12-week Fat Loss",
        "status": "active",
        "clients": 18
      },
      {
        "autoflow_id": "65e0a1b2c3d4e5f6a7b8c9d1",
        "name": "New client onboarding",
        "status": "paused",
        "clients": 4
      }
    ]
  },
  "isError": false
}
```

## List conversations

MCP tool: `everfit_list_conversations`

Access: read.

Lists your Inbox conversations with clients, with the last message and whether it is unread. Chats with teammates are in the Team tab in Everfit and are not returned. Set unread_only to get what needs an answer.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `unread_only` | boolean | no | Only conversations with unread messages. |
| `limit` | integer | no | 1 to 100. Default: 30. |
| `cursor` | string | no | Next page cursor from the previous call. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "everfit_list_conversations",
    "arguments": {}
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "conversations": [
      {
        "client_id": "66f1c2a9e4b0a1d2c3f4e5a6",
        "name": "Sam Rivera",
        "unread": true,
        "last_message": "Can I swap barbell rows for dumbbell rows this week?",
        "updated_at": "2026-10-10T17:42:00Z"
      }
    ],
    "next_cursor": null
  },
  "isError": false
}
```

## Get conversation

MCP tool: `everfit_get_conversation`

Access: read.

Returns the messages in your Inbox conversation with one client, oldest first, with who sent each and links to images and videos they attached. Read the thread before drafting a reply.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `client_id` | string | yes | Client ID from list_clients. |
| `limit` | integer | no | 1 to 200. Default: 50. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "everfit_get_conversation",
    "arguments": {
      "client_id": "client_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "client_id": "66f1c2a9e4b0a1d2c3f4e5a6",
    "messages": [
      {
        "from": "Sam Rivera",
        "text": "Can I swap barbell rows for dumbbell rows this week?",
        "media": [],
        "sent_at": "2026-10-10T17:42:00Z"
      }
    ]
  },
  "isError": false
}
```

## Invite client

MCP tool: `everfit_invite_client`

Access: write. Confirm: waits for the user's OK before it runs.

Adds a client with first name, last name, email and type, and Everfit emails them an invite right away to set up their profile. By default you are their coach; owners and admins can assign another coach. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `first_name` | string | yes | First name. |
| `last_name` | string | yes | Last name. |
| `email` | string | yes | Client email; the invite goes here. |
| `type` | enum | no | online, in_person or hybrid. Default: online. |
| `coach_id` | string | no | Assign another coach. Owners and admins only. Default: you. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "everfit_invite_client",
    "arguments": {
      "first_name": "first name",
      "last_name": "last name",
      "email": "jane@example.com"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "client_id": "66f1c2a9e4b0a1d2c3f4e5b7",
    "email": "alex@example.com",
    "type": "online",
    "coach_id": "64a1b2c3d4e5f6a7b8c9d0e1",
    "status": "invited"
  },
  "isError": false
}
```

## Assign program

MCP tool: `everfit_assign_program`

Access: write. Confirm: waits for the user's OK before it runs.

Adds a program from your Program Library to one client's training calendar, starting on the date you give. Set start_day and end_day to assign only part of the program. Workouts appear on the calendar right away and you can adjust them per client afterwards. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `client_id` | string | yes | Client ID from list_clients. |
| `program_id` | string | yes | Program ID from list_programs. |
| `start_date` | date | yes | First day of the program on the calendar. |
| `start_day` | integer | no | Program day to start at. Default: 1. |
| `end_day` | integer | no | Program day to end at. Default: the last day. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "everfit_assign_program",
    "arguments": {
      "client_id": "66f1c2a9e4b0a1d2c3f4e5a6",
      "program_id": "65d8b7c6a5f4e3d2c1b0a9f8",
      "start_date": "2026-10-12"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "client_id": "66f1c2a9e4b0a1d2c3f4e5a6",
    "program": {
      "program_id": "65d8b7c6a5f4e3d2c1b0a9f8",
      "title": "Beginner Strength",
      "weeks": 8
    },
    "start_date": "2026-10-12",
    "end_date": "2026-12-06",
    "workouts_added": 24
  },
  "isError": false
}
```

## Add client to Autoflow

MCP tool: `everfit_add_client_to_autoflow`

Access: write. Confirm: waits for the user's OK before it runs.

Adds a client to an Autoflow. In an active Autoflow the client is activated and receives all scheduled workouts, announcements and tasks; in a paused one they receive nothing until it is activated. start_date and start_day set where the client begins. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `client_id` | string | yes | Client ID from list_clients. |
| `autoflow_id` | string | yes | Autoflow ID from list_autoflows. |
| `start_date` | date | no | Date the client starts. Default: today. |
| `start_day` | integer | no | Autoflow day to begin on. Default: 1. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "everfit_add_client_to_autoflow",
    "arguments": {
      "client_id": "client_8c41d2",
      "autoflow_id": "autoflow_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "client_id": "66f1c2a9e4b0a1d2c3f4e5a6",
    "autoflow": {
      "autoflow_id": "65e0a1b2c3d4e5f6a7b8c9d0",
      "name": "12-week Fat Loss",
      "status": "active"
    },
    "client_status": "active",
    "start_date": "2026-10-12",
    "start_day": 1
  },
  "isError": false
}
```

## Log body metric

MCP tool: `everfit_log_body_metric`

Access: write. Confirm: waits for the user's OK before it runs.

Saves a result for one metric enabled for the client, with a value and the date and time of the entry. The client sees it in their metrics and charts. The metric must already be enabled for the client in Everfit. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `client_id` | string | yes | Client ID from list_clients. |
| `metric` | string | yes | Metric name, e.g. Weight. |
| `value` | number | yes | Value in the metric's unit. |
| `recorded_at` | datetime | no | ISO 8601. Default: now. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "everfit_log_body_metric",
    "arguments": {
      "client_id": "client_8c41d2",
      "metric": "metric",
      "value": 1
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "client_id": "66f1c2a9e4b0a1d2c3f4e5a6",
    "metric": "Weight",
    "value": 80.6,
    "unit": "kg",
    "recorded_at": "2026-10-10T08:12:00Z",
    "status": "saved"
  },
  "isError": false
}
```

## Assign task

MCP tool: `everfit_assign_task`

Access: write. Confirm: waits for the user's OK before it runs.

Adds one task to a client's calendar on a date. The client gets a push notification on that day, at 10:00 in their local time unless you set reminder_time, and checks the task off in the client app. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `client_id` | string | yes | Client ID from list_clients. |
| `title` | string | yes | Task title. |
| `date` | date | yes | Day the task appears. |
| `instructions` | string | no | Task details for the client. |
| `link` | string | no | URL to attach, e.g. a form or video. |
| `reminder_time` | string | no | Reminder time HH:MM in the client's local time. Default: 10:00. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "everfit_assign_task",
    "arguments": {
      "client_id": "client_8c41d2",
      "title": "title",
      "date": "2026-10-01"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "task_id": "t_7c20",
    "client_id": "66f1c2a9e4b0a1d2c3f4e5a6",
    "title": "Weekly measurements",
    "date": "2026-10-12",
    "reminder_time": "08:00",
    "status": "assigned"
  },
  "isError": false
}
```

## Send message

MCP tool: `everfit_send_message`

Access: write. Confirm: waits for the user's OK before it runs.

Sends a text message to one client in your Inbox conversation, under your name. Everfit lets you edit a plain text message only within 60 minutes. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `client_id` | string | yes | Client ID from list_clients. |
| `text` | string | yes | Message text. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "everfit_send_message",
    "arguments": {
      "client_id": "66f1c2a9e4b0a1d2c3f4e5a6",
      "text": "Hi Maya, Lower Body A and Upper Body A are still open from last week. Is the knee acting up again, or is it the schedule? Reply here and I will adjust this week."
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "client_id": "66f1c2a9e4b0a1d2c3f4e5a6",
    "message_id": "msg_91d3",
    "status": "sent",
    "sent_at": "2026-10-11T09:05:00+02:00"
  },
  "isError": false
}
```

## Send broadcast

MCP tool: `everfit_send_broadcast`

Access: write. Confirm: waits for the user's OK before it runs.

Sends an Inbox Broadcast of up to 3 messages to the clients you pick, or to all clients. {first_name} is filled in per client. Needs the Studio plan, and Everfit asks you to wait 2 minutes before the next broadcast. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `client_ids` | string[] | no | Recipients. Omit when all_clients is true. |
| `all_clients` | boolean | no | Send to every client. |
| `messages` | string[] | yes | Up to 3 messages; {first_name} is filled in per client. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "everfit_send_broadcast",
    "arguments": {
      "messages": [
        "messages"
      ]
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "broadcast_id": "bc_2f08",
    "recipients": 42,
    "messages_per_client": 1,
    "status": "sent",
    "sent_at": "2026-10-11T09:10:00+02:00"
  },
  "isError": false
}
```
