recipe-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@recipe-mcpcreate a healthy chicken stir-fry with vegetables"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Recipe MCP Server
An MCP (Model Context Protocol) server that provides AI-powered recipe generation and transformation tools. Generate personalized recipes based on dietary preferences, transform existing recipes to meet nutritional goals, and more.
Features
🍳 Generate Recipes - Create custom recipes from natural language descriptions
🔄 Transform Recipes - Modify existing recipes (make vegan, adjust calories, etc.)
🥗 Dietary Support - Handle allergies, restrictions, and food preferences
📊 Nutrition Goals - Target specific calorie and protein requirements
🆓 Open Access - No API key required (rate limited)
Related MCP server: Recipe Finder AI MCP
Installation
For Claude Desktop
Install the MCP server:
npm install -g @cookwith/recipe-mcpAdd to your Claude Desktop configuration:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"recipe-mcp": {
"command": "npx",
"args": ["@cookwith/recipe-mcp"],
"env": {
"COOKWITH_API_URL": "https://cookwith.co"
}
}
}
}Restart Claude Desktop
For Development
# Clone the repository
git clone https://github.com/cookwith/recipe-mcp.git
cd recipe-mcp
# Install dependencies
npm install
# Run in development mode
npm run devUsage Examples
Generate a Recipe
// In Claude Desktop, you can say:
"Generate a healthy Mediterranean pasta dish with lots of vegetables"
// The tool will be called with:
{
"prompt": "A healthy Mediterranean pasta dish with lots of vegetables",
"dietaryRestrictions": ["vegetarian"],
"calories": "450",
"servings": 4
}Transform a Recipe
// After generating or providing a recipe:
"Make this recipe vegan and reduce the calories by 200"
// The tool will be called with:
{
"recipe": { /* existing recipe object */ },
"instructions": "Make this vegan and reduce calories by 200",
"calories": "350"
}Tools
generate_recipe
Generate a new recipe based on natural language instructions.
Parameters:
prompt(string, required) - Natural language descriptiondietaryRestrictions(string[], optional) - e.g., ["vegetarian", "gluten-free"]allergies(string[], optional) - Ingredients to avoiddislikes(string[], optional) - Foods to excludecalories(string, optional) - Target calories per servingprotein(string, optional) - Target protein in gramsservings(number, optional) - Number of servings (1-20, default: 4)
transform_recipe
Transform an existing recipe based on instructions.
Parameters:
recipe(object, required) - The recipe to transforminstructions(string, required) - How to modify the recipecalories(string, optional) - New target caloriesprotein(string, optional) - New target proteinservings(number, optional) - New number of servings
Rate Limits
The public API has the following rate limits:
Anonymous Access: 20 requests per hour per IP address
No authentication required
Retry-After header provided when limit exceeded
Recipe Object Format
interface Recipe {
title: string;
description: string;
ingredients: string[]; // e.g., ["2 cups flour", "1 tsp salt"]
instructions: string[]; // Step-by-step instructions
servings: number;
prepTime?: number; // Minutes
cookTime?: number; // Minutes
totalTime?: number; // Minutes
cuisine?: string; // e.g., "Italian", "Mexican"
course?: string; // e.g., "main", "dessert"
difficulty?: string; // e.g., "easy", "medium", "hard"
calories?: number; // Per serving
protein?: number; // Grams per serving
carbs?: number; // Grams per serving
fat?: number; // Grams per serving
fiber?: number; // Grams per serving
sugar?: number; // Grams per serving
sodium?: number; // Milligrams per serving
}Configuration
Environment Variables
COOKWITH_API_URL- API endpoint (default: https://cookwith.co)
Custom API Endpoint
For development or self-hosted instances:
export COOKWITH_API_URL=http://localhost:3000
npx @cookwith/recipe-mcpExamples
Basic Recipe Generation
// Request
{
"prompt": "Quick and easy chicken stir-fry"
}
// Response
{
"title": "Quick Chicken Stir-Fry",
"description": "A delicious and speedy chicken stir-fry...",
"ingredients": [
"2 chicken breasts, sliced",
"2 cups mixed vegetables",
"3 tbsp soy sauce",
// ...
],
"instructions": [
"Heat oil in a large wok or skillet",
"Add chicken and cook until golden",
// ...
],
"servings": 4,
"prepTime": 10,
"cookTime": 15,
"calories": 320,
"protein": 28
}Recipe Transformation
// Request
{
"recipe": {
"title": "Classic Beef Lasagna",
"ingredients": ["1 lb ground beef", "ricotta cheese", ...],
// ... full recipe
},
"instructions": "Make this vegetarian and lower in calories"
}
// Response
{
"title": "Vegetarian Light Lasagna",
"description": "A healthier vegetarian version...",
"ingredients": [
"2 cups chopped mushrooms",
"1 cup low-fat ricotta",
// ... transformed ingredients
],
// ... rest of transformed recipe
}Troubleshooting
Rate Limit Errors
If you receive a 429 error, you've exceeded the rate limit. Wait for the time specified in the retryAfter field before making another request.
Connection Issues
Ensure your internet connection is stable and the API endpoint is accessible.
Invalid Parameters
Check that your parameters match the expected format and constraints (e.g., servings between 1-20).
Contributing
Contributions are welcome! Please see our Contributing Guide for details.
License
MIT License - see LICENSE file for details.
Support
📧 Email: support@blaide.com
Powered By
Cookwith - AI-powered cooking platform
OpenAI GPT-4 - Recipe generation
Model Context Protocol - Tool integration
Available Tools
2 toolsgenerate_recipeA
Generate a new recipe based on natural language instructions and dietary preferences
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Natural language description of the desired recipe | |
| protein | No | Target protein in grams per serving (e.g., '30') | |
| calories | No | Target calories per serving (e.g., '500') | |
| dislikes | No | Foods the user doesn't like | |
| servings | No | Number of servings (1-20, default: 4) | |
| allergies | No | Ingredients to avoid due to allergies | |
| dietaryRestrictions | No | Dietary restrictions (e.g., vegetarian, vegan, gluten-free) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states the tool generates a recipe, without mentioning return format, dependencies, side effects, or error conditions. This is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that clearly states the tool's function. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should provide more context about return values and limitations. It only states the tool generates a recipe, leaving the agent unaware of output structure and other behavioral details. The sibling tool adds a need for distinguishing guidance, which is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides complete descriptions for all 7 parameters, so the description doesn't need to explain them. The description's mention of 'natural language instructions and dietary preferences' adds a high-level summary but no additional semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a new recipe, using a specific verb and resource. It distinguishes from the sibling 'transform_recipe' by implying creation rather than modification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates the tool is for generating new recipes from user preferences, providing clear usage context. It does not explicitly mention alternatives or exclusions, but the sibling name 'transform_recipe' helps distinguish, so no explicit guidance is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_recipeB
Transform an existing recipe based on instructions (e.g., make it vegan, adjust calories, change servings)
| Name | Required | Description | Default |
|---|---|---|---|
| recipe | Yes | The recipe to transform | |
| protein | No | New target protein in grams per serving | |
| calories | No | New target calories per serving | |
| servings | No | New number of servings | |
| instructions | Yes | Instructions for how to transform the recipe |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states 'transform' but does not clarify whether the original recipe is modified, a new one is returned, or how unspecified fields are handled. This is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the core action, and includes useful examples without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a complex nested recipe schema and no output schema, the description should explain what the transformed result looks like or whether original fields are preserved. The absence of return behavior leaves the tool incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so descriptions for all parameters are already present. The tool description adds a few examples but no additional meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool transforms an existing recipe using instructions, with concrete examples (vegan, calories, servings). This distinguishes it from the sibling tool generate_recipe, which creates new recipes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when you have an existing recipe to modify, and examples show typical scenarios. However, it does not explicitly mention when not to use it or compare against generate_recipe.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v1.0.3- First observed
generate_recipe - First observed
transform_recipe
TDQS
generate_recipe creates a new recipe, while transform_recipe modifies an existing one. The semantic boundary is clear, with no overlap in purpose.
Both tools follow a consistent verb_noun pattern: generate_recipe and transform_recipe. The verbs are distinct and the object is uniform.
With only two tools, the server feels thin for a recipe domain. While the scope could be narrowly focused on generation, the count is borderline.
transform_recipe requires an existing recipe, but there is no tool to retrieve or list recipes. This is a significant gap that leaves agents unable to obtain the input needed for transformation.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for NanoBanana AI image generation and editing
MCP server for Google Veo AI video generation
MCP server for Qwen Image 3 AI image generation
MCP server for Wan AI video generation
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that transforms AI assistants into personal chefs by providing recipe recommendations and meal planning features based on the HowToCook repository.55,676766ISC
- AlicenseNot gradedqualityBmaintenanceRecipe Finder AI - MCP server providing AI-powered tools and automation by MEOK AI Labs13MIT
- AlicenseBqualityDmaintenanceAn MCP server that enables AI-powered recipe generation and transformation using natural language, supporting dietary restrictions, allergies, and nutritional goals.222MIT
- AlicenseNot gradedqualityFmaintenanceMCP server for MealMastery AI meal planning that enables users to manage meal plans, recipes, and grocery lists through natural language conversation with AI agents like Claude.90MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/valetdotdev/recipe-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server