# ReciPal MCP by usefulapi (io.usefulapi/recipal): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/io.usefulapi%2Frecipal/versions/latest)
- Connected to: https://recipal.usefulapi.io/mcp
- Homepage: https://usefulapi.io/recipal/
- Repository: https://github.com/m190/usefulapi-mcp
- Scoring rules: v2
- Tools: 30
- Average: 53.4 / 100 (Cloudy)
- Near-identical pairs: 2

This page shows how ReciPal MCP by usefulapi (io.usefulapi/recipal)'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: 30 tools. Above 25, models start to tell tools apart less well.

## Tools

- `recipal_get_ingredient_cost`: 39 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: ingredient_cost_id. Name the tool or the place that returns it, or models look it up first.
- `recipal_get_finished_good`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: finished_good_id. Name the tool or the place that returns it, or models look it up first.
- `recipal_get_ingredient`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: ingredient_id. Name the tool or the place that returns it, or models look it up first.
- `recipal_get_inventory`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: inventory_id. Name the tool or the place that returns it, or models look it up first.
- `recipal_list_current_ingredient_costs`: 44 / 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.
- `recipal_list_recipe_ingredients`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: recipe_id. Name the tool or the place that returns it, or models look it up first.
- `recipal_create_ingredient`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: nutrients.calories, nutrients.protein, nutrients.fat, nutrients.fat_saturated, nutrients.fat_trans, nutrients.cholesterol, nutrients.carbohydrate, nutrients.fiber, nutrients.uncounted_fiber, nutrients.sugar, nutrients.added_sugar, nutrients.sugar_alcohol, nutrients.sodium, nutrients.vitamin_d_IU, nutrients.calcium, nutrients.iron, nutrients.potassium, nutrients.vitamin_a_IU, nutrients.vitamin_c, nutrients.vitamin_e, nutrients.vitamin_k, nutrients.thiamin, nutrients.riboflavin, nutrients.niacin, nutrients.vitamin_b6, nutrients.folate, nutrients.food_folate, nutrients.folic_acid, nutrients.folate_dietary_equivalent, nutrients.vitamin_b12, nutrients.biotin, nutrients.pantothenic_acid, nutrients.phosphorus, nutrients.iodine, nutrients.magnesium, nutrients.zinc, nutrients.selenium, nutrients.copper, nutrients.manganese, nutrients.chromium, nutrients.molybdenum, nutrients.chloride, nutrients.choline, nutrients.fat_monounsaturated, nutrients.fat_polyunsaturated, nutrients.omega_3, nutrients.omega_6, nutrients.water, nutrients.ash.
  - Minor: Says nothing about what it returns.
- `recipal_list_finished_good_tags`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `recipal_list_finished_goods`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `recipal_list_inventories`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `recipal_list_inventory_tags`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `recipal_update_ingredient`: 49 / 100
  - Major: Arguments without a description: nutrients.calories, nutrients.protein, nutrients.fat, nutrients.fat_saturated, nutrients.fat_trans, nutrients.cholesterol, nutrients.carbohydrate, nutrients.fiber, nutrients.uncounted_fiber, nutrients.sugar, nutrients.added_sugar, nutrients.sugar_alcohol, nutrients.sodium, nutrients.vitamin_d_IU, nutrients.calcium, nutrients.iron, nutrients.potassium, nutrients.vitamin_a_IU, nutrients.vitamin_c, nutrients.vitamin_e, nutrients.vitamin_k, nutrients.thiamin, nutrients.riboflavin, nutrients.niacin, nutrients.vitamin_b6, nutrients.folate, nutrients.food_folate, nutrients.folic_acid, nutrients.folate_dietary_equivalent, nutrients.vitamin_b12, nutrients.biotin, nutrients.pantothenic_acid, nutrients.phosphorus, nutrients.iodine, nutrients.magnesium, nutrients.zinc, nutrients.selenium, nutrients.copper, nutrients.manganese, nutrients.chromium, nutrients.molybdenum, nutrients.chloride, nutrients.choline, nutrients.fat_monounsaturated, nutrients.fat_polyunsaturated, nutrients.omega_3, nutrients.omega_6, nutrients.water, nutrients.ash.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: ingredient_id. Name the tool or the place that returns it, or models look it up first.
- `recipal_list_ingredient_costs`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: ingredient_id. Name the tool or the place that returns it, or models look it up first.
- `recipal_create_recipe`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `recipal_get_recipe_ingredient`: 52 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: recipe_id, recipe_ingredient_id. Name the tool or the place that returns it, or models look it up first.
- `recipal_list_ingredients`: 52 / 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.
- `recipal_remove_recipe_ingredient`: 53 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: recipe_id, recipe_ingredient_id. Name the tool or the place that returns it, or models look it up first.
- `recipal_update_ingredient_cost`: 53 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: ingredient_cost_id. Name the tool or the place that returns it, or models look it up first.
- `recipal_get_label`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `recipal_get_recipe`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: recipe_id. Name the tool or the place that returns it, or models look it up first.
- `recipal_get_label_render_status`: 58 / 100
  - Minor: Says nothing about what it returns.
- `recipal_update_recipe_ingredient`: 58 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: recipe_id, recipe_ingredient_id. Name the tool or the place that returns it, or models look it up first.
- `recipal_create_subrecipe`: 60 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: recipe_id. Name the tool or the place that returns it, or models look it up first.
- `recipal_create_recipe_from_ingredients`: 62 / 100
  - Major: Says nothing about when to use it, or when not to.
- `recipal_list_recipes`: 62 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
- `recipal_add_recipe_ingredient`: 63 / 100
  - Minor: Says nothing about what it returns.
- `recipal_create_ingredient_cost`: 63 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: ingredient_id. Name the tool or the place that returns it, or models look it up first.
- `recipal_update_recipe`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: recipe_id. Name the tool or the place that returns it, or models look it up first.
- `recipal_scale_recipe`: 65 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: recipe_id. Name the tool or the place that returns it, or models look it up first.
- `recipal_start_label_render`: 67 / 100
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: recipe_id. Name the tool or the place that returns it, or models look it up first.

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)
