io.github.jkakar/recipe-mcp
Generate and remix recipes using cookwith.co
Open source Open in the app JSON README (API)
About
Generate and remix recipes using cookwith.co
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- jkakar
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 1.0.4
- Stars
- 1
- Last push
- 2025-09-11T18:30:32Z
- Repository state
- parado
- Language
- TypeScript
- License
- MIT
- Added
- 2026-08-29 04:00:15
- Updated
- 2026-08-29 04:00:15
- Origin id
io.github.jkakar/recipe-mcp
README
# 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)
## Installation
### For Claude Desktop
1. Install the MCP server:
```bash
npm install -g @cookwith/recipe-mcp
```
2. Add to your Claude Desktop configuration:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"recipe-mcp": {
"command": "npx",
"args": ["@cookwith/recipe-mcp"],
"env": {
"COOKWITH_API_URL": "https://cookwith.co"
}
}
}
}
```
3. Restart Claude Desktop
### For Development
```bash
# 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 dev
```
## Usage Examples
### Generate a Recipe
```typescript
// 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
```typescript
// 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 description
- `dietaryRestrictions` (string[], optional) - e.g., ["vegetarian", "gluten-free"]
- `allergies` (string[], optional) - Ingredients to avoid
- `dislikes` (string[], optional) - Foods to exclude
- `calories` (string, optional) - Target calories per serving
- `protein` (string, optional) - Target protein in grams
- `servings` (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 transform
- `instructions` (string, required) - How to modify the recipe
- `calories` (string, optional) - New target calories
- `protein` (string, optional) - New target protein
- `servings` (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
```typescript
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:
```bash
export COOKWITH_API_URL=http://localhost:3000
npx @cookwith/recipe-mcp
```
## Examples
### Basic Recipe Generation
```javascript
// 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
```javascript
// 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](CONTRIBUTING.md) for details.
## License
MIT License - see [LICENSE](LICENSE) file for details.
## Support
- ๐ [Report Issues](https://github.com/blaideinc/recipe-mcp/issues)
- ๐ฌ [Discussions](https://github.com/blaideinc/recipe-mcp/discussions)
- ๐ง Email: support@blaide.com
## Powered By
- [Cookwith](https://cookwith.co) - AI-powered cooking platform
- [OpenAI GPT-4](https://openai.com) - Recipe generation
- [Model Context Protocol](https://modelcontextprotocol.io) - Tool integration