HowToCook-MCP Server
The HowToCook-MCP Server provides AI assistants with tools to recommend recipes and plan meals, solving the dilemma of 'what to eat'.
Key features:
Query all available recipes for a comprehensive cooking encyclopedia
Filter recipes by category (seafood, breakfast, main course, etc.)
Generate intelligent weekly meal plans tailored to dietary restrictions, allergies, and party size
Provide daily meal suggestions based on the number of diners
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., "@HowToCook-MCP Serverrecommend a week of meals for 2 people, we're allergic to shellfish"
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.
🍳 HowToCook-MCP Server 🥘 -- 炫一周好饭,拒绝拼好饭
English | 简体中文
本项目 CDN 加速及安全防护由 Tencent EdgeOne 赞助
亚洲最佳 CDN、边缘和安全解决方案 - Tencent EdgeOne
让 AI 助手变身私人大厨,为你的一日三餐出谋划策!
基于Anduin2017/HowToCook打造的 MCP(Model Context Protocol)服务器,让 AI 助手能够为你推荐菜谱、规划膳食,解决"今天吃什么"的世纪难题!
数据来源:Anduin2017/HowToCook ⭐ 没有 star 的同学快去点个星星吧!
🎉 想直接使用当前 MCP?立即体验 https://howtocookmcp.weilei.site/
🎉 同时,我们也提供了 DXT(Desktop Extensions)供大家体验,一键安装到 Claude Desktop
如下:请确保你已经安装了最新版的 Claude Desktop, 当前 MCP 的 DXT 文件已上传代码库,可以自行下载或者 Fork 本仓库自行构建

本地开发如何打包成 DXT?
1.运行 npm install -g @anthropic-ai/dxt
2.在包含本地 MCP 服务器的文件夹中,运行 dxt init。也就是您 MCP 的根目录,此命令将引导您创建manifest.json
3.运行dxt pack创建 dxt 文件
现在,任何支持 DXT 的应用都可以运行您的本地 MCP 服务器。例如,使用适用于 macOS 和 Windows 的 Claude 打开该文件即可显示安装对话框
具体参阅:anthropics/dxt
📸 效果预览

Related MCP server: @mealmastery/mcp-server
🔌 支持的 MCP 客户端
本服务器适用于所有支持 MCP 协议的 AI 助手和客户端,包括但不限于:
🤖 Claude 桌面应用
📝 Cursor
💼 其他支持 MCP 的客户端
✨ 美味功能
该 MCP 服务器提供以下美食工具:
📚 查询全部菜谱 - 获取所有可用菜谱数据,做菜百科全书 -- 慎用这个--上下文太大
🔍 根据分类查询菜谱 - 按照分类筛选菜谱,想吃水产?早餐?荤菜?主食?一键搞定!
📖 查询指定菜谱 - 根据菜谱名称查询特定菜谱的完整详情,包括食材、步骤等
🧩 智能推荐膳食 - 根据你的忌口、过敏原和用餐人数,为你规划整整一周的美味佳肴
🎲 不知道吃什么 - 选择困难症福音!根据人数直接推荐今日菜单,再也不用纠结了
🚀 快速上手
📋 先决条件
Node.js 16.0.0+ 🟢
npm 或 yarn 📦
💻 安装步骤
克隆美食仓库
git clone https://github.com/worryzyy/howtocook-mcp.git
cd howtocook-mcp安装依赖(就像准备食材一样简单!)
npm install编译代码(烹饪过程...)
npm run build🎯 命令行参数
服务器支持以下命令行参数:
--transport <stdio|http|sse>- 选择传输方式(默认为 stdio)--port <number>- 使用 http 或 sse 传输时的监听端口(默认为 3000)
示例:使用 http 传输并监听 8080 端口
node build/index.js --transport http --port 8080🍽️ 开始使用
🔥 启动服务器
npm start🔧 配置 MCP 客户端
推荐使用 Cursor 快速体验(两种方式)
使用 npm 包:请先运行
npm i -g howtocook-mcp,否则会出现Failed to create client
然后在 Cursor 设置中添加 MCP 服务器配置:
{
"mcpServers": {
"howtocook-mcp": {
"command": "npx",
"args": ["-y", "howtocook-mcp"]
}
}
}如果是克隆仓库本地运行,请使用如下配置
{
"mcpServers": {
"howtocook-mcp": {
"command": "node",
"args": ["youpath\\howtocook-mcp\\build\\index.js"]
}
}
}其他 MCP 客户端
对于其他支持 MCP 协议的客户端,请参考各自的文档进行配置,通常需要指定:
服务器名称:
howtocook-mcp命令:
npx -y howtocook-mcp
重启客户端,让美食魔法生效 ✨
🧙♂️ 菜单魔法使用指南
以下是在各种 MCP 客户端中使用的示例提示语:
1. 📚 查询全部菜谱
无需参数,直接召唤美食全书!
请使用howtocook的MCP服务查询所有菜谱2. 🔍 根据分类查询菜谱
请使用howtocook的MCP服务查询水产类的菜谱参数:
category: 菜谱分类(水产、早餐、荤菜、主食等)
3. 🧩 智能推荐一周菜谱
请使用howtocook的MCP服务为3人推荐一周菜谱,我们家不吃香菜,对虾过敏参数:
allergies: 过敏原列表,如 ["大蒜", "虾"]avoidItems: 忌口食材,如 ["葱", "姜"]peopleCount: 用餐人数 (1-10)
4. 🎲 今天吃什么?
请使用howtocook的MCP服务为4人晚餐推荐菜单参数:
peopleCount: 用餐人数 (1-10)
📝 小贴士
该包已发布至 npm,可直接通过
npm install -g howtocook-mcp全局安装本服务兼容所有支持 MCP 协议的 AI 助手和应用
首次使用时,AI 可能需要一点时间来熟悉如何使用这些工具(就像烧热锅一样)
🤝 贡献
欢迎 Fork 和 Pull Request,让我们一起完善这个美食助手!
📄 许可
MIT License - 随意使用,就像分享美食配方一样慷慨!
🍴 美食即将开始,胃口准备好了吗?
Available Tools
5 toolsmcp_howtocook_getAllRecipesC
获取所有菜谱
| Name | Required | Description | Default |
|---|---|---|---|
| no_param | No | 无参数 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the action without disclosing behavioral traits such as whether this is a read-only operation, potential rate limits, pagination, or what the return format might be. For a tool with no annotations, this is a significant gap in transparency.
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 phrase '获取所有菜谱', which is extremely concise and front-loaded with the core action. There is no wasted text, making it efficient for quick understanding.
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?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'all recipes' includes (e.g., format, limits) or behavioral aspects. For a tool with no structured data to rely on, the description should provide more context to be fully helpful.
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 input schema has 1 parameter with 100% coverage, describing it as '无参数' (no parameter). The description doesn't add meaning beyond the schema, but since the parameter indicates no input is needed, the baseline is high. The description implicitly aligns with this by not mentioning parameters, but it doesn't provide extra context.
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 '获取所有菜谱' (Get all recipes) states the basic action and resource but lacks specificity. It doesn't distinguish from siblings like 'mcp_howtocook_getRecipesByCategory' or 'mcp_howtocook_getRecipeById' by explaining scope or filtering differences. The purpose is clear but vague regarding what 'all' entails.
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?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention siblings like 'mcp_howtocook_getRecipesByCategory' for filtered results or 'mcp_howtocook_recommendMeals' for suggestions, leaving the agent to infer usage based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_howtocook_getRecipeByIdB
根据菜谱名称或ID查询指定菜谱的完整详情,包括食材、步骤等
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | 菜谱名称或ID,支持模糊匹配菜谱名称 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the tool returns '完整详情' (complete details) including ingredients and steps, which adds some behavioral context. However, it doesn't disclose critical traits like whether this is a read-only operation, error handling for invalid queries, performance expectations, or authentication needs, leaving significant gaps for a tool with no annotation coverage.
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, efficient sentence that front-loads the core purpose. It avoids unnecessary words and directly states what the tool does. However, it could be slightly more structured by separating usage context from behavioral details to improve clarity.
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?
Given no annotations and no output schema, the description is moderately complete for a simple lookup tool. It covers the purpose and parameter basics but lacks details on return format, error conditions, or performance limits. For a tool with one parameter and 100% schema coverage, it's adequate but leaves room for improvement in behavioral transparency.
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 description coverage is 100%, with the parameter 'query' documented as supporting recipe names or IDs with fuzzy matching. The description adds minimal value beyond the schema by restating that it queries by '菜谱名称或ID' (recipe name or ID) but doesn't provide additional syntax, format examples, or clarification on how fuzzy matching works. Baseline 3 is appropriate given the schema does the heavy lifting.
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's purpose: '查询指定菜谱的完整详情' (query for complete recipe details) with specific resources (ingredients, steps). It distinguishes from sibling tools by focusing on individual recipe lookup rather than listing all recipes, filtering by category, or providing recommendations. However, it doesn't explicitly name the sibling tools for differentiation.
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 usage when needing complete details for a specific recipe identified by name or ID, which contrasts with sibling tools for bulk retrieval or recommendations. However, it lacks explicit guidance on when to use this tool versus alternatives like 'getRecipesByCategory' for category-based filtering or explicit exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_howtocook_getRecipesByCategoryC
根据分类查询菜谱,可选分类有: 水产, 早餐, 调料, 甜品, 饮品, 荤菜, 半成品加工, 汤, 主食, 素菜
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | 菜谱分类名称,如水产、早餐、荤菜、主食等 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states what the tool does (query by category) without mentioning any behavioral traits like whether it's read-only, what the output format might be, potential rate limits, error conditions, or authentication needs. For a query tool with zero annotation coverage, 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 appropriately sized and front-loaded: it starts with the core purpose ('根据分类查询菜谱') followed by the category list. Every sentence earns its place—no redundant or verbose language. It's efficient and easy to parse.
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?
Given the tool's simplicity (1 parameter, 100% schema coverage) but lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., list of recipes, error handling) or behavioral aspects. For a query tool, this leaves gaps in understanding how to interpret results or handle failures.
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 description lists the available categories, which adds meaning beyond the input schema's enum values. However, with 100% schema description coverage (the schema already documents the 'category' parameter with enum and description), the description doesn't provide additional parameter semantics like examples of usage, edge cases, or format details. The baseline is 3 when schema coverage is high.
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's purpose: '根据分类查询菜谱' (query recipes by category). It specifies the verb '查询' (query) and resource '菜谱' (recipes), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'mcp_howtocook_getAllRecipes' or 'mcp_howtocook_getRecipeById', which would require a 5.
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 provides no guidance on when to use this tool versus alternatives. It lists categories but doesn't mention when to choose this over 'mcp_howtocook_getAllRecipes' (all recipes) or 'mcp_howtocook_getRecipeById' (specific recipe). There's no context about prerequisites, exclusions, or typical use cases, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_howtocook_recommendMealsC
根据用户的忌口、过敏原、人数智能推荐菜谱,创建一周的膳食计划以及大致的购物清单
| Name | Required | Description | Default |
|---|---|---|---|
| allergies | No | 过敏原列表,如["大蒜", "虾"] | |
| avoidItems | No | 忌口食材列表,如["葱", "姜"] | |
| peopleCount | Yes | 用餐人数,1-10之间的整数 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions creating a weekly meal plan and shopping list, which implies generation/mutation behavior, but doesn't specify whether this creates persistent data, requires authentication, has rate limits, or what the output format looks like. For a tool that appears to generate plans (potentially mutating state), this leaves significant behavioral gaps.
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, efficient sentence that packs substantial information: it covers the input criteria, the core recommendation function, and the two outputs (meal plan and shopping list). There's zero wasted verbiage, and it's appropriately front-loaded with the main purpose.
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?
For a tool with no annotations and no output schema that appears to generate meal plans (potentially a mutation operation), the description is insufficient. It doesn't explain what the output looks like (e.g., format of the meal plan, structure of shopping list), whether the plan is saved or transient, or any error conditions. The completeness is inadequate given the tool's apparent complexity.
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 description coverage is 100%, so the schema already documents all three parameters thoroughly. The description mentions the parameters (忌口, 过敏原, 人数) but adds no additional semantic context beyond what's in the schema. The baseline score of 3 is appropriate when the schema does the heavy lifting.
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's purpose: '根据用户的忌口、过敏原、人数智能推荐菜谱,创建一周的膳食计划以及大致的购物清单' (Intelligently recommend recipes based on user's dietary restrictions, allergies, and number of people, create a weekly meal plan and approximate shopping list). This specifies the verb (recommend, create) and resources (recipes, meal plan, shopping list). However, it doesn't explicitly distinguish this from sibling tools like 'mcp_howtocook_whatToEat' which might have similar functionality.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, constraints, or compare it to sibling tools like 'mcp_howtocook_getAllRecipes' or 'mcp_howtocook_whatToEat'. The agent must infer usage from the purpose alone without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_howtocook_whatToEatB
不知道吃什么?根据人数直接推荐适合的菜品组合
| Name | Required | Description | Default |
|---|---|---|---|
| peopleCount | Yes | 用餐人数,1-10之间的整数,会根据人数推荐合适数量的菜品 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool recommends dish combinations based on people count, but doesn't describe how recommendations are generated (e.g., random, curated, based on preferences), what the output format is, or any constraints like rate limits or authentication needs. For a tool with no annotations, this is a significant gap in transparency.
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 concise and front-loaded: a single sentence in Chinese that directly states the tool's function and key parameter. There is no wasted text, and it efficiently communicates the core idea without unnecessary elaboration.
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?
Given the tool's moderate complexity (recommendation based on a single parameter), no annotations, and no output schema, the description is minimally adequate. It covers the purpose and parameter intent but lacks details on behavior, output, or differentiation from siblings. This meets the minimum viable threshold but has clear gaps in completeness.
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 description adds meaningful context beyond the input schema. The schema describes 'peopleCount' as an integer 1-10 for meal count, but the description clarifies it's for '用餐人数' (dining people) and that it '会根据人数推荐合适数量的菜品' (will recommend suitable number of dishes based on people count), explaining the parameter's purpose in the recommendation logic. With 100% schema coverage and 1 parameter, this exceeds the baseline of 3.
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's purpose: '根据人数直接推荐适合的菜品组合' (recommend suitable dish combinations based on number of people). It specifies the verb '推荐' (recommend) and the resource '菜品组合' (dish combinations), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'mcp_howtocook_recommendMeals', which appears similar.
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 provides minimal guidance: it implies usage when '不知道吃什么' (don't know what to eat) and based on '人数' (number of people). However, it offers no explicit when-to-use vs. when-not-to-use instructions, no prerequisites, and no alternatives compared to sibling tools like 'mcp_howtocook_recommendMeals'. This leaves the agent with unclear decision criteria.
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.
5 tool updates
v1.0.0- First observed
mcp_howtocook_getAllRecipes - First observed
mcp_howtocook_getRecipeById - First observed
mcp_howtocook_getRecipesByCategory - First observed
mcp_howtocook_recommendMeals - First observed
mcp_howtocook_whatToEat
TDQS
Each tool has a clearly distinct purpose: getAllRecipes retrieves all recipes, getRecipeById fetches a specific recipe, getRecipesByCategory filters by category, recommendMeals creates personalized meal plans, and whatToEat suggests immediate meal combinations. There is no overlap or ambiguity in functionality.
All tool names follow a consistent snake_case pattern with the prefix 'mcp_howtocook_' and descriptive verb_noun combinations (e.g., getRecipeById, recommendMeals). The naming is uniform and predictable across all tools.
With 5 tools, the server is well-scoped for a cooking/recipe domain. Each tool serves a specific, valuable function without redundancy, making the count appropriate and manageable for the intended purpose.
The toolset covers core operations like retrieval, filtering, and recommendation effectively. However, there are minor gaps in CRUD coverage, such as no tools for creating, updating, or deleting recipes, which could limit full lifecycle management but are not essential for a read-only or recommendation-focused server.
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
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
An MCP server that integrates with Discord to provide AI-powered features.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
MCP server for AI dialogue using various LLM models via AceDataCloud
Related MCP Servers
- 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
- FlicenseNot gradedqualityDmaintenanceMCP server enabling AI assistants to manage recipes and ingredients in the WeekPlan app via its REST API.1-
- FlicenseAqualityDmaintenanceMCP server that provides cooking recipe lookup, classification, and weekly meal planning based on dietary restrictions and allergies.5-
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/worryzyy/HowToCook-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server