{"_id":"@cookwith/recipe-mcp","_rev":"5-da381079b14f0f83f934966fa709d148","name":"@cookwith/recipe-mcp","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@cookwith/recipe-mcp","version":"1.0.0","keywords":["mcp","modelcontextprotocol","recipe","cooking","ai","llm"],"author":{"name":"Cookwith"},"license":"MIT","_id":"@cookwith/recipe-mcp@1.0.0","maintainers":[{"name":"jkakar","email":"jkakar@kakar.ca"}],"homepage":"https://cookwith.co","bugs":{"url":"https://github.com/blaideinc/recipe-mcp/issues"},"bin":{"recipe-mcp":"mcp-server.ts"},"dist":{"shasum":"53ae0d1f4790e6115606043b9a000615d3cc59fa","tarball":"https://registry.npmjs.org/@cookwith/recipe-mcp/-/recipe-mcp-1.0.0.tgz","fileCount":11,"integrity":"sha512-bBC5TotRhz3I9hPrsd/mWnXDLmx/1d8vPQeQ7zzJIMmNJN2oW7a8H3Wziaqb001FtvRCbNAZDmbiHCmHRMKdZw==","signatures":[{"sig":"MEQCIA5yKcTofyUj9kivpCKSn59+UpivhthUg/4GAnmx4H5PAiBEUPpik4o+vuezwAWo1Sfp8xKtZKdBpg06x4d+vzx6Rg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28434},"main":"mcp-server.ts","type":"module","engines":{"node":">=20.0.0"},"gitHead":"d37fcb9babed9fd62992ee37b199b02888bb441d","mcpName":"io.github.blaideinc/recipe-mcp","scripts":{"dev":"tsx --watch mcp-server.ts","test":"vitest","build":"tsc --noEmit","start":"tsx mcp-server.ts"},"_npmUser":{"name":"jkakar","email":"jkakar@kakar.ca"},"repository":{"url":"git+https://github.com/blaideinc/recipe-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP server for AI-powered recipe generation and transformation","directories":{},"_nodeVersion":"22.17.1","dependencies":{"zod":"^3.23.8","dotenv":"^16.4.5","@modelcontextprotocol/sdk":"^1.17.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^3.2.4","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/recipe-mcp_1.0.0_1757613192615_0.7514750440713531","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@cookwith/recipe-mcp","version":"1.0.1","keywords":["mcp","modelcontextprotocol","recipe","cooking","ai","llm"],"author":{"name":"Cookwith"},"license":"MIT","_id":"@cookwith/recipe-mcp@1.0.1","maintainers":[{"name":"jkakar","email":"jkakar@kakar.ca"}],"homepage":"https://cookwith.co","bugs":{"url":"https://github.com/blaideinc/recipe-mcp/issues"},"bin":{"recipe-mcp":"mcp-server.ts"},"dist":{"shasum":"8e955ebd9b52eb6e1c0031be5ddce0108ef6b472","tarball":"https://registry.npmjs.org/@cookwith/recipe-mcp/-/recipe-mcp-1.0.1.tgz","fileCount":11,"integrity":"sha512-f1WVYrgpNBqVQIuM1/4O4pjHTQTSDQEi9tq2gpbHqRYapJYGA2FgVN/QvEMzjNhGVXV17GK4LbZrPuDtKhFizg==","signatures":[{"sig":"MEUCIQDlTZRJiOQ8y/phbl0ItYKPhXJp3sc3nplnk2ex49sNCQIgME/Y1GCWyXwY+Z66fh2yYzOcK/VnoFy/kfPpw9W9NSc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28431},"main":"mcp-server.ts","type":"module","engines":{"node":">=20.0.0"},"gitHead":"d96c07e6dcb9f6c6b612ec89f5f49ae2eb7c9086","mcpName":"io.github.jkakar/recipe-mcp","scripts":{"dev":"tsx --watch mcp-server.ts","test":"vitest","build":"tsc --noEmit","start":"tsx mcp-server.ts"},"_npmUser":{"name":"jkakar","email":"jkakar@kakar.ca"},"repository":{"url":"git+https://github.com/blaideinc/recipe-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP server for AI-powered recipe generation and transformation","directories":{},"_nodeVersion":"22.17.1","dependencies":{"zod":"^3.23.8","dotenv":"^16.4.5","@modelcontextprotocol/sdk":"^1.17.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^3.2.4","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/recipe-mcp_1.0.1_1757614190674_0.5917451619242042","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@cookwith/recipe-mcp","version":"1.0.2","keywords":["mcp","modelcontextprotocol","recipe","cooking","ai","llm"],"author":{"name":"Cookwith"},"license":"MIT","_id":"@cookwith/recipe-mcp@1.0.2","maintainers":[{"name":"jkakar","email":"jkakar@kakar.ca"}],"homepage":"https://cookwith.co","bugs":{"url":"https://github.com/blaideinc/recipe-mcp/issues"},"bin":{"recipe-mcp":"mcp-server.ts"},"dist":{"shasum":"c38aed8f6da8c1e417d833ae0e520d0e074de7c3","tarball":"https://registry.npmjs.org/@cookwith/recipe-mcp/-/recipe-mcp-1.0.2.tgz","fileCount":11,"integrity":"sha512-9z/2HPxJdZ0KYpguNo2I2ek8uYLgZ2Lw4YR2jKd0uxE7AGpj2mKhlwOCMYjFLwMpR8CxOk2OlWpITKDwaql6eg==","signatures":[{"sig":"MEUCIQCVf+v0T4OiUJCe19NQ+ZVRfHU3Wnd7tumU/5X2sRP6qQIgRPfk4H4sUPXwqhDlF31xpKB7i3R4twj+cody+GLS/q8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28496},"main":"mcp-server.ts","type":"module","engines":{"node":">=20.0.0"},"gitHead":"70845641a1174b63bac4b1993694a592a1143a49","mcpName":"io.github.jkakar/recipe-mcp","scripts":{"dev":"tsx --watch mcp-server.ts","test":"vitest","build":"tsc --noEmit","start":"tsx mcp-server.ts"},"_npmUser":{"name":"jkakar","email":"jkakar@kakar.ca"},"repository":{"url":"git+https://github.com/blaideinc/recipe-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP server for AI-powered recipe generation and transformation","directories":{},"_nodeVersion":"22.17.1","dependencies":{"tsx":"^4.0.0","zod":"^3.23.8","dotenv":"^16.4.5","@modelcontextprotocol/sdk":"^1.17.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/recipe-mcp_1.0.2_1757615150637_0.22023699867488178","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@cookwith/recipe-mcp","version":"1.0.3","keywords":["mcp","modelcontextprotocol","recipe","cooking","ai","llm"],"author":{"name":"Cookwith"},"license":"MIT","_id":"@cookwith/recipe-mcp@1.0.3","maintainers":[{"name":"jkakar","email":"jkakar@kakar.ca"}],"homepage":"https://cookwith.co","bugs":{"url":"https://github.com/blaideinc/recipe-mcp/issues"},"bin":{"recipe-mcp":"bin/recipe-mcp.js"},"dist":{"shasum":"6937439f50798502819a154eb44ed98f729e16f4","tarball":"https://registry.npmjs.org/@cookwith/recipe-mcp/-/recipe-mcp-1.0.3.tgz","fileCount":12,"integrity":"sha512-1iNaUEzhAXqjOMbMb2GirUKDT8fJkQlNyUUQqauPtNbTGcTAACapbyaaWqUy4AfuAsPLYe4LMtQ23gf7FHStFA==","signatures":[{"sig":"MEYCIQD123Le+1BD+1qmhCCM4XSoBZy454GhUSrCsU5axHxwAQIhAJ1puYZT3Rxj8jlxzmjGdos/LeygbyBwXb6XiV5fIZUw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29125},"main":"mcp-server.ts","type":"module","engines":{"node":">=20.0.0"},"gitHead":"9bf443e1104178562411f0882e3b88853a5a8170","mcpName":"io.github.jkakar/recipe-mcp","scripts":{"dev":"tsx --watch mcp-server.ts","test":"vitest","build":"tsc --noEmit","start":"tsx mcp-server.ts"},"_npmUser":{"name":"jkakar","email":"jkakar@kakar.ca"},"repository":{"url":"git+https://github.com/blaideinc/recipe-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP server for AI-powered recipe generation and transformation","directories":{},"_nodeVersion":"22.17.1","dependencies":{"tsx":"^4.0.0","zod":"^3.23.8","dotenv":"^16.4.5","@modelcontextprotocol/sdk":"^1.17.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/recipe-mcp_1.0.3_1757615449829_0.6315827462344576","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@cookwith/recipe-mcp","version":"1.0.4","description":"MCP server for AI-powered recipe generation and transformation","type":"module","main":"mcp-server.ts","bin":{"recipe-mcp":"bin/recipe-mcp.js"},"scripts":{"start":"tsx mcp-server.ts","dev":"tsx --watch mcp-server.ts","build":"tsc --noEmit","test":"vitest"},"keywords":["mcp","modelcontextprotocol","recipe","cooking","ai","llm"],"author":{"name":"Cookwith"},"license":"MIT","mcpName":"io.github.jkakar/recipe-mcp","dependencies":{"@modelcontextprotocol/sdk":"^1.17.2","dotenv":"^16.4.5","tsx":"^4.0.0","zod":"^3.23.8"},"devDependencies":{"@types/node":"^20.0.0","typescript":"^5.0.0","vitest":"^3.2.4"},"repository":{"type":"git","url":"git+https://github.com/blaideinc/recipe-mcp.git"},"homepage":"https://cookwith.co","engines":{"node":">=20.0.0"},"_id":"@cookwith/recipe-mcp@1.0.4","gitHead":"9bf443e1104178562411f0882e3b88853a5a8170","bugs":{"url":"https://github.com/blaideinc/recipe-mcp/issues"},"_nodeVersion":"22.17.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-cdRZg9z1R/Pdlt7xOAfgR2uWFRP7KFA93xvgo5fRw3nnmm/j+BPz7ycBOCW5ZYS8Yr5n6QmSk0QMYRb21W9Dmw==","shasum":"64ea00d735814cc31a43b17bd75fe47d61423148","tarball":"https://registry.npmjs.org/@cookwith/recipe-mcp/-/recipe-mcp-1.0.4.tgz","fileCount":12,"unpackedSize":29648,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICxkIVLu4cQb3M3IfBoFWtheqm4vqldNDldcxd0F0/QUAiBVBV50PS3ZenQZ+o0ryX5aNaC19rjx3NFgExSGWWq+Fw=="}]},"_npmUser":{"name":"jkakar","email":"jkakar@kakar.ca"},"directories":{},"maintainers":[{"name":"jkakar","email":"jkakar@kakar.ca"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/recipe-mcp_1.0.4_1757615602024_0.5296147709372878"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-11T17:53:12.505Z","modified":"2025-09-11T18:33:22.498Z","1.0.0":"2025-09-11T17:53:12.850Z","1.0.1":"2025-09-11T18:09:50.875Z","1.0.2":"2025-09-11T18:25:50.825Z","1.0.3":"2025-09-11T18:30:50.004Z","1.0.4":"2025-09-11T18:33:22.192Z"},"bugs":{"url":"https://github.com/blaideinc/recipe-mcp/issues"},"author":{"name":"Cookwith"},"license":"MIT","homepage":"https://cookwith.co","keywords":["mcp","modelcontextprotocol","recipe","cooking","ai","llm"],"repository":{"type":"git","url":"git+https://github.com/blaideinc/recipe-mcp.git"},"description":"MCP server for AI-powered recipe generation and transformation","maintainers":[{"name":"jkakar","email":"jkakar@kakar.ca"}],"readme":"# Recipe MCP Server\n\nAn 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.\n\n## Features\n\n- 🍳 **Generate Recipes** - Create custom recipes from natural language descriptions\n- 🔄 **Transform Recipes** - Modify existing recipes (make vegan, adjust calories, etc.)\n- 🥗 **Dietary Support** - Handle allergies, restrictions, and food preferences\n- 📊 **Nutrition Goals** - Target specific calorie and protein requirements\n- 🆓 **Open Access** - No API key required (rate limited)\n\n## Installation\n\n### For Claude Desktop\n\n1. Install the MCP server:\n```bash\nnpm install -g @cookwith/recipe-mcp\n```\n\n2. Add to your Claude Desktop configuration:\n   - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`\n   - Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"recipe-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"@cookwith/recipe-mcp\"],\n      \"env\": {\n        \"COOKWITH_API_URL\": \"https://cookwith.co\"\n      }\n    }\n  }\n}\n```\n\n3. Restart Claude Desktop\n\n### For Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/cookwith/recipe-mcp.git\ncd recipe-mcp\n\n# Install dependencies\nnpm install\n\n# Run in development mode\nnpm run dev\n```\n\n## Usage Examples\n\n### Generate a Recipe\n\n```typescript\n// In Claude Desktop, you can say:\n\"Generate a healthy Mediterranean pasta dish with lots of vegetables\"\n\n// The tool will be called with:\n{\n  \"prompt\": \"A healthy Mediterranean pasta dish with lots of vegetables\",\n  \"dietaryRestrictions\": [\"vegetarian\"],\n  \"calories\": \"450\",\n  \"servings\": 4\n}\n```\n\n### Transform a Recipe\n\n```typescript\n// After generating or providing a recipe:\n\"Make this recipe vegan and reduce the calories by 200\"\n\n// The tool will be called with:\n{\n  \"recipe\": { /* existing recipe object */ },\n  \"instructions\": \"Make this vegan and reduce calories by 200\",\n  \"calories\": \"350\"\n}\n```\n\n## Tools\n\n### `generate_recipe`\n\nGenerate a new recipe based on natural language instructions.\n\n**Parameters:**\n- `prompt` (string, required) - Natural language description\n- `dietaryRestrictions` (string[], optional) - e.g., [\"vegetarian\", \"gluten-free\"]\n- `allergies` (string[], optional) - Ingredients to avoid\n- `dislikes` (string[], optional) - Foods to exclude\n- `calories` (string, optional) - Target calories per serving\n- `protein` (string, optional) - Target protein in grams\n- `servings` (number, optional) - Number of servings (1-20, default: 4)\n\n### `transform_recipe`\n\nTransform an existing recipe based on instructions.\n\n**Parameters:**\n- `recipe` (object, required) - The recipe to transform\n- `instructions` (string, required) - How to modify the recipe\n- `calories` (string, optional) - New target calories\n- `protein` (string, optional) - New target protein\n- `servings` (number, optional) - New number of servings\n\n## Rate Limits\n\nThe public API has the following rate limits:\n- **Anonymous Access**: 20 requests per hour per IP address\n- No authentication required\n- Retry-After header provided when limit exceeded\n\n## Recipe Object Format\n\n```typescript\ninterface Recipe {\n  title: string;\n  description: string;\n  ingredients: string[];      // e.g., [\"2 cups flour\", \"1 tsp salt\"]\n  instructions: string[];      // Step-by-step instructions\n  servings: number;\n  prepTime?: number;          // Minutes\n  cookTime?: number;          // Minutes\n  totalTime?: number;         // Minutes\n  cuisine?: string;           // e.g., \"Italian\", \"Mexican\"\n  course?: string;            // e.g., \"main\", \"dessert\"\n  difficulty?: string;        // e.g., \"easy\", \"medium\", \"hard\"\n  calories?: number;          // Per serving\n  protein?: number;           // Grams per serving\n  carbs?: number;            // Grams per serving\n  fat?: number;              // Grams per serving\n  fiber?: number;            // Grams per serving\n  sugar?: number;            // Grams per serving\n  sodium?: number;           // Milligrams per serving\n}\n```\n\n## Configuration\n\n### Environment Variables\n\n- `COOKWITH_API_URL` - API endpoint (default: https://cookwith.co)\n\n### Custom API Endpoint\n\nFor development or self-hosted instances:\n\n```bash\nexport COOKWITH_API_URL=http://localhost:3000\nnpx @cookwith/recipe-mcp\n```\n\n## Examples\n\n### Basic Recipe Generation\n\n```javascript\n// Request\n{\n  \"prompt\": \"Quick and easy chicken stir-fry\"\n}\n\n// Response\n{\n  \"title\": \"Quick Chicken Stir-Fry\",\n  \"description\": \"A delicious and speedy chicken stir-fry...\",\n  \"ingredients\": [\n    \"2 chicken breasts, sliced\",\n    \"2 cups mixed vegetables\",\n    \"3 tbsp soy sauce\",\n    // ...\n  ],\n  \"instructions\": [\n    \"Heat oil in a large wok or skillet\",\n    \"Add chicken and cook until golden\",\n    // ...\n  ],\n  \"servings\": 4,\n  \"prepTime\": 10,\n  \"cookTime\": 15,\n  \"calories\": 320,\n  \"protein\": 28\n}\n```\n\n### Recipe Transformation\n\n```javascript\n// Request\n{\n  \"recipe\": {\n    \"title\": \"Classic Beef Lasagna\",\n    \"ingredients\": [\"1 lb ground beef\", \"ricotta cheese\", ...],\n    // ... full recipe\n  },\n  \"instructions\": \"Make this vegetarian and lower in calories\"\n}\n\n// Response\n{\n  \"title\": \"Vegetarian Light Lasagna\",\n  \"description\": \"A healthier vegetarian version...\",\n  \"ingredients\": [\n    \"2 cups chopped mushrooms\",\n    \"1 cup low-fat ricotta\",\n    // ... transformed ingredients\n  ],\n  // ... rest of transformed recipe\n}\n```\n\n## Troubleshooting\n\n### Rate Limit Errors\nIf you receive a 429 error, you've exceeded the rate limit. Wait for the time specified in the `retryAfter` field before making another request.\n\n### Connection Issues\nEnsure your internet connection is stable and the API endpoint is accessible.\n\n### Invalid Parameters\nCheck that your parameters match the expected format and constraints (e.g., servings between 1-20).\n\n## Contributing\n\nContributions are welcome! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## Support\n\n- 🐛 [Report Issues](https://github.com/blaideinc/recipe-mcp/issues)\n- 💬 [Discussions](https://github.com/blaideinc/recipe-mcp/discussions)\n- 📧 Email: support@blaide.com\n\n## Powered By\n\n- [Cookwith](https://cookwith.co) - AI-powered cooking platform\n- [OpenAI GPT-4](https://openai.com) - Recipe generation\n- [Model Context Protocol](https://modelcontextprotocol.io) - Tool integration","readmeFilename":"README.md"}