
Anatome MCP server
Which servers in the official MCP registry are Anatome's own, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-21
- Registry namedev.anatome/anatomeverified in the MCP registry
The registry name sits under anatome.dev. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-21
- Tools36
- Server calls itselfanatome
- Server version2.7.1
- Protocol version2025-06-18
On 2026-10-21 the server answered initialize and tools/list without a sign-in. First answer in 807 ms.
- Whether its tools do the product's job has not been judged yet.
- Checked on 2 of the 7 days it takes to judge reliability.
Once connected
- update_meal, delete_meal, update_sets, delete_workout change data without a sign-in: anyone with the address can call them.
- Parameters are untyped or undescribed in 30 of 36 tools: check arguments before calling.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP scoreafter a weeka score needs 7 daily checks: 2 so far
- Answeredmeasuring2 of the 7 daily checks it takes to print a share
- Median first answer916 ms
- Space in an agent's context≈ 4,201 tokensthe definitions of all its tools (36), which an agent carries on every turn
- Tool definitionsB · 86 of 100
- Typed results20 of 36 toolsdeclared outputSchema: results come typed, read once
- Parameters without a description: in 30 of 36
What an agent can do with it
- not sure · log sets and meals within an AI assistant conversation
- not sure · estimate macros by photographing a meal
- not sure · suggest a dinner from photographed fridge contents
Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?
Worth a look
- Tools that change data, on a server that answers without a sign-in: update_meal, delete_meal, update_sets, delete_workout
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (30%), doing the product's job (25%), definitions (20%), context (10%) and use (15%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
search_exercisesSearch 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`.
get_exerciseFetch one exercise by name, id, or random.
resolve_exerciseResolve an exercise name into primary/secondary muscle layers for rendering.
list_musclesList all 23 supported muscle slugs with anatomical names.
generate_muscle_imageRender an SVG diagram of the human body with muscles highlighted in arbitrary colors. Returns SVG.
list_routinesBrowse the curated workout routine library (PPL, upper/lower, full-body, 5x5, etc.). Filter by difficulty, goal, split_type, days_per_week. Returns minimal list.
get_routineFetch 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.
instantiate_routineSchedule the signed-in user's routine into planned workouts from start_date. Coach assignment of another user is REST-only.
search_foodsSearch food products by name (Open Food Facts + USDA). Returns macros per 100g.
lookup_barcodeLookup a food product by EAN/UPC barcode.
log_workoutLog a workout with exercise sets (strength or cardio unified). Requires an app user context.
get_workoutsList the current app user's workouts (most recent first).
log_mealLog a meal (calories + macros + optional ingredients) for the current app user.
get_mealsList the current app user's meals for a date range.
log_waterLog water intake (ml) for the current app user.
log_body_metricLog 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.
get_body_metricsList 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.
upsert_profileUpsert 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…
get_profileGet the current app user's fitness profile (height, weight, macro + water goals, diet, active sports). Requires an app user context.
log_cardioLog a cardio activity (run/bike/swim/etc.) for the current app user. Supports duration, distance, HR, power, calories.
get_cardio_activitiesList the current app user's cardio activities (most recent first).
ai_parse_mealParse free-text meal description ('2 eggs and toast with butter') into structured items with grams + macros.
ai_photo_macrosAnalyze 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).
ai_meal_planDraft a meal plan. Not medical advice. confirm:true required. Pass health constraints so the draft can honour them.
ai_workout_planDraft a workout plan. Not medical advice. confirm:true required. Pass health constraints so the draft can honour them.
get_muscle_recoveryPer-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.
get_nutrition_dailyPer-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.
get_waterList the current app user's water intake entries for a date range. Requires X-App-User-Id.
update_mealCorrect 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.
delete_mealDelete a logged meal by id (soft delete, 30-day recovery window). Requires X-App-User-Id.
update_setsCorrect 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…
delete_workoutDelete a logged workout and its sets by id (soft delete, 30-day recovery window).
export_dataExport 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.
get_eventsWhat 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…
my_training_contextReturns 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.
get_progressAny 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…
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"anatome": {
"type": "http",
"url": "https://anatome.dev/mcp"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http anatome https://anatome.dev/mcpclaude.ai, ChatGPT and other clients: add https://anatome.dev/mcp as a custom connector in the settings.
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Cookies
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.