# Connect your AI to Heza

> How to connect Claude, ChatGPT, Claude Code or another AI app to Heza's MCP connector, what to ask, every tool it offers, and how permissions and data work. Updated 12 November 2026. Web version: https://heza.app/docs

Heza is a free fitness and nutrition tracker. Its connector lets your AI read and log your food, training, runs and recovery, plan your week and coach you from your own data.

- Connector address (the same for everyone): https://my.heza.app/api/mcp
- Transport: Streamable HTTP. Sign-in: OAuth 2.1 with PKCE; Client ID Metadata Documents and Dynamic Client Registration are supported, so there is no client ID or secret to set up.
- You need: a free Heza account (https://my.heza.app), and an AI app that supports custom MCP connectors (what it allows can depend on its plan). A Garmin or COROS watch is optional.

## Set up

### Claude

Open: https://claude.ai/customize/connectors

1. Press + Add, then Add custom connector.
2. Name it Heza, paste the connector address and press Continue. Press Continue again on the settings it detects.
3. Choose Sign in now, press Add, sign in to Heza and press Allow Claude.

Claude's free plan allows one custom connector, which is all Heza needs. Once added, Heza works in the Claude app on your phone and desktop too. If Claude doesn't seem to use it, turn it on in the chat under + and Connectors.

### ChatGPT

Open: https://chatgpt.com/plugins

1. Press the + button, then Add custom MCP server.
2. Name it Heza, paste the connector address and keep OAuth for sign-in.
3. Tick I understand and want to continue, then Create as a plugin.
4. Sign in to Heza and press Allow ChatGPT.

Whether you see this option depends on your ChatGPT plan and, on a work or school account, on what your workspace allows. Once connected, mention Heza in your request.

### Claude Code

1. Run the command below in your terminal.
2. Start Claude Code, type /mcp, pick heza and sign in to Heza in the browser window that opens.

```
claude mcp add --transport http heza https://my.heza.app/api/mcp
```

### Another AI app

1. In your AI app, find its connectors, integrations or MCP servers.
2. Add a custom or remote MCP server with the connector address. Pick OAuth if it asks how to sign in.
3. Sign in to Heza and allow access.

For developers: Streamable HTTP transport, OAuth 2.1 with PKCE. Heza accepts Client ID Metadata Documents and Dynamic Client Registration, so there is no client ID or secret to set up.

## What to ask

- "Take a look at my Heza. What do you see so far, and what's the one thing you'd focus on this week?"
- "I had 2 scrambled eggs and a slice of wholegrain toast for breakfast."
- "I just did 3 sets of 8 squats at 80 kg."
- "Plan 3 runs and 2 lifting days next week around my goal."
- "How did I sleep this week, and am I ready for a hard run today?"
- "Review my week and leave me a coach note."

## What your AI can do (58 tools)

Each tool reads your data, changes it or deletes entries, and works on your own account only.

### Getting started

- `get_current_context` (reads): Today's date, time and time zone, and your profile, so "yesterday" or "next Tuesday" land on the right day.

### Food and water

- `log_food` (changes): Log what you ate, item by item, with calories, protein, carbs, fat and fiber. Works from a description or a photo.
- `search_food_database` (reads): Search your own foods, USDA FoodData Central and Open Food Facts.
- `lookup_barcode` (reads): Find a packaged food by its barcode.
- `log_food_from_database` (changes): Log a food from the database or a barcode with the exact label values for your portion.
- `save_food` (changes): Save a food to My foods from a photo of its nutrition label, so its numbers are right every time you scan or search it.
- `get_food_log` (reads): Your food entries for a day or a range, by meal.
- `update_food_log` (changes): Fix a food entry: amount, meal, date or nutrition.
- `delete_food_log` (deletes): Remove food entries.
- `get_nutrition_summary` (reads): Daily intake against your targets over a range, with averages.
- `get_nutrition_goals` (reads): Your daily targets: calories, protein, carbs, fat, fiber, water and target weight.
- `set_nutrition_goals` (changes): Change your daily targets.
- `log_water` (changes): Log water.

### Body

- `log_weight` (changes): Log a weigh-in.
- `get_weight_history` (reads): Weigh-ins with a 7-day average trend.
- `update_profile` (changes): Height, birth year, sex, time zone and units, used for energy estimates.

### Exercises and templates

- `list_exercises` (reads): Search the library of about 870 exercises and your own.
- `create_exercise` (changes): Add your own exercise when the library doesn't have it.
- `update_exercise` (changes): Edit one of your own exercises.
- `set_exercise_load_type` (changes): Say how one of your exercises is loaded (per hand, total or bodyweight) so volume is counted right.
- `delete_exercise` (deletes): Delete one of your own exercises.
- `get_workout_templates` (reads): Your routines with their exercises and targets.
- `create_workout_template` (changes): Save a routine.
- `update_workout_template` (changes): Change a routine: rename it or add, remove and edit exercises.
- `delete_workout_template` (deletes): Delete a routine.

### Lifting

- `log_workout` (changes): Log sets with reps, weight and effort, as you go or afterwards.
- `finish_workout_session` (changes): Close a session with its start and end time; Heza works out the calories.
- `get_workout_history` (reads): Your sessions over a range, with sets and volume.
- `get_workout_session` (reads): One session with every set.
- `update_workout_session` (changes): Fix a session's name, date, times, effort or notes.
- `update_workout_set` (changes): Fix logged sets: reps, weight, effort or side.
- `move_workout_sets` (changes): Move sets logged under the wrong exercise.
- `delete_workout_sets` (deletes): Remove logged sets.
- `merge_workout_sessions` (deletes): Join sessions from the same gym visit into one.
- `delete_workout_session` (deletes): Delete a whole session.
- `get_exercise_progress` (reads): Progress on one exercise: top sets, estimated 1RM trend and volume.
- `get_personal_records` (reads): Your personal records per exercise.
- `get_lift_suggestions` (reads): Suggested next sets, reps and weight from your last sessions.

### Runs, cardio and watch

- `get_activities` (reads): Runs, rides and other cardio with distance, pace, heart rate and load.
- `get_run_details` (reads): One run in detail: splits, heart rate zones and more.
- `log_activity` (changes): Log a run, ride, walk, swim or other session by hand.
- `sync_watch` (changes): Fetch new data from your Garmin or COROS now (it otherwise syncs every hour).
- `get_fitness_status` (reads): VO2 max, training status and training load from your watch.

### Weekly plan

- `get_week_plan` (reads): The week's planned sessions next to what you actually did.
- `plan_workout` (changes): Plan lifting days, runs and rest. Planned runs go to your Garmin or COROS watch.
- `update_planned_workout` (changes): Move or change a planned session, or mark it done or skipped.
- `delete_planned_workout` (deletes): Remove planned sessions.

### Your day, energy and recovery

- `get_daily_overview` (reads): Everything about one day: meals, calories burned, training, sleep and weight.
- `get_energy_balance` (reads): Calories eaten against calories burned, day by day.
- `get_wellness` (reads): Sleep, HRV, resting heart rate, stress and steps from your watch.
- `log_day_numbers` (changes): Save a day's steps, calories burned, resting heart rate, HRV and sleep from a watch or ring Heza isn't connected to, copied from your phone's health app or a screenshot.

### Coaching and goals

- `get_coach_context` (reads): Your goal, this week against the last four, recovery and injuries, in one call.
- `write_coach_notes` (changes): Save the AI's coaching notes, shown on the matching Heza screens.
- `set_focus` (changes): What you're chasing: endurance, speed, muscle or fat loss, and your goal and date.

### Injuries

- `get_injuries` (reads): Your injuries with pain, restrictions and how they're healing.
- `log_injury` (changes): Record a new pain or injury.
- `add_injury_update` (changes): Add how an injury feels today.
- `update_injury_status` (changes): Rewrite an injury's current status and restrictions.

## Permissions and data

- You sign in to Heza; your AI app never sees your Heza password. Heza shows what the app will be able to do before you allow it.
- The connection belongs to your account: your AI can read and change your own data only.
- Disconnect any time in Heza: Settings, Connected apps, Revoke.
- Hosted in the EU (Frankfurt, Germany). No ads, never sold. Export everything or delete your account in Settings. Privacy policy: https://heza.app/privacy

## Troubleshooting

**I can't find "Add custom connector" or "Add custom MCP server".**
It depends on your AI app and plan. Claude's free plan allows one custom connector. In ChatGPT it depends on your plan and, on a work or school account, on your workspace settings.

**My AI doesn't use Heza.**
Mention Heza in your request, for example "Log this in Heza". In Claude, check that Heza is switched on in the chat under + and Connectors.

**It says "Connect Garmin or COROS in Settings first".**
Watch sync needs your watch connected in Heza: open my.heza.app, then Settings and Devices. Without a watch, log runs by hand or import FIT, GPX or TCX files.

**A barcode gives the wrong numbers.**
Barcode data comes from Open Food Facts, a public database, and some entries have mistakes. Send your AI a photo of the nutrition label and say "use the label": it logs the pack's numbers and can save the food to My foods so it's right next time. In the app, a product whose numbers don't add up shows "These numbers look off" with a button to enter the pack's numbers.

**An entry landed on the wrong day.**
Check your time zone in Heza's Settings. Your AI reads it at the start of a conversation, so "yesterday" means your yesterday.

**I want to disconnect my AI.**
In Heza, open Settings, then Connected apps, and press Revoke. It signs the app out right away; you can connect it again later.

**Sign-in fails or keeps asking again.**
Remove Heza from your AI app, add it again with the connector address and sign in once more. If it still fails, tap the help button in Heza or write to team@heza.app.

Still stuck? Tap the help button at the top of Heza, or write to team@heza.app.
