Anatome

dev.anatomePublished by anatome.devOfficial publisherv2.6.0Updated Oct 24, 2026

Log workouts and meals by telling your AI. 873 exercises, muscle diagrams, food lookup.

VerifiedStreamable HTTPWeb executableLocation & LifestyleKnowledge & MemoryData & Analytics

Overview

AI-generated overview

Lets an assistant look up exercises and routines, log workouts and meals, and analyze recovery and nutrition progress.

What you can do
Searches and fetches 873 exercises, lists muscle slugs and renders SVG muscle-highlight diagrams, and browses curated routines (PPL, upper/lower, 5x5 and others) that can be scheduled into planned workouts. Logs workout sets, cardio, meals, water and body metrics, and reports daily nutrition, per-muscle recovery and progress metrics. Also parses meal text, estimates macros from meal photos, drafts meal and workout plans, and exports user data or streams change events.
When to use it
Useful for people who want to log workouts, meals and body measurements conversationally and check recovery, nutrition totals or ready-made programs; also for coaching contexts that need an exercise library and muscle diagrams.
Requirements
Remote HTTP endpoint; nothing to install locally. Most personal-data tools need an app user context (X-App-User-Id header or a signed-in token). Food search relies on Open Food Facts and USDA data.
Before you install
Many tools write, update or delete user data such as workouts, meals, water and body metrics; deletions are soft with a 30-day recovery window. AI meal and workout drafts require confirm:true and are explicitly not medical advice. Photo macro estimation sends images to an external model and is rate-limited. Identity should come from the token, not a caller-supplied user id.

Installation

In SourceWeft

  1. Open Anatome 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/dev.anatome%2Fanatome/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": {
    "anatome": {
      "type": "http",
      "url": "https://anatome.dev/mcp"
    }
  }
}

Tools

36

search_exercises

Search exercises

Search 873 exercises by name with muscle/equipment/level filters. Rows are lean (name, ext_id, equipment, level, muscles) — enough to pick one; get_exercise returns instructions and media. Paginates: pass next_cursor back as `cursor`.

Parametersqrequiredlevellimitcursorfieldsmuscleequipment

get_exercise

Get exercise

Fetch one exercise by name, id, or random.

Parametersidnamerandom

resolve_exercise

Resolve exercise

Resolve an exercise name into primary/secondary muscle layers for rendering.

Parametersexerciserequired

list_muscles

List muscles

List all 23 supported muscle slugs with anatomical names.

Takes no parameters.

generate_muscle_image

Generate muscle image

Render an SVG diagram of the human body with muscles highlighted in arbitrary colors. Returns SVG.

Parametersviewgenderlayersrequired

list_routines

List routines

Browse the curated workout routine library (PPL, upper/lower, full-body, 5x5, etc.). Filter by difficulty, goal, split_type, days_per_week. Returns minimal list.

Parametersgoallimitdifficultysplit_typedays_per_week

get_routine

Get routine

Fetch a single curated routine by slug with all days + slots fully expanded (exercises, sets, reps ranges, rest, superset groupings). The 'give me a full program' tool.

Parametersslugrequired

instantiate_routine

Instantiate routine

Schedule the signed-in user's routine into planned workouts from start_date. Coach assignment of another user is REST-only.

Parametersroutine_idrequiredstart_daterequiredcadence_daysidempotency_key

search_foods

Search foods

Search food products by name (Open Food Facts + USDA). Returns macros per 100g.

Parametersqrequiredlocalepage_size

lookup_barcode

Lookup barcode

Lookup a food product by EAN/UPC barcode.

Parametersbarcoderequired

log_workout

Log workout

Log a workout with exercise sets (strength or cardio unified). Requires an app user context.

Parametersdaterequiredsetstitleprimary_sportidempotency_key

get_workouts

Get workouts

List the current app user's workouts (most recent first).

Parameterslimitdate_todate_from

log_meal

Log meal

Log a meal (calories + macros + optional ingredients) for the current app user.

Parametersdaterequiredfatsnamerequiredcarbsproteincaloriesrequiredmeal_typeidempotency_key

get_meals

Get meals

List the current app user's meals for a date range.

Parametersdate_todate_from

log_water

Log water

Log water intake (ml) for the current app user.

Parametersdaterequiredamount_mlrequiredidempotency_key

log_body_metric

Log body metric

Log a body measurement. metric_type: weight (kg), height (cm), body_fat (%), muscle_mass (kg), waist/chest/bicep/forearm/hip/thigh/calf/neck/shoulder (cm), bmi, resting_hr (bpm). Logging weight enables bodyweight-inclusive volume analytics.

Parametersdaterequiredunitrequirednotesvaluerequiredmetric_typerequiredidempotency_key

get_body_metrics

Get body metrics

List the current app user's body metrics / measurements (weight, height, bicep, body fat, etc.), most recent first. Filter by metric_type (e.g. 'weight', 'bicep') and/or a date range. Requires an app user context.

Parameterstofromlimitmetric_type

upsert_profile

Upsert profile

Upsert the current app user's fitness profile. Set `timezone` first: every daily total, streak and adherence window is bucketed by it and defaults to UTC. `weight` doubles as the fallback bodyweight for bodyweight-inclusive volume when no dated weight metric exists.

Parametersgoalheightweightlanguagetimezonediet_typeunit_systemactive_sportsmeals_per_daydaily_fats_goaldaily_carbs_goaldaily_fiber_goal+5 more

get_profile

Get profile

Get the current app user's fitness profile (height, weight, macro + water goals, diet, active sports). Requires an app user context.

Takes no parameters.

log_cardio

Log cardio

Log a cardio activity (run/bike/swim/etc.) for the current app user. Supports duration, distance, HR, power, calories.

Parametersdaterequirednotessportrequiredtitleavg_hrcaloriesdistance_midempotency_keyduration_seconds

get_cardio_activities

Get cardio activities

List the current app user's cardio activities (most recent first).

Parameterslimitdate_todate_from

ai_parse_meal

Ai parse meal

Parse free-text meal description ('2 eggs and toast with butter') into structured items with grams + macros.

Parameterstextrequiredlocale

ai_photo_macros

Ai photo macros

Analyze a meal image and estimate foods + macros. Pass exactly one of image_url or image_base64. Vision model, capped separately from the text AI budget (free tier 1/mo).

Parametersimage_urlimage_base64

ai_meal_plan

Ai meal plan

Draft a meal plan. Not medical advice. confirm:true required. Pass health constraints so the draft can honour them.

Parametersdaysrequiredgoalhealthconfirmrequireddiet_typedaily_calories

ai_workout_plan

Ai workout plan

Draft a workout plan. Not medical advice. confirm:true required. Pass health constraints so the draft can honour them.

Parametersgoalhealthconfirmrequiredexperiencedays_per_weekrequired

get_muscle_recovery

Get muscle recovery

Per-muscle 7-day recovery % (Fitbod parity) — the 'what should I train today?' input. Recommends fresh muscles. Pass include_bodyweight=true to add the user's bodyweight to bodyweight exercises so recovery reflects real load.

Parametersinclude_bodyweight

get_nutrition_daily

Get nutrition daily

Per-day calories, macros, fiber/sugar/sodium/alcohol, water, targets and adherence % over a date range (default: last 7 days). The 'how am I tracking today?' tool. Requires X-App-User-Id.

Parametersdate_todate_from

get_water

Get water

List the current app user's water intake entries for a date range. Requires X-App-User-Id.

Parametersdatedate_todate_from

update_meal

Update meal

Correct a previously logged meal — name, macros, nutrients, portion, date or meal_type. Pass only the fields you want to change. Requires X-App-User-Id.

Parametersdatefatsnamecarbsfibersugarsodiumalcoholmeal_idrequiredproteincaloriesmeal_type+2 more

delete_meal

Delete meal

Delete a logged meal by id (soft delete, 30-day recovery window). Requires X-App-User-Id.

Parametersmeal_idrequired

update_sets

Update sets

Correct sets already logged, by set id (log_workout returns them). Relabel the exercise, fix weight/reps/rpe, mark completed, add notes, or delete. Selection and change are separate, so a subset can be relabelled. Adding a set is log_workout, not this.

Parametersrperepsnotesdeleteweightset_idsrequiredexercisecompleted

delete_workout

Delete workout

Delete a logged workout and its sets by id (soft delete, 30-day recovery window).

Parametersworkout_idrequired

export_data

Export data

Export the signed-in user's data as JSON. Pass `domains` (e.g. meals,workouts) or confirm:true for a full copy. Identity comes from the token, never a caller-supplied user id.

Parametersconfirmdomains

get_events

Get events

What changed since a cursor, including DELETES, which a list read cannot show. Returns {seq, entity, id, action}. Pass the last seq back as `since` on the next call to receive only entries after it; omit `since` for a first sync. seq is a global counter: gaps in your feed are other accounts' events, not lost data. Judge completeness from has_more, not seq.

Parameterslimitsinceentities

my_training_context

My training context

Returns a slice of the signed-in user's training picture. Default domains are workouts and today's nutrition. Pass `domains` to add checkin, notes or profile, or `domains=all`. Identity comes from the token, not a caller-supplied user id.

Parametersdomainsworkout_limit

get_progress

Get progress

Any progression metric for the current user — pick one in `metric`. training_load is acute:chronic (>1.5 ramping too fast, <0.8 detraining); muscle_recovery is per-muscle freshness; correlate takes metric_a vs metric_b. Only completed sets count.

Parameterstodaysfromsportbucketmethodmetricrequiredwindowgoal_idexercisegroup_bymetric_a+2 more

Version history

1
  1. v2.6.0LatestSep 16, 2026

Score

72% 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

    Publish an icon in the registry entry.

  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.