How to Make Instinct Your Personal Trainer
Published October 7, 2026
Instinct is a phone agent you text. That is the useful part for training: the session happens in the gym, and the log can be the message you send when you rack the bar. It does not become a coach because it replies quickly. It becomes usable when a profile survives the next text, the programme stops getting rewritten every time you ask a question, and the food numbers come from a catalog instead of from memory.
Disclosure first: we publish a nutrition database, not a training product. The programming notes below are ordinary published practice. The food half is the part we can stand behind, and only when the assistant actually calls the tool.
Instinct is invite-only. You start by texting it from instinct.com. Its published connection notes say an MCP server is added in the Instinct account as a name, a URL, and a header. A public HTTPS server with a key fits that shape. A server running only on your phone does not.
What Instinct can do as a trainer
Hold the thread. You can text a session, ask what to change next time, and come back the next day without pasting the whole history into a fresh chat window. That is the advantage over a desk client you only open at home.
Write a plain programme. Days, lifts, rep ranges, and a progression rule. The same thing any capable assistant can do from a profile. It is a draft, not a coach watching the set.
Look food up, once the connection exists. Search, then scale a gram weight. A protein total with a catalog row behind it is a different object from a protein total the model remembered.
It cannot see the lift. No bar path, no depth, no "that rep was ugly." Text is not a video.
It does not talk to your other agents. Instinct's own protocol reaches other Instincts. A plan you wrote in Claude or Muse is invisible unless you paste it or put it somewhere Instinct already reads. Do not assume the training log is shared.
Write the profile before the programme
Send this once, and tell Instinct to keep it and append to the log instead of replacing it. If a new thread starts blank, send it again. There is no project file sitting on your laptop the way there is in Claude Code.
Training profile. Keep this. Append sessions. Do not rewrite earlier lines.
- 34, 82 kg, 180 cm. Two years lifting.
- 4 sessions a week, about 45 minutes, full gym.
- Left shoulder dislikes overhead pressing.
- Recent: squat 100 kg x 5, bench 75 kg x 5, deadlift 140 kg x 3.
Rules:
- Never prescribe a specific weight. Rep ranges and an RPE target only.
- One change per review. Do not hand me a new programme because I asked a question.
- If I report pain, tell me to see a professional. Do not program around it.
- Food numbers only from the calorie-api tools. If search misses, say so.
- State the gram weight you assumed whenever I describe a portion in words.
The one-change rule matters more than the split. An assistant will write you a new week whenever you sound uncertain. Most of the result, if there is one, comes from repeating something adequate.
Connect the food catalog
In the Instinct account, add an MCP connection:
- Name:
calorie-api - URL:
https://calorieapiadmin.com/mcp/ - Header:
X-API-Keyset to the key from the dashboard
The key is on the MCP tab after you start a plan. REST API plans do not include this server. The plan and the trial are on MCP pricing. The reference for the tools is in the docs, and the product page is /mcp.
The URL has a trailing slash. That is the endpoint. The header name is X-API-Key, not a label you invent. Keep the key in that header field. Do not paste it into a normal text to Instinct.
Then send:
Use calorie-api. search_foods for chicken thigh, then calculate_portion
for 100 g of the row you actually found. Reply with the food name, the
food_id, and the protein. If the tool errors, quote the error. Do not
estimate.
You are checking three things: the connection is up, the key is accepted, and Instinct is willing to show the row instead of rounding it into a story. If it answers with a protein number and no food_id, it did not use the tool. Say so and ask again.
food_id has to come from search_foods or lookup_barcode. A made-up id fails on purpose. For a packaged food, send the digits and ask for lookup_barcode. A miss means no product, not a nearby guess.
calculate_macro_targets is a formula from age, sex, weight, height, an activity label, and a goal. It is not a measured metabolism and it is not medical advice. Treat it as a starting budget you adjust from the scale and the log, not as a prescription.
The texts that do the work
The programme, once
From my profile, write a 4-day upper/lower split. No specific weights.
Rep ranges with an RPE target. State the progression rule and when it
stops working. One swap for any lift that commonly bothers shoulders.
Then stop. Do not add a second programme.
After the session, from the gym
Log this. Do not rewrite the plan.
Squat 100 kg x 5 x 3, RPE 8.
Bench 72.5 kg x 5 x 3, RPE 9.
Row 60 kg x 8 x 3, RPE 7.
What changes next time for each lift, if anything? One note only if a
lift has not moved in three sessions.
The week review
Read the sessions since the programme started. Which lifts moved, which
did not, and what single change would you make? Do not rewrite the week.
The meal
Log lunch against today's training. Search the catalog, then scale:
180 g cooked chicken thigh, 250 g cooked rice, 150 g broccoli, 10 g
olive oil. Give each food_id, the grams you used, and the protein total.
If a search misses, stop on that item.
Weigh the food. "A chicken breast" is not a portion, and the tool cannot invent the grams honestly. If you describe it in words, the rule above forces Instinct to state the weight it assumed so you can correct it.
A photo is a different tool, analyze_food_photo, and it needs the image bytes inside the tool call. A picture you text is not automatically that argument. Instinct is a text agent. For this setup, use the scale and the search. A photo result is an estimate anyway, and we have not published an accuracy score for it.
The first month
Week one. Profile, connection test, programme. Train the programme. Text every session, including the short ones and the bad ones. A log with holes cannot be read in week four.
Week two. Same days. The useful message is the after-session text, not a request for a better split. If Instinct offers a new programme, tell it to append and stop.
Week three. One review. Expect a stall. A stall in week three is normal. It is not evidence the split was wrong.
Week four. One change. Not a new week, not a new diet, not a new set of rules. If you change the programme and the food target in the same week, you will not know which one did anything.
What not to take from it
A starting weight. It has not seen you lift. Use a recent set you actually did.
Training through pain. Persistent pain is a person with a qualification, not a follow-up text.
Supplements, medications, or a diagnosis. Contested evidence, and none of it is in the food tools.
A twelve-week prediction. Any number for what you will lift or weigh is invented. Training response varies, and a confident forecast is the tell that you are reading generated text.
A food total with no row. That is the failure this connection exists to prevent.
Where the boundary is
Whether four sets of eight suits your shoulder is judgement. How much protein is in 180 g of a specific cooked chicken thigh row is a lookup. Instinct can hold the first conversation. It should only be trusted on the second when you can see the food_id.
If you are new to lifting, coming back from an injury, pregnant, or managing a condition, have a qualified person look at the programme before you load it. Written cues are a poor way to learn a heavy squat.
What we have not measured
We have not run Instinct through a training block, and we have not counted how often it skips the tool and answers from memory. The connection steps match the MCP shape Instinct publishes: a named URL and a header on a public HTTPS server. They are not a screenshot tour of every Instinct screen, and Instinct can change that screen.
We also have not published an accuracy benchmark for the food data. You can check a single row against the panel on the packet. You cannot check a claim we never made.
The same idea in other clients: Claude, ChatGPT, and Muse. What a fitness MCP server is, and why this one is a food catalog rather than a coaching product, is in fitness MCP servers.
Related
Frequently Asked Questions
Can Instinct be a personal trainer?
It can hold a training profile in the text thread, write a plain programme, and log sessions you send from the gym. It cannot see the lift, so it cannot coach technique. Food figures are only as good as the catalog call.
How do I connect Instinct to a nutrition MCP server?
In the Instinct account, add an MCP connection named calorie-api, URL https://calorieapiadmin.com/mcp/, header X-API-Key set to your MCP key. Then ask it to search one food and scale 100 g, and check that the reply includes a food_id.
Does an Instinct text replace weighing food?
No. The portion tool scales a gram weight you supply. Describe the food and Instinct has to assume a weight. A photo in the text is not the same as the photo tool, which needs the image bytes in the call.
Will Instinct see my Claude or Muse training plan?
Not by itself. Instinct does not talk directly to other companies' agents. Paste the plan or keep the log in the Instinct thread.
Is the calorie target from the tool medical advice?
No. calculate_macro_targets is a formula from the stats you pass in. It is a starting budget, not a measured metabolism and not a prescription.
