Almost Fire

com.almostfirePublished by almostfire.comOfficial publisherv1.3.1Updated Nov 8, 2026

Strength training plans for 26 weeks, plus set, meal and progress logging in Almost Fire.

Overview

AI-generated overview

Almost Fire builds 26-week strength-training plans and lets an assistant run them: log sets, cardio, meals and weigh-ins, and read progress.

What you can do
  • Create and save 26-week strength plans, and look up exercises with cues, body map and swaps
  • Read today's session, the schedule and a single session with targets and logged sets
  • Log, edit and delete sets, cardio, weigh-ins and check-ins; start, finish, skip or move sessions
  • Swap exercises in a session and list same-movement alternatives
  • Read meal photos or search foods, then log or remove food entries and read daily nutrition
  • Show progress charts, progress numbers and the weekly review, and undo recent changes
When to use it
For adults who want a gym or home strength program and want to run it conversationally: asking for a plan, checking today's session, logging sets and meals, and reviewing progress. Plan creation and exercise lookups work without an account.
Requirements
Remote MCP endpoint at strength.almostfire.com; nothing to install locally. Plan creation and exercise lookups need no account. Saving a plan and all record tools require signing in to an Almost Fire account and authorizing the app; the account is created on first save.
Before you install
Record tools read and change the user's own Almost Fire account: sets, sessions, meals, weigh-ins and check-ins can be written, edited, moved or deleted, though each change returns an undo id. Meal photos and account data are sent to the chat assistant to answer. Not medical advice: it does not diagnose, plan rehab or clear anyone to train, and pain or symptom stop rules apply.

Installation

In SourceWeft

  1. Open Almost Fire in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.almostfire%2Fstrength-training/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "almost-fire": {
      "type": "http",
      "url": "https://strength.almostfire.com/api/mcp"
    }
  }
}

README

Almost Fire for ChatGPT and Claude

Almost Fire makes strength-training plans and runs them with you. Ask for a plan and you get all 26 weeks from the engine the Almost Fire app uses: a split for the days you have, every session's exercises with sets, reps, rest and effort, a lighter week to finish each block, and gentler swaps for a shoulder, back or knee you want to protect. Print it, save it as a PDF or change it in the chat, and look up any exercise on the body map with its cues and swaps. None of that needs an account, and saving the plan to Almost Fire is free: the first time, it makes your account.

With your Almost Fire account you can run the plan from the chat: today's session with each set's target, logging sets, cardio and weigh-ins, logging a meal from a photo with its grams, calories and protein, and your progress graphs and Sunday review. Every change comes back with Undo.

It's for adults who want to get stronger in a gym or at home. Each plan carries stop rules for pain. It isn't medical advice, and it doesn't plan rehab, running or sport-specific training.

Try it

  • "Make me a 3-day strength plan for building muscle." Then "Save it to Almost Fire."
  • "How do I do a Romanian deadlift?"
  • "What's my session today?" (asks you to sign in to Almost Fire the first time)
  • "Log 60 kg for 8 reps on bench."
  • "Log my lunch from a photo."

What's in this folder

PathWhat it is
.claude-plugin/plugin.json, .mcp.jsonThe plugin for Claude, and the connector it uses
plugin.json, mcp.jsonThe same plugin for ChatGPT, with its listing and review test cases
server.jsonThe connector's entry in the MCP Registry
skills/Five skills: start-training, coach-like-stoke, train-today, log-food-from-a-photo, weekly-check-in
assets/The icon and screenshots

The skills are instructions only. The plugin runs nothing on your computer: no hooks, scripts or local servers.

What it connects to and sends

The plugin connects to one server, https://strength.almostfire.com/api/mcp, run by Almost Fire.

  • Without an account, a plan request sends the answers you give (days a week, goal, equipment, anything to protect) and an exercise lookup sends the exercise's name. Almost Fire doesn't keep them.
  • With your account, the connector reads and changes only your own Almost Fire account, after you sign in to Almost Fire and allow the app. What you ask for (your plan, sessions, sets, food, weigh-ins and progress, and the meal photos you send) goes to ChatGPT or Claude to answer you. Apple Health numbers never go.
  • Meal photos are read the same way the Almost Fire app reads them.
  • Disconnect Almost Fire in ChatGPT's or Claude's settings at any time.

Privacy policy: https://strength.almostfire.com/privacy. Terms: https://strength.almostfire.com/terms.

Support

https://strength.almostfire.com/support, or email [email protected].

Source: README.md at commit a19c6ca

Tools

28

make_plan

Make a training plan

Use this when someone asks for a strength, gym, weightlifting or muscle-building program or workout plan, at a gym or at home. Builds all 26 weeks from Almost Fire's plan engine, the one the app uses: the split for their days, each session's exercises with sets, reps, rest and effort, a lighter week to end each block, and gentler swaps for anything they protect. No account needed. Ask how many days they can train first; fill the rest from what they've said and leave the others null. Do not use for running or race plans, sport-specific conditioning, diet plans or injury rehab.

ParametersgoalsplitstyleprotectequipmentloveLiftsskipLiftsdaysPerWeekrequiredsessionMinutesbuildPriorities

save_plan

Save the plan to Almost Fire

Use this when the person wants to keep, save or start a plan make_plan made, or presses Save on its card. Saves the plan to their Almost Fire account, free: the first time it asks them to sign in, which makes their account. Send the answers make_plan used, so the saved plan is the one they saw. The card then opens their plan page in Almost Fire, where their first week starts. emailWeekly true also emails them each week's sessions on Monday mornings, until they start in the app. Do not use before make_plan has shown them a plan, or to change the plan of someone who already trains in Almost Fire.

ParametersgoalsplitstyleprotectequipmentloveLiftsskipLiftsdaysPerWeekrequiredemailWeeklyidempotencyKeysessionMinutesbuildPriorities

show_exercise

Show an exercise

Use this when someone asks how to do an exercise, which muscles it works, or what to do instead. Shows it on the body map with its equipment, its cues and swaps that train the same thing. No account needed. Do not use to diagnose pain or to give rehab exercises.

Parametersexerciserequired

get_today

Today

Use this when the person asks what's on today or how today's session is going, and before logging a set. Reads today's session (or the next one) in their Almost Fire account with every exercise, its target and the sets logged, this week's sessions and training volume, and their food and weight so far today. Do not use for another day's session; use get_schedule and get_session.

Takes no parameters.

get_schedule

Sessions in a range

Use this when the person asks what's coming up this week or next, or what they did on other days. Lists their sessions between two ISO times (from, to), each with its id, day, time and status. Do not use for today's session; use get_today.

Parameterstorequiredfromrequired

get_session

One session

Use this when you need one session in full, by its id from get_today or get_schedule. Reads its exercises (slots) with each target, the exercises each slot allows, and the sets logged. Do not use to list sessions; use get_schedule.

ParameterssessionIdrequired

log_set

Log a set

Use this when the person tells you a set they did. Give the session and slot from get_today or get_session, and the load and reps they said. Never invent a number. loadUnit kg or lb as they said it (label for a machine's own numbers); rir only if they say it. setNumber null logs the next set. Comes back with an Undo. Do not use to correct a set already logged; use edit_set.

ParametersrirloadrequiredrepsrequiredslotrequiredloadUnitsessionIdrequiredsetNumberidempotencyKeyrequired

edit_set

Correct a set

Use this when the person corrects a set they already logged. Give its setId from get_today or get_session and only the values they change; null keeps the rest. Comes back with an Undo. Do not use to log a new set; use log_set.

ParametersrirloadrepssetIdrequiredloadUnitidempotencyKeyrequired

delete_set

Remove a set

Use this when the person asks to remove a set they logged by mistake. Give its setId. Comes back with an Undo. Do not use to change a set's numbers; use edit_set.

ParameterssetIdrequiredidempotencyKeyrequired

list_alternatives

Swaps for an exercise

Use this when the person wants a different exercise in a session (a busy machine, a sore joint, missing kit). Lists the swaps that train the same movement in that slot and week, best first, by sessionId and slot. Nothing changes; swap with swap_exercise. Do not use to explain how an exercise is done; use show_exercise.

ParametersslotrequiredsessionIdrequired

swap_exercise

Swap an exercise

Use this when the person asks to swap the exercise in a session. Give the sessionId and slot, and the exerciseKey they chose, or a same-movement one from list_alternatives when they leave it to you. The new exercise brings its own rules, and loads never carry over between exercises. untilWeek null swaps that session only; a week keeps the swap for that day through that program week. Comes back with an Undo. Do not use to move a session; use move_session.

ParametersslotrequiredsessionIdrequireduntilWeekexerciseKeyrequiredidempotencyKeyrequired

update_session

Start or finish a session

Use this when the person starts, finishes or skips a session, or says how it felt. status IN_PROGRESS starts it, DONE finishes it and SKIPPED skips it; feeling is 1 to 5; notes and gym as they say. Null leaves a field as it is. Comes back with an Undo. Do not use to move a session to another day; use move_session.

ParametersgymnotesstatusfeelingsessionIdrequiredidempotencyKeyrequired

move_session

Move a session

Use this when the person asks to move a session to another day or time. Give its sessionId and the new start and end as ISO times. Comes back with an Undo. Do not use to skip a session; use update_session.

ParametersendrequiredstartrequiredsessionIdrequiredidempotencyKeyrequired

log_cardio

Log cardio

Use this when the person tells you about cardio they did: a run, a ride, the rower, a walk. Record cardio the person did, with the numbers they give: minutes always; distance, heart rate, level, incline, energy and intervals only when given. Never invent them. effort is a talk test: easy (could hold a conversation), steady (short sentences), hard (a few words). Give sessionId to count it in that session (it fills the session's planned cardio when it is the same exercise), or null for cardio on its own. Null startedAt is just finished. Cardio counts as minutes, never kilograms. Applied immediately with Undo. Do not use for a lifting set; use log_set.

ParameterskcalleveleffortinclineminutesrequiredintervalssessionIdstartedAtdistanceKmexerciseKeyrequiredavgHeartRatemaxHeartRate+1 more

record_checkin

Check in

Use this when the person says how they feel before or after training, or tells you about pain or swelling. Record the person’s reported readiness and symptoms. symptoms.pec is pain anywhere (sharp means sharp pain or pulling) and symptoms.knee is swelling anywhere, whatever the body part. After a session they may also report feel, strength, effort (1–10 for the whole session), more (sets they could have added), areas and soreness (muscle, joint, sharp, swelling); also set pec or knee from soreness as the phone does: joint is knee ache, sharp is pec sharp, swelling is knee swollen, muscle leaves both clear. A morning check-in has no session: readiness is how they feel today (1 Flat, 2 Meh, 3 Okay, 4 Good, 5 On fire), morning is true, and behind lists what they say is behind it (sleep, work, sore, stress, family, sick, travel); log their weight with log_weight. How they feel the morning after a session is next (clear or worse) on that session’s check-in. Never infer medical clearance. Do not use to diagnose pain or to log their weight; use log_weight for weight.

ParametersnotesymptomsrequiredreadinesssessionIdidempotencyKeyrequired

log_weight

Log a weigh-in

Use this when the person tells you their weight. Give the weight and unit, and when (null is now). Targets follow the smoothed trend, never one reading. Comes back with an Undo. Do not use to set a weight goal.

ParametersunitweightrequiredmeasuredAtidempotencyKeyrequired

open_camera

Open the Almost Fire camera

Use this when the person wants to log a meal from a photo but hasn't attached one, or the app can't hand you their photo. Opens the Almost Fire camera in the chat: they take or choose a photo there, Stoke reads each food with its grams and calories, and Log saves it. Do not use when they've attached a photo; use read_meal_photo.

Parametersnote

read_meal_photo

Read a meal photo

Use this when the person attaches a photo of food they ate or will eat. Reads it as the Almost Fire camera does: a plate or bowl comes back as each food with its grams, calories, macros and how sure the read is; a packet as its label per 100 g; a pot on a kitchen scale as its grams. Nothing is logged: read it back, take their corrections, then call log_foods with its logItems (or they tap Log on the card). Do not use for a photo that isn't food, or to judge anyone's body.

Parametersnotephotorequired

read_meal_photo_upload

Read the camera's photo

The Almost Fire camera card's photo, read as read_meal_photo reads one. Only the card calls it.

ParametersnoteimagerequiredmimeTyperequired

search_foods

Find their foods

Use this when the person tells you a food they ate without a photo, before log_foods. Find the person's own foods before anything else, by name or by kind: the words they used ("protein powder", "milk", "my usual bread"), not a brand you guess. mine is their saved foods that fit, each with an id, macros per 100 g, their usual grams (lastGrams), match (name: its name holds the words; kind: it is that kind of food, so "protein powder" finds their whey; word: only the last of their words, the one that says what it is, fits, so it is a different food of that sort, never theirs unless they say so) and lastEatenAt. When none fits by name, recent lists the saved foods they logged lately: read it too, because their food is often named by brand (a protein powder called Impact Lean Whey, a milk called Light Start). list is at most three plain foods from the food list, each with a foodKey; logging one saves it as a new food of theirs. Use their own food (mine or recent) when it is the same thing, or the kind of food they named (their milk for "milk", their whey for "protein powder"); a food that only sounds alike or shares a word is not it (corn flour is not corn, dark soy sauce is not dark chocolate). "My most recent" or "my usual" means the one they ate latest. Use list, an estimate or create_food only when none of theirs is it, and say it's new. Search before estimating, and log what it finds by grams. A recipe has recipe set: its foods and their grams, serves, cookedGrams and gramsLeft, what's left of the pot. Do not use to read a photo; use read_meal_photo.

Parametersqueryrequired

log_foods

Log a meal

Use this when the person has agreed what they ate and wants it logged. One entry per food: from a photo read (read_meal_photo's logItems, with their corrections), a saved food or recipe by id and grams (from search_foods), or an estimate with a name, serving, quantity and its numbers per serving. eatenAt null is now. Comes back with an Undo. Do not use before they've agreed the foods and amounts, or for a meal they're only planning.

ParametersitemsrequiredeatenAtidempotencyKeyrequired

delete_food_entry

Remove a food

Use this when the person asks to remove a food they logged by mistake. Give its entry id from get_nutrition. Comes back with an Undo. Do not use for a food they still ate; log the right amount instead.

ParametersentryIdrequiredidempotencyKeyrequired

get_nutrition

Food for a day

Use this when the person asks what they've eaten or how their calories and protein are going, and before removing a logged food. Reads a day's food (date null is today): every entry with its id, the totals against the day's targets, their usual foods and saved recipes, and the weight trend. Do not use to log food; use log_foods.

Parametersdate

show_progress_chart

Show a progress graph

Use this when the person asks to see their progress on a graph. Draws one of their Progress graphs from their records: lift_max or lift_volume per session for one exercise (key), weekly_volume, body_weight (90 days), cardio_distance, cardio_pace or cardio_heart_rate, daily_kcal or daily_protein (30 days). Training volume is the number that matters most. Do not use for sleep or heart-rate numbers, which stay in the Almost Fire app.

Parameterskeynotemetricrequired

get_progress

Progress

Use this when the person asks how they're progressing, in numbers. Reads their Progress page: training volume by week, bests, each lift's estimated max and trend, sessions done, bodyweight and cardio, as the app shows them. Do not use for a graph; use show_progress_chart.

Takes no parameters.

get_weekly_review

The Sunday review

Use this when the person asks how their week went or what changes next week. Reads the Sunday review of a program week (null is the latest): sessions, volume, new bests, the pace, each change Stoke made to next week with its reason, and what was kept and why. Those changes follow fixed rules: explain each from its reason, never invent another. Do not use for today's session; use get_today.

Parametersweek

undo_review_change

Keep next week as planned

Use this when the person doesn't want one of the changes the Sunday review made to next week. Give the change's index from get_weekly_review. Next week goes back to the program's target for that change. Do not use for a change they made themselves; use undo.

ParametersweekrequiredindexrequiredidempotencyKeyrequired

undo

Undo a change

Use this when the person wants to take back a change made here (a logged set, meal, weigh-in or any other) while its Undo is open. Give the undo.id the change came back with. Do not use for a change they made in the Almost Fire app itself.

ParametersundoIdrequiredidempotencyKeyrequired

Version history

1
  1. v1.3.1LatestNov 8, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts