mcpbeat Sign in

ReciPal MCP by usefulapi MCP Server

answering

ReciPal MCP by usefulapi is answering right now. Last checked 11 min ago. It exposes 30 tools. Last commit 2 Nov 2026.

Read recipes, nutrition and inventory, manage ingredients and costs, and render ReciPal labels.

Uptime history 45 hours of history
45 hours agonow
100.0%
Uptime 24h
91 of 91 checks
30
Tools
read from the server
167 ms
Response time
average over 24h
1
Stars
last commit 2 Nov 2026

What changed 1

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 2 November 2026. No other catalogue keeps this.

2 Nov a tool changed version

Nothing serious here today

Today is the operative word: we check ReciPal MCP by usefulapi every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 11 min ago.

run in your terminal
claude mcp add recipal --transport http https://recipal.usefulapi.io/mcp
Settings → Connectors → Add custom connector, then paste this address
https://recipal.usefulapi.io/mcp
~/.codex/config.toml
[mcp_servers.recipal]
url = "https://recipal.usefulapi.io/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "recipal": {
      "url": "https://recipal.usefulapi.io/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "recipal": {
      "type": "http",
      "url": "https://recipal.usefulapi.io/mcp"
    }
  }
}

Available tools 30

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

recipal
recipal_add_recipe_ingredient
WRITE: add an ingredient line to a recipe, by unit and quantity (the unit must be one the ingredient offers, e.g. "1 cup" or "1 gram"; see units_and_grams from recipal_get_recipe_ingredient or valid_units from recipal_get_ingredient) or directly by total_grams (overrides unit and quantity). Changes the recipe's nutrition, label and cost. POST /recipes/{id}/recipe_ingredients.
recipal_create_ingredient
WRITE: create a custom ingredient (private to your account) with its nutrition facts. For a food ingredient give nutrition_unit and nutrition_quantity (the serving the nutrients are entered for, e.g. 1 cup; for units beyond gram/oz/lb/kg add them in measures first) and all required nutrients. food and non_food cannot be changed later. Non-food items: set food=false and non_food to labor, packaging, safety, other_hourly or other_fixed. POST /ingredients.
recipal_create_ingredient_cost
WRITE: add a price for an ingredient that becomes active on effective_at (the active cost is the one with the latest effective_at not after the date; one cost per ingredient per date). price and shipping are per quantity x unit. Changes the cost of every recipe using the ingredient from that date. Not allowed for subrecipe ingredients. POST /ingredient_costs.
recipal_create_recipe
WRITE: create a new, empty recipe (add ingredient lines with recipal_add_recipe_ingredient, or use recipal_create_recipe_from_ingredients to do both at once). All fields are optional. Creates a record in your ReciPal account; it counts against the plan's recipe allowance. POST /recipes.
recipal_create_recipe_from_ingredients
WRITE: create a new recipe and its ingredient lines in one call. ingredients lists ingredient ids with the weight of each in grams. Optional yield, servings and packaging fields as in recipal_create_recipe. Creates a record in your ReciPal account. POST /recipes/shortcut.
recipal_create_subrecipe
WRITE: turn a recipe into an ingredient (a subrecipe) with its nutrition, costing and ingredient list, so it can be used inside other recipes. Later changes to the recipe flow through to the ingredient. Fails if the recipe is empty. Returns the new ingredient. POST /recipes/{id}/create_subrecipe.
recipal_get_finished_good
One finished-goods stock row by id. Needs an inventory plan. GET /finished_goods/{id}.
recipal_get_ingredient
One ingredient in full (yours or a public one): allergens, ingredient-list text, custom units, and every nutrient per 100 grams. GET /ingredients/{id}.
recipal_get_ingredient_cost
One ingredient cost entry by id. GET /ingredient_costs/{id}.
recipal_get_inventory
One raw-material stock row by id (quantity, unit, weeks remaining, reorder guideline, on-hand value). Needs an inventory plan. GET /inventories/{id}.
recipal_get_label
A recipe's saved nutrition-facts label settings (format, which rows show, styling) plus the computed nutrition claims (e.g. Fat Free) and ingredient list per language. The token is the last part of the recipe's primary_label path (/api/v1/labels/{token}). Optionally compute claims and ingredient list for another format. GET /labels/{token}.
recipal_get_label_render_status
Status of a label render started with recipal_start_label_render: waiting, processing, ready or error. When ready, url is a temporary presigned download link. Poll about once a second; each poll counts toward the weekly request limit. GET /recipes/label_renders/{token}.
recipal_get_recipe
One recipe in full: yield, servings, packages, allergens, costs (ingredient + packaging/labor/overhead), ingredient list, tags, primary label path and the complete per-serving nutrition. GET /recipes/{id}.
recipal_get_recipe_ingredient
One ingredient line of a recipe, including units_and_grams (the units you can use for it, each with its weight in grams). GET /recipes/{recipe_id}/recipe_ingredients/{id}.
recipal_list_current_ingredient_costs
The currently active cost of every ingredient (one entry per ingredient): price, shipping, quantity and unit. GET /ingredient_costs.
recipal_list_finished_good_tags
Recipe tags in use with the number of recipes carrying each, most used first. Use them to filter recipal_list_finished_goods. Needs an inventory plan. GET /finished_goods/tags.
recipal_list_finished_goods
Finished-goods stock rows: recipe, quantity on hand, unit, total packages, lot-code settings, case/pallet sizes and the on-hand value. Needs an inventory plan. GET /finished_goods.
recipal_list_ingredient_costs
The cost history of one ingredient: effective date, quantity, unit, price and shipping per entry (the entry with the latest effective_at not in the future is the active one). GET /ingredients/{id}/ingredient_costs.
recipal_list_ingredients
List your own ingredients (custom and subrecipe ingredients) with allergens, units and headline nutrition per 100 g. Set full=true for every nutrient. Archived ones are hidden unless asked for. GET /ingredients.
recipal_list_inventories
Raw-material (ingredient) stock rows: quantity on hand, weeks remaining, daily consumption, quantity on order, reorder risk (safe, warning, critical), reorder level and the on-hand value. Needs an inventory plan (otherwise 403 INVENTORY_PLAN_REQUIRED). By default sorted by weeks remaining, lowest first. GET /inventories.
recipal_list_inventory_tags
Ingredient tags in use with the number of ingredients carrying each, most used first. Use them to filter recipal_list_inventories. Needs an inventory plan. GET /inventories/tags.
recipal_list_recipe_ingredients
The formula of one recipe: every recipe ingredient line with ingredient id, name, quantity, unit, waste %, total grams and the display name per label language. Use the line ids with recipal_update_recipe_ingredient. GET /recipes/{id}/recipe_ingredients.
recipal_list_recipes
List your recipes (products) with yield, servings, cost per batch/package and the headline per-serving nutrition (calories, fat, sodium, carbohydrate, protein). Sorted by last update by default. Set full=true for the complete object with every nutrient. Pages of up to 20; a page with fewer rows is the last. GET /recipes.
recipal_remove_recipe_ingredient
WRITE (destructive): permanently remove one ingredient line from a recipe. It cannot be undone, but the same ingredient can be added back (with recipal_add_recipe_ingredient). Changes the recipe's nutrition, label and cost. The ingredient itself is not deleted. DELETE /recipes/{recipe_id}/recipe_ingredients/{id}.
recipal_scale_recipe
WRITE: create a NEW recipe as a copy of an existing one, with every ingredient quantity and the yield multiplied by scale_amount (1 = plain copy; per-serving nutrition stays the same; scaling down cannot take packages below 1). Costs and tags carry over. The original is not changed. Without a name the copy is called "<name> (copy)" or "<name> <n>x". POST /recipes/{id}/scale.
recipal_start_label_render
WRITE (render job): start rendering a recipe's nutrition label as a PDF or PNG and return the render status with a token. Always asynchronous: poll recipal_get_label_render_status with the token until status is ready, then give the user the temporary download url. Each account may run 5 renders in parallel. GET /recipes/{id}/label.pdf|label.png?async=true.
recipal_update_ingredient
WRITE: change fields of one of YOUR ingredients (public ingredients cannot be edited); fields you leave out stay unchanged. If nutrition_unit, nutrition_quantity or their measure change, nutrients you do not pass are rescaled to keep the same amount per serving. measures REPLACES the whole list of custom units, so send them all. Setting archived true hides the ingredient from lists; false restores it. The change flows into every recipe using the ingredient. PUT /ingredients/{id}.
recipal_update_ingredient_cost
WRITE: change an existing ingredient cost entry (date, unit, quantity, price, shipping); fields you leave out stay unchanged. Changes recipe costs that depend on it. Not allowed for subrecipe ingredients. PUT /ingredient_costs/{id}.
recipal_update_recipe
WRITE: change fields of one recipe; fields you leave out stay unchanged. package_yield_quantity "default" sets the package weight to the total weight of the current ingredients (no moisture loss accounted for); ingredient_list "default" rebuilds the label ingredient list in descending weight order. Changes labels and costs of this recipe. Tags cannot be set here. PUT /recipes/{id}.
recipal_update_recipe_ingredient
WRITE: change the AMOUNT of one ingredient line in a recipe (unit, quantity, waste or total_grams; total_grams overrides unit and quantity). It cannot swap the ingredient: remove the line and add another instead. Changes the recipe's nutrition, label and cost. PUT /recipes/{recipe_id}/recipe_ingredients/{id}.

Endpoints

URLTransportStateLatencyChecked
https://recipal.usefulapi.io/mcp streamable-http answering 78 ms 11 min ago

Alternatives to ReciPal MCP by usefulapi

same job, measured the same way
Parsley MCP by usefulapi
by usefulapi

Read Parsley menu items, nutrition, allergens, ingredients and events; record event sales and waste.

15 tools answering
Linnworks MCP by usefulapi
by usefulapi

Read Linnworks inventory, stock and orders; set stock levels and add order notes.

17 tools answering
WuBook MCP by usefulapi
by usefulapi

Read WuBook ZaK rooms, availability and reservations; manage inventory and guest check-in.

19 tools answering
SalesBinder MCP by usefulapi
by usefulapi

Read SalesBinder customers, inventory, warehouse locations, invoices and sales orders.

7 tools answering
Freshly Inventory MCP by usefulapi
by usefulapi

Read batches and assignments; create, update and assign batches in Freshly Inventory.

8 tools answering
MemberRun MCP by usefulapi
by usefulapi

Manage members, events and registrations; read invoices, resources and chapters in MemberRun.

21 tools answering
Vision Helpdesk MCP by usefulapi
by usefulapi

Triage Vision Helpdesk tickets, read conversations, find clients and manage internal handoffs.

19 tools answering
Order Desk MCP by usefulapi
by usefulapi

Search Order Desk orders and inventory; read order items and shipments; create or update orders.

15 tools answering

ReciPal MCP by usefulapi — questions

Answers built from our own checks of this server.

What can ReciPal MCP by usefulapi do?
It exposes 30 tools, read directly from the server on our last check. Among them: recipal_add_recipe_ingredient, recipal_create_ingredient, recipal_create_ingredient_cost, recipal_create_recipe, recipal_create_recipe_from_ingredients, recipal_create_subrecipe and 24 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is ReciPal MCP by usefulapi working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 167 ms. The bar chart above shows every period we have measured.
How do I connect ReciPal MCP by usefulapi?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does ReciPal MCP by usefulapi need an API key?
No. ReciPal MCP by usefulapi completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 30 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is ReciPal MCP by usefulapi?
It answers our handshake in 167 ms on average, which is faster than 79% of all working MCP servers we measure. That puts it in the quick quarter of the ecosystem. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is ReciPal MCP by usefulapi open source?
The code is open source: it is published under the MIT licence, written in JavaScript, 1 stars on GitHub and 1 open issue. The licence covers the code in the repository, not the hosted service at recipal.usefulapi.io, which runs on its operator's own terms.