Skip to main content
Glama
gaopengbin

CookLikeHOC MCP

by gaopengbin

CookLikeHOC MCP

一个轻量、只读、来源可追溯的 MCP 适配器,让 Codex、Claude、Cursor 等 MCP 客户端检索本地 Gar-b-age/CookLikeHOC 菜谱。

IMPORTANT

本项目是独立社区适配器,不是 CookLikeHOC 官方项目,也不内置、镜像或发布任何上游菜谱、图片或索引。用户必须自行取得上游仓库,并遵守其内容与来源材料的权利声明。项目仍在等待上游维护者确认合作意愿。

为什么做这个项目

CookLikeHOC 已经拥有结构清晰的中文家常菜资料。本项目只负责把用户本地取得的 Markdown 检出转换为四个低风险 MCP 工具;菜单规划、人数换算和采购决策仍由连接它的 AI 客户端完成。

  • 本地读取:运行时不依赖菜谱 API、账号或密钥。

  • 默认只读:不会修改、删除或上传菜谱。

  • 来源可追溯:每项结果都返回对应的上游 GitHub 文件链接。

  • 中文搜索:支持常见食材同义词,例如土豆/马铃薯、番茄/西红柿。

  • 结构化提取:从常见 Markdown 标题中解析配料、步骤和营养成分。

Related MCP server: cookwith-mcp

MCP 工具

工具

用途

search_recipes

按菜名、食材、分类或多个关键词搜索,支持 all / any 匹配模式。

find_recipes_by_ingredients

根据已有食材排序菜谱,并返回配料覆盖率、已匹配和仍缺少的配料。

get_recipe

按搜索结果中的路径读取完整菜谱和来源链接。

list_categories

列出本地检出中的菜谱分类与数量。

快速开始

要求 Node.js 20 或更高版本。

git clone https://github.com/Gar-b-age/CookLikeHOC.git
git clone https://github.com/gaopengbin/cooklikehoc-mcp.git
cd cooklikehoc-mcp
npm ci
npm run build

Codex

将下面的路径替换成你的绝对路径:

codex mcp add cooklikehoc \
  --env COOKLIKEHOC_DIR=/absolute/path/to/CookLikeHOC \
  -- node /absolute/path/to/cooklikehoc-mcp/dist/index.js

Windows PowerShell 示例:

codex mcp add cooklikehoc `
  --env "COOKLIKEHOC_DIR=D:\gpb\CookLikeHOC" `
  -- node "D:\gpb\cooklikehoc-mcp\dist\index.js"

运行 codex mcp get cooklikehoc 检查配置,然后重启本地客户端或新开会话。

通用 MCP 配置

{
  "mcpServers": {
    "cooklikehoc": {
      "command": "node",
      "args": ["/absolute/path/to/cooklikehoc-mcp/dist/index.js"],
      "env": {
        "COOKLIKEHOC_DIR": "/absolute/path/to/CookLikeHOC"
      }
    }
  }
}

可以这样问

我有鸡肉、土豆和葱。先用 CookLikeHOC 找出最匹配的菜,列出还缺少的配料,再读取第一道菜的完整做法和来源。

搜索包含西红柿或鸡蛋的炒菜,最多返回 5 道,并保留每道菜的原始来源链接。

配置

环境变量

必填

说明

COOKLIKEHOC_DIR

本地 CookLikeHOC 仓库的绝对路径。

COOKLIKEHOC_SOURCE_BASE_URL

来源链接前缀,默认是上游仓库 main 分支。适合测试分支或镜像。

目录扫描会忽略 .gitdocsdocker_supportimagesnode_modules 和所有 README.md,避免把说明文件误当成菜谱。

开发与验证

npm ci
npm run check

跨平台单元测试使用临时菜谱夹具,不依赖开发者电脑上的固定路径。若要验证真实上游数据:

COOKLIKEHOC_DIR=/absolute/path/to/CookLikeHOC npm run smoke

PowerShell:

$env:COOKLIKEHOC_DIR = "D:\gpb\CookLikeHOC"
npm run smoke

CI 在 Windows、Linux 和 Node.js 20/22 上执行构建、单元测试及真实 MCP 冒烟测试。

设计边界

  • 不把 CookLikeHOC 菜谱、图片或生成索引提交到本仓库。

  • 不声称本项目得到 CookLikeHOC 或老乡鸡官方认可。

  • 不替上游内容添加许可证;本仓库的 MIT License 只适用于适配器代码。

  • 不默认提供写入、删除、账户同步或远程上传能力。

  • 食材覆盖率来自 Markdown 配料列表的文本匹配,不应视为营养、医疗或过敏原建议。

License

MIT,仅适用于本适配器代码。CookLikeHOC 内容及其引用素材不包含在本许可证中。

Available Tools

3 tools
get_recipe读取 CookLikeHOC 菜谱A

按 search_recipes 返回的路径读取完整菜谱;始终返回原始上游来源链接。

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYessearch_recipes 返回的 relativePath,例如:蒸菜/葱油鸡.md

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the transparency burden. It discloses two key behaviors: it retrieves the full recipe and always includes the original upstream source link. This is meaningful context, though it does not address error cases or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the core purpose and a key behavioral guarantee. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one parameter and no output schema, the description sufficiently covers how to invoke it (using search_recipes path) and what to expect (full recipe plus source link). It is nearly complete, though it omits mention of failure handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage for the single 'path' parameter, including its source (search_recipes' relativePath). The description repeats this usage without adding new semantic details, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a complete recipe using the path returned by search_recipes, distinguishing it from sibling tools search_recipes (which searches) and list_categories (which lists categories). The verb '读取' (read) and resource '菜谱' (recipe) are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use the path from search_recipes, implying the proper sequence: first search, then get. It does not explicitly mention alternatives or exclusions but provides clear context for when this tool should be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_categories列出 CookLikeHOC 分类A

列出本地 CookLikeHOC 检出中的菜谱分类和数量。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description provides the key behavioral context that the tool operates on a local checkout, and that it returns categories with counts. It conveys a read-only listing operation, though it does not detail error behavior or output formatting.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the action and states the scope and result. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately covers the tool's purpose and output for a zero-parameter, no-output-schema tool. It specifies the local context and the information returned (categories and counts), making it complete for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the schema is trivially complete. The description adds no parameter-level details because none exist. The baseline score of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: listing recipe categories and counts from a local CookLikeHOC checkout. This distinguishes it from sibling tools like search_recipes and get_recipe, which focus on searching and fetching individual recipes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool over alternatives. It implies that for category overviews you would use this tool, but no explicit usage conditions or exclusion criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_recipes搜索 CookLikeHOC 菜谱A

按菜名、食材或关键词检索本地 CookLikeHOC 菜谱,并返回上游来源链接。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes菜名、食材或多个关键词,例如:鸡腿 土豆
categoryNo可选分类,例如:蒸菜、炒菜、饮品

TDQS

A3.9/5.0
Behavior3/5

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 adds that the search returns upstream source links and is scoped to local recipes, but it does not disclose result limits, ordering, error behavior, or whether the search is fuzzy/case-sensitive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that immediately states the search target and return value with no filler. Efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description gives some return information (source links) but lacks details on the result format, how limit affects the response, and how this tool relates to get_recipe. It is acceptable for a simple search tool but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67% (query and category have descriptions, limit does not). The description reiterates the query semantics but adds no additional detail about limit defaults or category usage beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: searching local CookLikeHOC recipes by name, ingredient, or keyword, and returning source links. This distinguishes it from siblings like get_recipe and list_categories.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (when you have a search term) via '按菜名、食材或关键词检索', providing clear context. However, it does not explicitly mention when not to use it or reference sibling alternatives such as get_recipe for fetching a specific 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.

  1. 3 tool updatesv0.1.0
    • First observedget_recipe
    • First observedlist_categories
    • First observedsearch_recipes

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct role: search_recipes finds recipes via query, get_recipe retrieves a specific recipe by path, and list_categories provides an overview of categories and counts. No functional overlap exists.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case: search_recipes, get_recipe, list_categories. This is uniform and predictable.

Tool Count5/5

With only 3 tools, the set is well-scoped for a read-only recipe lookup server. Each tool provides a core function (search, retrieve, browse categories) without unnecessary bloat.

Completeness4/5

The core read workflows (search, get full recipe, list categories) are covered. A minor gap is the inability to list all recipes in a category directly, but the search tool may partially compensate through keyword search.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that transforms AI assistants into personal chefs by providing recipe recommendations and meal planning features based on the HowToCook repository.
    5
    2,917 npm
    770
    ISC
  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that enables AI-powered recipe generation and transformation using natural language, supporting dietary restrictions, allergies, and nutritional goals.
    2
    8 npm
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    MCP server that provides cooking recipe lookup, classification, and weekly meal planning based on dietary restrictions and allergies.
    5
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Cookidoo, enabling AI tools to search recipes, manage shopping lists, and retrieve account and subscription information.
    2
    GPL 3.0