TrainRec
app.trainrec/trainrecVersion 1.0.0Your AI assistant logs your meals and workouts, then plans your week from what you did.
Status
Responds277 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 13:39 UTC
- Latency
- 277 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://api.trainrec.app/mcpResponds277 msNo sign-in
Claude Code
claude mcp add --transport http trainrec https://api.trainrec.app/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: trainrec
Remote MCP server URL: https://api.trainrec.app/mcpCursor
{
"mcpServers": {
"trainrec": {
"url": "https://api.trainrec.app/mcp"
}
}
}VS Code
code --add-mcp '{"name":"trainrec","type":"http","url":"https://api.trainrec.app/mcp"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
34 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
trainrec_add_exerciseMakes a custom exercise with a name, kind and muscles. equipment: "plate" for a plate-loaded machine or "smith" for a Smith machine gives it a sled or bar its base weight is counted from (change_settings baseWeight). | No | No | Not declared | No |
trainrec_change_settingsChanges settings. unit: lb or kg. foodShows: the full list of extra nutrients shown, in order, replacing the old one ([] shows only the macros). exerciseCalories: none, half or all of each day's bonus calories (active calories beyond a usual day, or workout calories when there is no daily count) added to the calorie target. weightGoal: a body weight in goalUnit (or theirs), or 0 to clear it; progress counts from their current trend. baseWeight: what a plate-loaded or Smith machine's sled or bar weighs empty, for one exercise (0 when not counted), or a barbell exercise's bar when it is not the standard 45 lb / 20 kg (an EZ or trap bar); it does not change sets already logged. birthYear: the year they were born, used only to estimate their maximum heart rate for heart rate zones. The change shows in the app with Undo. | No | No | Not declared | No |
trainrec_delete_foodRemoves one food entry, given its id and version. The person can undo it in the app. | Yes | No | Not declared | No |
trainrec_delete_measurementRemoves one reading, given its id and version. The person can undo it in the app. | Yes | No | Not declared | No |
trainrec_delete_reminderRemoves one reminder, given its id and version. To stop it for a while instead, set_reminder with on false. The person can undo it in the app. | Yes | No | Not declared | No |
trainrec_delete_routineRemoves one routine, given its id and version. Workouts already done from it stay. The person can undo it in the app. | Yes | No | Not declared | No |
trainrec_delete_workoutRemoves one workout, given its id and version. The person can undo it in the app. | Yes | No | Not declared | No |
trainrec_edit_foodChanges fields of one food entry, given its id and version. Fields left out stay as they are; perServing is replaced whole. planned: false marks a planned food eaten, with servings or perServing in the same call as what was actually had. | No | No | Not declared | No |
trainrec_exercise_historyOne exercise over time: personal records (heaviest, best estimated one-rep max, most reps, best session volume) and every session that included it, oldest first. Warm-ups and sets not done are excluded. pace is a straight line through the last 12 weeks of session estimated one-rep maxes (from weights and reps only), with where that line is in 4, 8 and 12 weeks; with target, also the day the line reaches it. pace is a projection at the current rate. | No | Yes | Not declared | No |
trainrec_find_issuesBugs and ideas already sent to the TrainRec team that look like what the person describes, best match first, with whether each is fixed. Call this before report_issue: if one matches, add to it rather than sending a new one. Read-only. | No | Yes | Not declared | No |
trainrec_food_dayEverything eaten on one day, each entry with its id and version, totals by meal and for the day, and what is left of the targets. | No | Yes | Not declared | No |
trainrec_get_routineOne routine with every set, in the person's unit, and its version. | No | Yes | Not declared | No |
trainrec_get_workoutOne workout with every set, in the person's unit, and its version. | No | Yes | Not declared | No |
trainrec_import_fileImports a CSV exported from Strong (workouts or measurements) or Hevy, as text exactly as the file has it; the server parses it. A large file can be sent in pieces split on whole workouts, each with the header line and the same batch id. Strong exports omit their unit. Workouts already imported are skipped. Only Strong and Hevy formats. | No | No | Not declared | No |
trainrec_import_foodImports past meals from another nutrition app or file: each entry's day, meal, name, numbers PER SERVING and servings. Up to 200 entries per call; the same batch id on later calls makes one import, undone together. Entries already imported from the same app are skipped. | No | No | Not declared | No |
trainrec_import_measurementsImports past measurements (weight, body fat, tape, blood pressure, resting heart rate, HRV, sleep, daily calories), each with its time as the source wrote it, kind, value and unit, and origin when the source names one. Up to 1000 per call; the same batch id on later calls makes one import. Readings already recorded are skipped. | No | No | Not declared | No |
trainrec_import_workoutsImports past workouts from another app or file. Exercises are matched to existing ones by name; unmatched names become custom exercises, listed in the result. Up to 100 workouts per call; the same batch id on later calls makes one import, undone together. Workouts already imported from the same app are skipped. | No | No | Not declared | No |
trainrec_list_exercisesExercise ids, names and kinds, built-in and custom, optionally filtered by words in the name. The kind decides which set fields apply. | No | Yes | Not declared | No |
trainrec_list_workoutsWorkouts between two dates, newest first, with each exercise and how many of its sets were done. Sets themselves are not included. | No | Yes | Not declared | No |
trainrec_log_foodAdds one or more food entries, each with its numbers PER SERVING and the number of servings. perServing takes the macros and any label nutrient (sodiumMg, potassiumMg and the rest); a nutrient left out counts as unknown, not zero. A glass of plain water is an entry named "Water" with kcal and macros 0 and waterMl. Each entry is its own change, with Undo. When the person asks to note a food without numbers ("just note it"), leave perServing out: it shows as numbers not added yet, until edit_food gives it perServing. planned: true puts a meal on a day ahead (or later today) without counting it in any total until it is eaten (edit_food planned: false). | No | No | Not declared | No |
trainrec_log_measurementRecords one measurement: weight, body fat, a tape measurement, blood pressure, resting heart rate, HRV or sleep, in the unit given (lb, kg, %, in, cm, bpm, ms, mmHg, min). Blood pressure takes systolic as value and diastolic as value2. | No | No | Not declared | No |
trainrec_measurementsBody measurements over time, one kind at a time, one value per day (the last reading of the day), in the person's units, newest last: weight, body fat, tape measurements, calories eaten per day, resting heart rate, HRV, blood pressure and sleep, and from Oura readiness, sleep score, temperature change and minutes stressed and restored. Without kind, the latest reading of every kind recorded. Each value has its id and version. | No | Yes | Not declared | No |
trainrec_overviewToday's date and weight unit for this person, today's food against their targets, their last few workouts, their routines, notes they left, and what they changed in the app since the assistant's last change (sets done differently from a plan show the planned values beside them). Each planned workout says whether it is reviewed: the app shows "Reviewed by" if the assistant wrote the plan after the person's latest workout. suggestedNext is the app's own pick from their rotation when nothing is planned today. Read-only. | No | Yes | Not declared | No |
trainrec_plan_workoutPlans a workout for the person to do: saves it in TrainRec, where their phone and watch walk them through it one set at a time, with each set's target (weight and reps, time or distance) and the rest after it. Every set starts as not yet done. Given an id and version, it changes an existing plan, even during the workout: sets already done are kept, and the phone and watch show the change within seconds. A workout that already happened is recorded with save_workout. | No | No | Not declared | No |
trainrec_recent_changesThe latest changes to this log, newest first, with who made each one and its seq number. | No | Yes | Not declared | No |
trainrec_remindersThe person's reminders (notifications on their phone): what each says, when, whether it is on, and who set it up. Read-only. | No | Yes | Not declared | No |
trainrec_report_issueSend a bug or an idea to the TrainRec team, only after the person agrees to. Call find_issues first: if an issue matches, pass its issueId with what this person adds; otherwise pass kind, title and details for a new one. Say what happened and where in the app, never anything about their health beyond what the bug needs. | No | No | Not declared | No |
trainrec_save_routineCreates a routine (a reusable workout plan the person starts from the app), or replaces one given its id and version. Same shape as a workout, without a day. | No | No | Not declared | No |
trainrec_save_workoutLogs a new workout, or replaces an existing one given its id and version: the whole workout as it should now be, so anything left out is removed. Sets default to done; planned sets for a later day have done: false. The change shows in the person's app with Undo. | No | No | Not declared | No |
trainrec_set_reminderReminders are TrainRec's notifications on the person's phone. They start at zero: none exist until the person asks their assistant (you) to set one up, so when they ask to be reminded of something, this is how. Adds a reminder, or changes one (give its id and version). Kinds: weigh_in, log_food (optionally one meal), workout (names today's planned workout if there is one) and streak (training weeks in a row, sent only if this week has no workout yet) go at a local time, and each is skipped that day once it is done. goal goes when a daily number is approaching or has reached its target (calories, a macro, or a nutrient with a target), not between 22:00 and 07:00. custom says the person's own words at a time. recap sends the day's calories and protein against their targets and its workout, at a time, every day it is on. Every reminder needs its trigger from the person: a time (their local time, 24-hour HH:MM) for timed kinds, or the amount left for an approaching goal alert. If they didn't say one, or said only "before 9 am", ask them what time; never choose it yourself. At most 20 reminders and 6 notifications a day. It shows in the app under the assistant's name, with Undo. | No | No | Not declared | No |
trainrec_set_targetsSets the daily calorie and macro targets, and optionally a target for any other nutrient (the keys in overview.foodNutrients): a ceiling for the ones to limit, such as sodiumMg, cholesterolMg, sugarG, saturatedFatG or caffeineMg, and an amount to reach for the rest, such as potassiumMg, fiberG or calciumMg. nutrients left out keeps the ones already set; {} clears them. | No | No | Not declared | No |
trainrec_settingsThe person's settings: weight unit, which nutrients beyond the macros show on their Food and Today screens, how much of a day's workout calories is added to their calorie target, their weight goal, and what the sled or bar of a plate-loaded or Smith machine weighs empty (baseWeights; a set's weight is the total, so plates loaded = weight - base). Also lists what only the person can change on the phone. Read-only. | No | Yes | Not declared | No |
trainrec_undo_changePuts a record back the way it was before one change, given the change's seq. Refused if the record has been changed again since. | Yes | No | Not declared | No |
trainrec_undo_importRemoves everything one import added, given its batch id. All or nothing: refused if any of it has been edited since. | Yes | No | Not declared | No |
Details
- Registry status
- Active
- Published
- Nov 12, 2026
- Updated
- Nov 12, 2026
- Repository
- Not given
- Categories (suggested)
- Project managementSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared