Skip to content

How to Make Muse Your Personal Trainer

Published October 7, 2026

Muse can already see a lot of the training week. Meta ships connectors for Apple Health, Peloton, and Function Health, so a workout, a ride, or a lab panel can show up without you pasting a screenshot. None of those connectors know what 180 g of chicken thigh contains. That gap is the whole nutrition problem, and it is the part a food MCP server is for.

Muse has no MCP settings screen. It runs on a Linux virtual machine in Meta's cloud. You describe a public server, it builds a client, and it can save that client as a skill you reuse. Credentials go in Muse's Secure Credentials Store, through a prompt that is separate from the chat. A server on your laptop is not reachable from that VM. This one is a public URL, so it is the case that works.

Disclosure: we publish the nutrition database, not a coaching product. We have not published a timed recording of our own Muse session. The connector shape below is the one Muse's custom-connector flow uses for any remote streamable-HTTP server: you describe it, you keep the key out of the transcript, and you save the result as a skill. If Meta moves the buttons, the prompt still describes the right server.

What to turn on before you add anything

Open Settings, then Connectors, or ask Muse to connect a service by name. For training, the useful built-ins are the health ones you already use: Apple Health if that is where your workouts land, Peloton if that is where you ride, Function Health if that is where labs live. Turn those on first. They were built with the providers. A custom server does not replace them.

Read them narrowly. An imported workout is context. A duration and an energy estimate are not a bar speed and a set of five. If the connector does not give you the load, text the loads yourself. Otherwise the review in week four is a story about how long you were in the room.

Leave write access and purchases on approval. You are adding a read-only nutrition lookup, not a second copy of your calendar.

Add the food server as a skill

Start a plan on MCP pricing and create the key on the dashboard MCP tab. A REST API subscription does not include this server. Tool names and limits are in the docs. The product page is /mcp.

Send Muse this. Do not put the key in the message.

Build a custom integration to the Calorie API MCP server at
https://calorieapiadmin.com/mcp/

It is a remote MCP server over streamable HTTP. It is not a local
command. Authentication is an API key in the header X-API-Key.
Ask me for the key through the credential prompt. Do not ask me to
paste the key in this chat. Do not use Authorization: Bearer unless
I explicitly give you that header.

Tools to prove, in order:
1. search_foods for chicken thigh.
2. calculate_portion for 100 g of a food_id returned by that search.
3. Stop. Show me the food name, the food_id, and the protein.

Save the working integration as a reusable skill named calorie-api
so later chats can log meals without building it again.

The trailing slash on the URL is the endpoint. The header name is X-API-Key. If Muse offers to store a bearer token instead, correct it before you approve the secret. The key belongs in the credential store. Once it is in the transcript, treat it as exposed and rotate it.

Muse's approval step may ask before the outbound call. Approve the food lookup. Decline anything that is not that server.

When the test reply comes back, read it. A food_id and a protein figure for 100 g means the skill called the catalog. A fluent paragraph with no id means it answered from memory. Tell it to call the tool and quote the result.

The profile

Muse keeps goals of its own. Still write the rules in words, because a goal titled "get stronger" does not stop it rewriting the week.

Training profile. Keep this with the calorie-api skill.

- 34, 82 kg, 180 cm. Two years lifting. 4 days a week, full gym.
- Left shoulder dislikes overhead pressing.
- Recent loads: squat 100x5, bench 75x5, deadlift 140x3.

Rules:
- Rep ranges and an RPE target. Never a prescribed weight.
- One change per review. Do not replace the programme because I asked a question.
- Pain: tell me to see a professional. Do not invent a rehab plan.
- Every food number comes from calorie-api. Misses stay misses.
- State the gram weight whenever I did not give one.
- Imported Apple Health or Peloton workouts are context. They are not a set log unless the load is in them.

Prompts

Programme

Using my training profile, write a 4-day upper/lower split. No loads.
Rep ranges, RPE, a progression rule, and when that rule expires. One
swap for shoulder-unfriendly presses. Do not also write a meal plan
in this reply.

After a lifting session

Append this session. Do not rewrite the split.
Squat 100 kg x 5 x 3 at RPE 8.
Bench 72.5 kg x 5 x 3 at RPE 9.
What, if anything, changes next session? One change at most.

When a connector already imported the workout

You have today's workout from Apple Health or Peloton. List the fields
you actually received. Ask me for any load that is missing. Do not
invent the kilograms.

The meal, against the session

Use the calorie-api skill. Search, then scale, and show each food_id:
180 g cooked chicken thigh
250 g cooked rice
150 g broccoli
10 g olive oil
Sum the protein. Compare it with the protein budget in my profile.
If search returns nothing for an item, stop on that item.

Packaged food: send the barcode digits and ask for lookup_barcode. No match means no product. Do not let it substitute a generic row and keep going.

calculate_macro_targets will produce a calorie and macro budget from age, sex, weight, height, activity, and a goal of lose, maintain, or gain. Use it once, write the budget into the profile, and then adjust from what you weigh and what you logged. It is a formula. It is not a lab test and it is not medical advice.

analyze_food_photo estimates a picture, and only if Muse places the raw base64 image in the tool argument. An image sitting in the chat is not that argument. The result is an estimate. We have not published an accuracy score. If the skill cannot pass the bytes, weigh the food and use search. A scale is the more honest instrument either way.

How a week should feel

The skill is built once. After that, the work is dull on purpose.

Log the session the day you train. Log the meals you actually want numbers for, not every garnish. Once a week, ask which lifts moved and which single change to make. If Muse offers a new split, a new target, and a new meal pattern in the same answer, keep one of them.

People stall here by treating the health connector as a complete log. It is a feed. The loads you care about are still the ones you type, unless you have checked that the connector really returned them.

What not to take from it

Loads. The profile has recent sets so Muse can talk about progression. The next set is still chosen from the set you just did, not from a number it likes.

Pain management. Stop and get a person. The rule is there so the reply stays short.

Supplement stacks and lab interpretation. Function Health may show you a panel. Reading a flag as an instruction is a clinician's job. The food tools do not know your chart.

Forecasts. "You will add 10 kg to your squat" is not a calculation the server performs. Nothing in the catalog predicts your training response.

Unsourced meals. A daily protein total is only as good as the rows. Ask which food_id produced each line when the number matters.

The boundary

Muse is a reasonable place to keep the week, because the health connectors and the chat are already in one agent, and the food skill fills the hole those connectors leave. It is a bad place to learn a heavy lift. It cannot see you. Approval prompts do not fix that.

New lifters, anyone returning from injury, anyone pregnant, and anyone training around a medical condition should have a qualified coach or clinician look at the programme. The MCP server will still scale the chicken.

What we have not measured

No training outcomes, no count of how often Muse skips the skill, no accuracy score for photos or for the catalog. The test in the setup prompt is the check available to you: one search, one 100 g portion, one food_id. If that fails, nothing downstream is worth reading.

Other clients in the same series: Instinct, Claude, and ChatGPT. The wider point, that a fitness MCP server and a nutrition server are different products, is in fitness MCP servers.

Frequently Asked Questions

Does Meta Muse have an MCP menu?

No. You describe a public streamable-HTTP server and Muse builds a client on its cloud VM, then saves it as a skill. A server that only runs on your computer is not reachable from that VM.

How should I give Muse the nutrition API key?

Through Muse's credential prompt, stored as the header X-API-Key. Do not paste the key into the chat. The server URL is https://calorieapiadmin.com/mcp/.

Can Muse's Apple Health or Peloton connector replace a food log?

No. Those connectors can supply workout context. They do not resolve a gram weight of a specific food. Meal figures come from search_foods and calculate_portion.

Will a photo in the Muse chat be analyzed automatically?

Only if Muse passes the image bytes into analyze_food_photo. The result is an estimate, and no accuracy score is published for it. A weighed portion and a catalog search is the clearer record.

Is the macro target medical advice?

No. calculate_macro_targets runs a formula on the age, sex, weight, height, activity, and goal you provide. Adjust it from your log. It is not a measured metabolic rate.

← Back to all articles

Start building with the Calorie API

Get a free API key and access 4M+ foods with search, barcode lookup, and full macro data.