Skip to main content
Glama
RBV801

recipal-mcp-unofficial

by RBV801

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
RECIPAL_API_KEYYesRequired. From ReciPal account settings → API access.
RECIPAL_API_BASENoOverride the endpoint. Must be https and a `recipal.com` host.https://www.recipal.com/api/v1
RECIPAL_MCP_DEBUGNoLog full request bodies to stderr. Bodies contain recipe data and your client probably logs stderr to disk, so leave off routinely.off
RECIPAL_MCP_ENABLE_RAWNoExpose `recipal_request`.off
RECIPAL_MCP_MAX_RETRIESNoRetries on HTTP 429.3
RECIPAL_MCP_ALLOW_DELETENoExpose the two delete tools.off
RECIPAL_MCP_ALLOW_CUSTOM_BASENoPermit a non-`recipal.com` base. Your API key is sent to whatever it points at, so this is deliberately awkward.off

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_recipesA

List recipes from ReciPal with IDs, names, and tags. Paginated; per_page max 20. Larger values are silently reduced to 20, so callers must paginate.

get_recipeA

Get one recipe in full, including nutrition, serving size, package yield, tags and label settings. Use this to read a template recipe's exact settings before cloning it.

get_recipe_nutritionA

Get only the nutrition sub-object for a recipe.

list_recipe_ingredientsA

List every ingredient line on a recipe, with recipe_ingredient IDs, ingredient IDs, quantities, units and total_grams.

get_recipe_ingredientB

Get one ingredient line on a recipe.

list_ingredientsA

List the account's ingredient library. Subrecipes appear here once created, which is how you find the ingredient_id needed to add a subrecipe to another recipe. Paginated; per_page max 20. Larger values are silently reduced to 20, so callers must paginate.

get_ingredientA

Get one ingredient with its full nutrition data and available units.

create_recipeA

Create a new empty recipe. POST /recipes. Prefer scale_recipe (clone a fully-configured template) when you need label settings to match existing recipes.

create_recipe_shortcutA

Create a complete recipe with its ingredients in one request. POST /recipes/shortcut. The fastest path for building many recipes. Requires ingredient_ids and ingredient_weights: parallel lists of the same length, weights in grams. Either may be given as an array or a comma-separated string. Note this does NOT inherit label settings from an existing recipe -- serving size, package yield and tags all come back unset, so use scale_recipe to clone a configured template when label settings matter.

update_recipeA

Update a recipe's attributes. PUT /recipes/{id}.

scale_recipeA

Copy (and optionally scale) an existing recipe. POST /recipes/{id}/scale. This is the copy-and-swap primitive: cloning a configured template carries its label settings and tags forward, so you only replace one ingredient afterward. Pass a scale factor of 1 for a straight copy.

create_subrecipeA

Flag an existing recipe as a subrecipe so it becomes usable as an ingredient in other recipes. POST /recipes/{id}/create_subrecipe. Returns the new ingredient record — capture its ingredient_id, that is what you add to other recipes.

create_recipe_ingredientA

Add an ingredient line to a recipe. POST /recipes/{id}/recipe_ingredients. Accepts ingredient_id (required) plus unit + quantity, or total_grams.

update_recipe_ingredientA

Update one ingredient line. PUT /recipes/{id}/recipe_ingredients/{ri_id}. NOTE: this endpoint silently ignores ingredient_id — it returns 200 with the original ingredient still attached. To swap one ingredient for another you must delete the line and create a new one.

update_ingredientA

Update an ingredient in the library. PUT /ingredients/{id}. Use for renaming (e.g. stripping '(copy)' suffixes).

bulk_create_subrecipesA

Flag many recipes as subrecipes, sequentially. Defaults to dry_run:true — returns the plan without touching anything. Set dry_run:false AND confirm:true to execute. Returns a per-recipe success/failure report including the new ingredient_ids.

bulk_clone_and_swapA

The copy-and-swap loop. For each entry: clone template_recipe_id via scale_recipe, rename it, then replace the designated ingredient line with a different ingredient_id. Runs sequentially and independently per entry, so one failure does not poison the rest. Defaults to dry_run:true.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 17 tools

Disambiguation4/5

Most tools target distinct resources or actions, and descriptions clearly separate list/get/create/update/bulk workflows. A few overlaps exist—get_recipe versus get_recipe_nutrition, and create_recipe versus create_recipe_shortcut versus scale_recipe—but the descriptions are detailed enough to prevent serious misselection.

Naming Consistency5/5

Tool names consistently follow lowercase snake_case verb_noun patterns like list_recipes, get_recipe, create_recipe, update_recipe, and bulk_create_subrecipes. Compound names like create_recipe_shortcut and bulk_clone_and_swap are minor extensions but do not break the overall predictable convention.

Tool Count4/5

17 tools is slightly above the ideal 3-15 range, but the count is justified by the combination of single-resource operations, bulk utilities, and shortcut creation. Each tool serves a recognizable recipe-management workflow, so the set feels somewhat heavy but not bloated.

Completeness2/5

The tool surface covers read, create, update, copy, and bulk operations, but there are no delete endpoints for recipes, ingredients, or recipe ingredient lines. This is a significant gap because update_recipe_ingredient silently ignores ingredient_id and the documentation explicitly says swapping requires deleting the line and creating a new one—yet no delete tool exists to complete that workflow.

Maintenance

ActivityMaintained
ResponsivenessNo issues