# dev.anatome/anatome: tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/dev.anatome%2Fanatome/versions/latest)
- Connected to: https://anatome.dev/mcp
- Homepage: https://anatome.dev/
- Scoring rules: v2
- Tools: 36
- Average: 38.8 / 100 (Rain)
- Near-identical pairs: 2

This page shows how dev.anatome/anatome's tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Minor: 36 tools. Above 25, models start to tell tools apart less well.

## Tools

- `get_exercise`: 13 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: name, id, random.
  - Minor: String arguments with no constraint or example: name, id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument random is unclear.
  - Minor: Says nothing about what it returns.
- `resolve_exercise`: 23 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: exercise.
  - Minor: String arguments with no constraint or example: exercise.
  - Minor: Says nothing about what it returns.
- `ai_meal_plan`: 24 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: days, goal, diet_type, daily_calories, confirm, health, health.allergies, health.injuries, health.pregnancy, health.medications, health.conditions.
  - Minor: String arguments with no constraint or example: goal, diet_type.
  - Minor: The meaning of the boolean argument confirm is unclear.
  - Minor: The meaning of the boolean argument health.pregnancy is unclear.
  - Minor: Says nothing about what it returns.
- `ai_workout_plan`: 24 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: days_per_week, goal, experience, confirm, health, health.allergies, health.injuries, health.pregnancy, health.medications, health.conditions.
  - Minor: String arguments with no constraint or example: goal, experience.
  - Minor: The meaning of the boolean argument confirm is unclear.
  - Minor: The meaning of the boolean argument health.pregnancy is unclear.
  - Minor: Says nothing about what it returns.
- `log_water`: 24 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: idempotency_key, date, amount_ml.
  - Minor: String arguments with no constraint or example: idempotency_key, date.
  - Minor: The description mentions none of its 3 or more arguments.
- `lookup_barcode`: 24 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: barcode.
  - Minor: String arguments with no constraint or example: barcode.
- `get_cardio_activities`: 28 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: limit, date_from, date_to.
  - Minor: String arguments with no constraint or example: date_from, date_to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `get_meals`: 28 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: date_from, date_to.
  - Minor: String arguments with no constraint or example: date_from, date_to.
  - Minor: No `required` list, so every argument is optional.
- `get_workouts`: 28 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: limit, date_from, date_to.
  - Minor: String arguments with no constraint or example: date_from, date_to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `get_water`: 29 / 100
  - Major: Arguments without a description: date, date_from, date_to.
  - Minor: String arguments with no constraint or example: date, date_from, date_to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `instantiate_routine`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: idempotency_key, routine_id, cadence_days.
  - Minor: String arguments with no constraint or example: idempotency_key, routine_id, start_date.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: routine_id. Name the tool or the place that returns it, or models look it up first.
- `ai_parse_meal`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text, locale.
  - Minor: String arguments with no constraint or example: text, locale.
  - Minor: Says nothing about what it returns.
- `delete_workout`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: workout_id.
  - Minor: String arguments with no constraint or example: workout_id.
  - Minor: Required identifiers whose description does not say where the value comes from: workout_id. Name the tool or the place that returns it, or models look it up first.
- `get_routine`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: slug.
  - Minor: String arguments with no constraint or example: slug.
  - Minor: Says nothing about what it returns.
- `log_cardio`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: idempotency_key, date, sport, title, duration_seconds, distance_m, avg_hr, calories, notes.
  - Minor: String arguments with no constraint or example: idempotency_key, date, sport, title, notes.
- `log_meal`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: idempotency_key, date, meal_type, name, calories, protein, carbs, fats.
  - Minor: String arguments with no constraint or example: idempotency_key, date, meal_type, name.
- `list_routines`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: difficulty, goal, split_type, days_per_week, limit.
  - Minor: No `required` list, so every argument is optional.
- `list_muscles`: 38 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `log_body_metric`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: idempotency_key, date, metric_type, value, unit, notes.
  - Minor: String arguments with no constraint or example: idempotency_key, date, metric_type, unit, notes.
- `ai_photo_macros`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `delete_meal`: 40 / 100
  - Major: Arguments without a description: meal_id.
  - Minor: String arguments with no constraint or example: meal_id.
  - Minor: Required identifiers whose description does not say where the value comes from: meal_id. Name the tool or the place that returns it, or models look it up first.
- `log_workout`: 40 / 100
  - Major: Arguments without a description: idempotency_key, date, title, primary_sport, sets, sets[].exercise_name, sets[].set_number, sets[].reps, sets[].weight, sets[].duration_seconds, sets[].distance_m, sets[].rpe, sets[].rest_seconds, sets[].notes, sets[].completed.
  - Minor: String arguments with no constraint or example: idempotency_key, date, title, primary_sport, sets[].exercise_name, sets[].notes.
  - Minor: The meaning of the boolean argument sets[].completed is unclear.
- `search_foods`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: q, locale, page_size.
  - Minor: String arguments with no constraint or example: q, locale.
  - Minor: The description mentions none of its 3 or more arguments.
- `update_meal`: 42 / 100
  - Major: Arguments without a description: idempotency_key, meal_id, date, meal_type, name, calories, protein, carbs, fats, fiber, sugar, saturated_fat.
  - Minor: String arguments with no constraint or example: idempotency_key, meal_id, date, meal_type, name.
  - Minor: Required identifiers whose description does not say where the value comes from: meal_id. Name the tool or the place that returns it, or models look it up first.
- `get_body_metrics`: 45 / 100
  - Major: Arguments without a description: metric_type, from, to, limit.
  - Minor: String arguments with no constraint or example: metric_type, from, to.
  - Minor: No `required` list, so every argument is optional.
- `upsert_profile`: 45 / 100
  - Major: Arguments without a description: goal, unit_system, language, daily_calorie_goal, daily_protein_goal, daily_carbs_goal, daily_fats_goal, daily_water_goal_ml, diet_type, meals_per_day, active_sports.
  - Minor: String arguments with no constraint or example: goal, language, diet_type.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_progress`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: metric, bucket.
  - Minor: String arguments with no constraint or example: from, to, sport, goal_id, metric_a, metric_b.
  - Minor: Says nothing about what it returns.
- `generate_muscle_image`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: gender, view, layers.
  - Minor: The description mentions none of its 3 or more arguments.
- `update_sets`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: set_ids, weight, reps, rpe, completed, notes, delete.
  - Minor: String arguments with no constraint or example: notes.
  - Minor: The meaning of the boolean argument completed is unclear.
  - Minor: The meaning of the boolean argument delete is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: set_ids. Name the tool or the place that returns it, or models look it up first.
- `get_profile`: 54 / 100
  - Minor: Says nothing about what it returns.
- `get_events`: 56 / 100
  - Minor: Arguments without a description: limit.
  - Minor: No `required` list, so every argument is optional.
- `export_data`: 57 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_nutrition_daily`: 57 / 100
  - Minor: String arguments with no constraint or example: date_from.
  - Minor: No `required` list, so every argument is optional.
- `my_training_context`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: workout_limit.
  - Minor: No `required` list, so every argument is optional.
- `get_muscle_recovery`: 62 / 100
  - Minor: No `required` list, so every argument is optional.
- `search_exercises`: 62 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: q, muscle, equipment, level, limit.
  - Minor: String arguments with no constraint or example: q, muscle, equipment, level.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
