HowToCook-MCP Server
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation4/5
Most tools have distinct purposes: getAllRecipes, getRecipeById, and getRecipesByCategory handle recipe retrieval in different ways, while recommendMeals and whatToEat focus on recommendation. However, recommendMeals and whatToEat could be confused as both recommend dishes based on similar inputs like number of people, though recommendMeals adds dietary restrictions and meal planning.
Naming Consistency5/5All tool names follow a consistent snake_case pattern with the prefix 'mcp_howtocook_' and descriptive verb_noun combinations (e.g., getAllRecipes, getRecipeById). This uniformity makes the tools predictable and easy to understand.
Tool Count5/5With 5 tools, this server is well-scoped for a cooking/recipe domain. It covers core operations like retrieval, filtering, and recommendation without being overwhelming or too sparse, fitting typical server sizes of 3-15 tools.
Completeness3/5The tool set covers read and recommendation operations well but lacks create, update, or delete tools for recipes, which are common in recipe management. This gap could limit agents from performing full lifecycle tasks, though retrieval and recommendation are adequately handled.
Average 2.9/5 across 5 of 5 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under ISC License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but provides minimal behavioral insight. It doesn't disclose whether this is a read-only operation, potential rate limits, error conditions, or return format (e.g., list structure). '获取所有菜谱' suggests a safe read, but lacks details needed for reliable use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise ('获取所有菜谱') but under-specified rather than efficiently informative. It's front-loaded but lacks necessary context, making it more of a placeholder than a well-structured summary that earns its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and minimal description, this is incomplete. The agent won't know what the return value looks like (e.g., list of recipes with fields), potential limitations, or how it differs from siblings beyond name. More context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 100% coverage (no_param described as '无参数' - no parameter), and the description doesn't add parameter details. Since there are effectively 0 functional parameters, the baseline is 4—the description doesn't need to compensate, and the schema adequately handles the trivial case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose2/5Does the description clearly state what the tool does and how it differs from similar tools?
The description '获取所有菜谱' (Get all recipes) states a basic action but is vague about scope and format. It doesn't specify whether this returns a complete list, paginated results, or what 'all' means in context. While it distinguishes from siblings by not filtering (vs. getRecipeById, getRecipesByCategory), it lacks the specificity needed for a 4-5 score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 like getRecipesByCategory or recommendMeals. The description implies a broad retrieval but doesn't mention trade-offs (e.g., performance for large datasets) or prerequisites, leaving the agent to guess 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.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions '可选分类有: ' (optional categories are: ) but trails off incomplete, failing to disclose behavioral traits like whether this returns a list, supports pagination, requires authentication, has rate limits, or what happens with invalid categories. The partial category listing creates uncertainty rather than transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness2/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single incomplete sentence: '根据分类查询菜谱,可选分类有: ' (Query recipes by category, optional categories are: ). It's under-specified, not concise—the trailing colon suggests missing content, making it feel truncated rather than efficiently structured. It fails to front-load key information effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a simple parameter (1 required), the description is incomplete. It doesn't explain what the tool returns (e.g., list of recipes, details), how to handle errors, or usage context. The partial category listing exacerbates gaps, leaving the agent unsure about valid inputs and expected behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'category' fully documented in the schema (type, enum, description). The description adds no meaningful semantics beyond the schema—it starts listing examples but cuts off, providing less information than the schema's '如水产、早餐、荤菜、主食等' (e.g., seafood, breakfast, meat dishes, staple foods). Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states '根据分类查询菜谱' (query recipes by category), which provides a basic verb+resource combination. However, it's vague about what 'query' means (list, search, filter?) and doesn't distinguish from sibling tools like mcp_howtocook_getAllRecipes or mcp_howtocook_getRecipeById. The description starts listing categories but is incomplete, which adds confusion rather than clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description doesn't mention sibling tools like mcp_howtocook_getAllRecipes (which might list all recipes without filtering) or mcp_howtocook_getRecipeById (which retrieves a specific recipe). There's no context about prerequisites, limitations, or typical use cases for category-based queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions the tool '推荐适合的菜品组合' (recommends suitable dish combinations), it doesn't describe what 'suitable' means, how recommendations are generated, whether they're personalized, what format the output takes, or any limitations. For a recommendation tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence that directly states the tool's purpose. It's front-loaded with the core functionality and wastes no words. Every part of the sentence contributes to understanding what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a recommendation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what constitutes a '菜品组合' (dish combination), how recommendations are determined, what the output format will be, or any constraints beyond the people count parameter. Given the complexity of recommendation logic and lack of structured output documentation, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage, with the single parameter 'peopleCount' well-documented in the schema. The description adds minimal value beyond the schema, only reinforcing that recommendations are based on '人数' (number of people). This meets the baseline of 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does 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 resource '菜品组合' (dish combinations), but doesn't explicitly distinguish it from sibling tools like 'mcp_howtocook_recommendMeals' which appears to have a similar recommendation function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal usage guidance - it only implies to use this tool when you '不知道吃什么' (don't know what to eat) and need recommendations based on people count. There's no explicit guidance on when to use this tool versus alternatives like 'mcp_howtocook_recommendMeals', nor any mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
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 the tool returns '完整详情' (complete details) including ingredients and steps, which adds value beyond the schema. However, it doesn't describe response format, error handling, rate limits, authentication needs, or whether it's a read-only operation. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('查询指定菜谱的完整详情') and includes essential details (resources covered, parameter behavior). Every word earns its place with no redundancy or wasted space, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (single parameter lookup tool), no annotations, and no output schema, the description is minimally adequate. It covers the basic purpose and parameter semantics, but lacks details on return values, error conditions, and behavioral traits. For a tool that presumably returns structured recipe data, more context about output format would be helpful, keeping it at a baseline viable level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'query' fully documented as supporting recipe names or IDs with fuzzy matching. The description adds marginal value by restating this information in Chinese ('菜谱名称或ID,支持模糊匹配菜谱名称'), but doesn't provide additional syntax examples, format details, or constraints beyond what the schema already covers. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does 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 mentioned (ingredients, steps). It distinguishes from siblings like getAllRecipes (list all) and getRecipesByCategory (filter by category) by focusing on individual recipe lookup. However, it doesn't explicitly name the verb 'get' or 'retrieve' in the description, keeping it at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: when you need full details of a specific recipe by name or ID. It mentions '支持模糊匹配菜谱名称' (supports fuzzy matching of recipe names), which provides some guidance on query format. However, it doesn't explicitly state when to use this tool versus alternatives like getAllRecipes (for browsing) or recommendMeals (for suggestions), nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. While it mentions creating meal plans and shopping lists, it doesn't disclose behavioral traits like whether this is a read-only operation, if it requires authentication, rate limits, or what the output format looks like. The description is functional but lacks operational transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently communicates the tool's core functionality. It's front-loaded with the main purpose and includes all key outcomes without unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (personalized meal planning with three parameters) and lack of both annotations and output schema, the description is insufficient. It doesn't explain what the output looks like (format of meal plans/shopping lists), whether recommendations are saved, or any limitations of the recommendation algorithm.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does 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 adds no additional parameter semantics beyond what's in the schema descriptions. This meets the baseline of 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('智能推荐菜谱', '创建一周的膳食计划', '创建大致的购物清单') and resources ('菜谱', '膳食计划', '购物清单'). It distinguishes from siblings by focusing on personalized meal planning rather than retrieval operations like getAllRecipes or getRecipeById.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through parameters (allergies, avoidItems, peopleCount) but doesn't explicitly state when to use this tool versus alternatives. It doesn't mention prerequisites or exclusions, leaving the agent to infer based on the tool's name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/kureha4/mcptest1'
If you have feedback or need assistance with the MCP directory API, please join our Discord server