Almost Fire

com.almostfire由 almostfire.com 发布官方发布者v1.3.1更新于 Nov 8, 2026

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

已验证Streamable HTTP可网页运行位置与生活效率与工作流数据与分析

概览

AI 生成的概览

Almost Fire 生成 26 周力量训练计划,并让助手执行计划:记录组数、有氧、饮食与体重,查看进度。

可以做什么
  • 生成并保存 26 周力量训练计划,查询动作要领、身体部位图与替代动作
  • 读取今日训练、日程安排以及单次训练的组目标与已记录组数
  • 记录、修改、删除训练组、有氧、体重与状态打卡;开始、完成、跳过或移动训练
  • 在训练中替换动作,并列出同类型动作的替代选项
  • 读取餐食照片或搜索食物,记录或删除饮食条目并查看每日营养
  • 展示进度图表、进度数据与每周回顾,并撤销最近的更改
适用场景
适合希望获得健身房或居家力量训练计划、并以对话方式执行计划的成年人:索取计划、查看今日训练、记录组数与饮食、回顾进度。生成计划和查询动作无需账号。
运行要求
远程 MCP 端点 strength.almostfire.com,无需本地安装。生成计划和查询动作无需账号;保存计划及所有记录类工具需登录 Almost Fire 账号并授权应用,首次保存时会创建账号。
安装前请注意
记录类工具会读取并更改用户自己的 Almost Fire 账号数据:训练组、训练、饮食、体重和打卡可被写入、修改、移动或删除,每次更改会返回撤销标识。餐食照片和账号数据会发送给聊天助手以生成回答。不构成医疗建议:不诊断、不制定康复计划,也不判定任何人可以训练;疼痛与症状的停止规则适用。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Almost Fire,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.almostfire%2Fstrength-training/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "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].

来源:README.md,提交 a19c6ca

工具

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.

输入参数goalsplitstyleprotectequipmentloveLiftsskipLiftsdaysPerWeek必填sessionMinutesbuildPriorities

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.

输入参数goalsplitstyleprotectequipmentloveLiftsskipLiftsdaysPerWeek必填emailWeeklyidempotencyKeysessionMinutesbuildPriorities

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.

输入参数exercise必填

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.

无需输入参数。

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.

输入参数to必填from必填

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.

输入参数sessionId必填

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.

输入参数rirload必填reps必填slot必填loadUnitsessionId必填setNumberidempotencyKey必填

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.

输入参数rirloadrepssetId必填loadUnitidempotencyKey必填

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.

输入参数setId必填idempotencyKey必填

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.

输入参数slot必填sessionId必填

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.

输入参数slot必填sessionId必填untilWeekexerciseKey必填idempotencyKey必填

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.

输入参数gymnotesstatusfeelingsessionId必填idempotencyKey必填

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.

输入参数end必填start必填sessionId必填idempotencyKey必填

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.

输入参数kcalleveleffortinclineminutes必填intervalssessionIdstartedAtdistanceKmexerciseKey必填avgHeartRatemaxHeartRate另有 1 个

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.

输入参数notesymptoms必填readinesssessionIdidempotencyKey必填

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.

输入参数unitweight必填measuredAtidempotencyKey必填

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.

输入参数note

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.

输入参数notephoto必填

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.

输入参数noteimage必填mimeType必填

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.

输入参数query必填

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.

输入参数items必填eatenAtidempotencyKey必填

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.

输入参数entryId必填idempotencyKey必填

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.

输入参数date

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.

输入参数keynotemetric必填

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.

无需输入参数。

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.

输入参数week

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.

输入参数week必填index必填idempotencyKey必填

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.

输入参数undoId必填idempotencyKey必填

版本历史

1
  1. v1.3.1最新Nov 8, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分