MCPサーバー

anatome

dev.anatome/anatome
ヘルスケア 生産性 公開・接続可能 MCP 2025-11-25

このMCPでできること

Tracks workouts, meals, hydration, body measurements, cardio, nutrition, routines, and muscle recovery, with meal and workout planning tools.

ai_meal_plan
Draft a meal plan. Not medical advice. confirm:true required. Pass health constraints so the draft can honour them.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['days', 'confirm'], 'properties': {'days': {'type': 'number'}, 'goal': {'type': 'string'}, 'health': {'type': 'object', 'properties': {'injuries': {'type': 'array', 'items': {'type': 'string'}}, 'allergies': {'type': 'array', 'items': {'type': 'string'}}, 'pregnancy': {'type': 'boolean'}, 'conditions': {'type': 'array', 'items': {'type': 'string'}}, 'medications': {'type': 'array', 'items': {'type': 'string'}}}}, 'confirm': {'type': 'boolean'}, 'diet_type': {'type': 'string'}, 'daily_calories': {'type': 'number'}}}
ai_parse_meal
Parse free-text meal description ('2 eggs and toast with butter') into structured items with grams + macros.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string'}, 'locale': {'type': 'string'}}}
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).
外部アクセスあり
入力スキーマ
{'type': 'object', 'oneOf': [{'required': ['image_url']}, {'required': ['image_base64']}], 'properties': {'image_url': {'type': 'string', 'description': 'Public URL of the image. Mutually exclusive with image_base64.'}, 'image_base64': {'type': 'string', 'description': 'Base64-encoded image bytes, no data: prefix. Mutually exclusive with image_url.'}}}
ai_workout_plan
Draft a workout plan. Not medical advice. confirm:true required. Pass health constraints so the draft can honour them.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['days_per_week', 'confirm'], 'properties': {'goal': {'type': 'string'}, 'health': {'type': 'object', 'properties': {'injuries': {'type': 'array', 'items': {'type': 'string'}}, 'allergies': {'type': 'array', 'items': {'type': 'string'}}, 'pregnancy': {'type': 'boolean'}, 'conditions': {'type': 'array', 'items': {'type': 'string'}}, 'medications': {'type': 'array', 'items': {'type': 'string'}}}}, 'confirm': {'type': 'boolean'}, 'experience': {'type': 'string'}, 'days_per_week': {'type': 'number'}}}
delete_meal
Delete a logged meal by id (soft delete, 30-day recovery window). Requires X-App-User-Id.
破壊的操作あり
入力スキーマ
{'type': 'object', 'required': ['meal_id'], 'properties': {'meal_id': {'type': 'string'}}}
出力スキーマ
{'type': 'object', 'properties': {'deleted': {'type': 'string'}}}
delete_workout
Delete a logged workout and its sets by id (soft delete, 30-day recovery window).
破壊的操作あり
入力スキーマ
{'type': 'object', 'required': ['workout_id'], 'properties': {'workout_id': {'type': 'string'}}}
出力スキーマ
{'type': 'object', 'properties': {'deleted': {'type': 'string'}}}
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {'confirm': {'type': 'boolean', 'description': 'Required true for a full dump when domains is omitted.'}, 'domains': {'type': 'string', 'description': "Comma-separated subset, e.g. 'meals,workouts'."}}}
generate_muscle_image
Render an SVG diagram of the human body with muscles highlighted in arbitrary colors. Returns SVG.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['layers'], 'properties': {'view': {'enum': ['front', 'back', 'dual'], 'type': 'string'}, 'gender': {'enum': ['male', 'female'], 'type': 'string'}, 'layers': {'type': 'array'}}}
出力スキーマ
{'type': 'object', 'properties': {'svg': {'type': 'string'}, 'format': {'type': 'string'}, 'muscles_rendered': {'type': 'array'}}}
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'limit': {'type': 'number', 'default': 100}, 'metric_type': {'type': 'string'}}}
出力スキーマ
{'type': 'object', 'properties': {'items': {'type': 'array'}}}
get_cardio_activities
List the current app user's cardio activities (most recent first).
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {'limit': {'type': 'number', 'default': 20}, 'date_to': {'type': 'string'}, 'date_from': {'type': 'string'}}}
出力スキーマ
{'type': 'object', 'properties': {'items': {'type': 'array'}}}
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {'limit': {'type': 'number', 'default': 100}, 'since': {'type': 'string', 'description': "Cursor from the previous call's last seq. Omit for a first sync."}, 'entities': {'type': 'string', 'description': "Optional comma-separated filter, e.g. 'workout,meal'."}}}
get_exercise
Fetch one exercise by name, id, or random.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'random': {'type': 'boolean'}}}
get_meals
List the current app user's meals for a date range.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {'date_to': {'type': 'string'}, 'date_from': {'type': 'string'}}}
出力スキーマ
{'type': 'object', 'properties': {'items': {'type': 'array'}}}
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {'include_bodyweight': {'type': 'boolean', 'description': "If true, add the user's bodyweight to bodyweight exercises (requires a logged weight or profile.weight)."}}}
出力スキーマ
{'type': 'object', 'properties': {'muscles': {'type': 'array'}, 'window_days': {'type': 'number'}, 'threshold_volume': {'type': 'number'}}}
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {'date_to': {'type': 'string', 'description': "YYYY-MM-DD (defaults to the user's today, in their timezone)"}, 'date_from': {'type': 'string', 'description': 'YYYY-MM-DD'}}}
出力スキーマ
{'type': 'object', 'properties': {'to': {'type': 'string'}, 'days': {'type': 'array'}, 'from': {'type': 'string'}, 'limits': {}, 'targets': {}}}
get_profile
Get the current app user's fitness profile (height, weight, macro + water goals, diet, active sports). Requires an app user context.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {}}
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['metric'], 'properties': {'to': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'days': {'type': 'number', 'description': 'training_load window'}, 'from': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'sport': {'type': 'string', 'description': 'training_load and cardio_prs'}, 'bucket': {'enum': ['day', 'week', 'month'], 'type': 'string'}, 'method': {'type': 'string', 'description': 'training_load: auto | power | hr | rpe'}, 'metric': {'enum': ['prs', 'volume', 'one_rep_max', 'streaks', 'adherence', 'training_load', 'weight_trend', 'body_delta', 'muscle_recovery', 'cardio_prs', 'goal_trajectory', 'nutrition_balance', 'correlate', 'compare_periods'], 'type': 'string'}, 'window': {'type': 'number', 'description': 'weight_trend smoothing window'}, 'goal_id': {'type': 'string', 'description': 'goal_trajectory'}, 'exercise': {'type': 'string', 'description': 'Required for prs; optional filter for volume, one_rep_max and compare_periods.'}, 'group_by': {'enum': ['exercise', 'muscle'], 'type': 'string', 'description': 'volume only'}, 'metric_a': {'type': 'string', 'description': 'correlate'}, 'metric_b': {'type': 'string', 'description': 'correlate'}, 'include_bodyweight': {'type': 'boolean', 'description': "Add the user's bodyweight to bodyweight exercises (pull-ups, dips). prs, volume and muscle_recovery."}}}
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string'}}}
get_water
List the current app user's water intake entries for a date range. Requires X-App-User-Id.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {'date': {'type': 'string'}, 'date_to': {'type': 'string'}, 'date_from': {'type': 'string'}}}
get_workouts
List the current app user's workouts (most recent first).
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {'limit': {'type': 'number', 'default': 20}, 'date_to': {'type': 'string'}, 'date_from': {'type': 'string'}}}
出力スキーマ
{'type': 'object', 'properties': {'items': {'type': 'array'}}}
instantiate_routine
Schedule the signed-in user's routine into planned workouts from start_date. Coach assignment of another user is REST-only.
入力スキーマ
{'type': 'object', 'required': ['routine_id', 'start_date'], 'properties': {'routine_id': {'type': 'string'}, 'start_date': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'cadence_days': {'type': 'number', 'default': 1}, 'idempotency_key': {'type': 'string'}}}
list_muscles
List all 23 supported muscle slugs with anatomical names.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'properties': {}}
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {'goal': {'enum': ['strength', 'hypertrophy', 'general', 'endurance', 'weight_loss'], 'type': 'string'}, 'limit': {'type': 'number', 'default': 20}, 'difficulty': {'enum': ['beginner', 'intermediate', 'advanced'], 'type': 'string'}, 'split_type': {'enum': ['full_body', 'upper_lower', 'push_pull_legs', 'push_pull', 'bro', 'custom'], 'type': 'string'}, 'days_per_week': {'type': 'number'}}}
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.
入力スキーマ
{'type': 'object', 'required': ['date', 'metric_type', 'value', 'unit'], 'properties': {'date': {'type': 'string'}, 'unit': {'type': 'string'}, 'notes': {'type': 'string'}, 'value': {'type': 'number'}, 'metric_type': {'type': 'string'}, 'idempotency_key': {'type': 'string'}}}
出力スキーマ
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'date': {'type': 'string'}, 'value': {'type': 'number'}, 'metric_type': {'type': 'string'}}}
log_cardio
Log a cardio activity (run/bike/swim/etc.) for the current app user. Supports duration, distance, HR, power, calories.
入力スキーマ
{'type': 'object', 'required': ['date', 'sport'], 'properties': {'date': {'type': 'string'}, 'notes': {'type': 'string'}, 'sport': {'type': 'string'}, 'title': {'type': 'string'}, 'avg_hr': {'type': 'number'}, 'calories': {'type': 'number'}, 'distance_m': {'type': 'number'}, 'idempotency_key': {'type': 'string'}, 'duration_seconds': {'type': 'number'}}}
出力スキーマ
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'date': {'type': 'string'}, 'sport': {'type': 'string'}, 'distance_m': {'type': 'number'}, 'duration_s': {'type': 'number'}}}
log_meal
Log a meal (calories + macros + optional ingredients) for the current app user.
入力スキーマ
{'type': 'object', 'required': ['date', 'name', 'calories'], 'properties': {'date': {'type': 'string'}, 'fats': {'type': 'number'}, 'name': {'type': 'string'}, 'carbs': {'type': 'number'}, 'protein': {'type': 'number'}, 'calories': {'type': 'number'}, 'meal_type': {'type': 'string'}, 'idempotency_key': {'type': 'string'}}}
出力スキーマ
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'date': {'type': 'string'}, 'fats': {'type': 'number'}, 'name': {'type': 'string'}, 'carbs': {'type': 'number'}, 'protein': {'type': 'number'}, 'calories': {'type': 'number'}}}
log_water
Log water intake (ml) for the current app user.
入力スキーマ
{'type': 'object', 'required': ['date', 'amount_ml'], 'properties': {'date': {'type': 'string'}, 'amount_ml': {'type': 'number'}, 'idempotency_key': {'type': 'string'}}}
出力スキーマ
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'ml': {'type': 'number'}, 'date': {'type': 'string'}}}
log_workout
Log a workout with exercise sets (strength or cardio unified). Requires an app user context.
入力スキーマ
{'type': 'object', 'required': ['date'], 'properties': {'date': {'type': 'string'}, 'sets': {'type': 'array', 'items': {'type': 'object', 'properties': {'rpe': {'type': 'number'}, 'reps': {'type': 'number'}, 'notes': {'type': 'string'}, 'weight': {'type': 'number'}, 'completed': {'type': 'boolean'}, 'distance_m': {'type': 'number'}, 'set_number': {'type': 'number'}, 'rest_seconds': {'type': 'number'}, 'exercise_name': {'type': 'string'}, 'duration_seconds': {'type': 'number'}}}}, 'title': {'type': 'string'}, 'primary_sport': {'type': 'string'}, 'idempotency_key': {'type': 'string'}}}
出力スキーマ
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'date': {'type': 'string'}, 'title': {'type': 'string'}}}
lookup_barcode
Lookup a food product by EAN/UPC barcode.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['barcode'], 'properties': {'barcode': {'type': 'string'}}}
出力スキーマ
{'type': 'object', 'properties': {'found': {'type': 'boolean'}, 'barcode': {'type': 'string'}, 'message': {'type': 'string'}}}
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {'domains': {'type': 'string', 'description': "Comma-separated subset. Accepted: workouts, nutrition, checkin, notes, profile, or 'all'. Default: workouts,nutrition."}, 'workout_limit': {'type': 'number', 'default': 10}}}
出力スキーマ
{'type': 'object', 'properties': {'date': {'type': 'string'}, 'domains': {}, 'profile': {}, 'recent_notes': {}, 'latest_checkin': {}, 'nutrition_today': {}, 'recent_workouts': {}}}
resolve_exercise
Resolve an exercise name into primary/secondary muscle layers for rendering.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['exercise'], 'properties': {'exercise': {'type': 'string'}}}
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`.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['q'], 'properties': {'q': {'type': 'string'}, 'level': {'type': 'string'}, 'limit': {'type': 'number', 'default': 20}, 'cursor': {'type': 'string', 'description': 'next_cursor from the previous response. Omit for the first page.'}, 'fields': {'type': 'string', 'description': 'Extra fields, comma-separated, or `all`.'}, 'muscle': {'type': 'string'}, 'equipment': {'type': 'string'}}}
出力スキーマ
{'type': 'object', 'properties': {'results': {'type': 'array', 'items': {'type': 'object'}}, 'next_cursor': {'type': 'string'}, 'total_matched': {'type': 'number'}}}
search_foods
Search food products by name (Open Food Facts + USDA). Returns macros per 100g.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['q'], 'properties': {'q': {'type': 'string'}, 'locale': {'type': 'string'}, 'page_size': {'type': 'number'}}}
出力スキーマ
{'type': 'object', 'properties': {'count': {'type': 'number'}, 'items': {'type': 'array', 'items': {'type': 'object'}}}}
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.
入力スキーマ
{'type': 'object', 'required': ['meal_id'], 'properties': {'date': {'type': 'string'}, 'fats': {'type': 'number'}, 'name': {'type': 'string'}, 'carbs': {'type': 'number'}, 'fiber': {'type': 'number'}, 'sugar': {'type': 'number'}, 'sodium': {'type': 'number', 'description': 'mg'}, 'alcohol': {'type': 'number', 'description': 'g of ethanol'}, 'meal_id': {'type': 'string'}, 'protein': {'type': 'number'}, 'calories': {'type': 'number'}, 'meal_type': {'type': 'string'}, 'saturated_fat': {'type': 'number'}, 'idempotency_key': {'type': 'string'}}}
出力スキーマ
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'date': {'type': 'string'}, 'fats': {'type': 'number'}, 'name': {'type': 'string'}, 'carbs': {'type': 'number'}, 'protein': {'type': 'number'}, 'calories': {'type': 'number'}}}
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.
破壊的操作あり
入力スキーマ
{'type': 'object', 'required': ['set_ids'], 'properties': {'rpe': {'type': 'number'}, 'reps': {'type': 'number'}, 'notes': {'type': 'string'}, 'delete': {'type': 'boolean'}, 'weight': {'type': 'number'}, 'set_ids': {'type': 'array', 'items': {'type': 'string'}}, 'exercise': {'type': 'string', 'description': "Catalog name, ext_id, or the user's own words for a custom movement."}, 'completed': {'type': 'boolean'}}}
出力スキーマ
{'type': 'object', 'properties': {'deleted': {'type': 'number'}, 'missing': {'type': 'array'}, 'updated': {'type': 'number'}}}
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.
冪等
入力スキーマ
{'type': 'object', 'properties': {'goal': {'type': 'string'}, 'height': {'type': 'number', 'description': 'cm'}, 'weight': {'type': 'number', 'description': 'kg'}, 'language': {'type': 'string'}, 'timezone': {'type': 'string', 'description': "IANA zone name, e.g. 'Europe/Warsaw'."}, 'diet_type': {'type': 'string'}, 'unit_system': {'enum': ['metric', 'imperial'], 'type': 'string'}, 'active_sports': {'type': 'array', 'items': {'type': 'string'}}, 'meals_per_day': {'type': 'number'}, 'daily_fats_goal': {'type': 'number'}, 'daily_carbs_goal': {'type': 'number'}, 'daily_fiber_goal': {'type': 'number', 'description': 'g/day to reach'}, 'daily_sugar_limit': {'type': 'number', 'description': 'g/day to stay under'}, 'daily_calorie_goal': {'type': 'number'}, 'daily_protein_goal': {'type': 'number'}, 'daily_sodium_limit': {'type': 'number', 'description': 'mg/day to stay under'}, 'daily_water_goal_ml': {'type': 'number'}}}
追加
get_progress
2026年9月17日12:39
追加
my_training_context
2026年9月17日12:39
追加
get_events
2026年9月17日12:39
追加
export_data
2026年9月17日12:39
追加
delete_workout
2026年9月17日12:39
追加
update_sets
2026年9月17日12:39
追加
delete_meal
2026年9月17日12:39
追加
update_meal
2026年9月17日12:39
追加
get_water
2026年9月17日12:39
追加
get_nutrition_daily
2026年9月17日12:39
追加
get_muscle_recovery
2026年9月17日12:39
追加
ai_workout_plan
2026年9月17日12:39
追加
ai_meal_plan
2026年9月17日12:39
追加
ai_photo_macros
2026年9月17日12:39
追加
ai_parse_meal
2026年9月17日12:39
追加
get_cardio_activities
2026年9月17日12:39
追加
log_cardio
2026年9月17日12:39
追加
get_profile
2026年9月17日12:39
追加
upsert_profile
2026年9月17日12:39
追加
get_body_metrics
2026年9月17日12:39
追加
log_body_metric
2026年9月17日12:39
追加
log_water
2026年9月17日12:39
追加
get_meals
2026年9月17日12:39
追加
log_meal
2026年9月17日12:39
追加
get_workouts
2026年9月17日12:39
追加
log_workout
2026年9月17日12:39
追加
lookup_barcode
2026年9月17日12:39
追加
search_foods
2026年9月17日12:39
追加
instantiate_routine
2026年9月17日12:39
追加
get_routine
2026年9月17日12:39