Food Core MCP
Click on "Deploy 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., "@Food Core MCPCheck my food inventory for upcoming expiration reminders."
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.
Food Core MCP
Food Core 是一个独立运行的 Model Context Protocol(MCP)服务,用于记录食品库存、估算建议食用日期、管理食品消耗状态,并向 MCP 客户端返回到期提醒。
项目使用本地 JSON 文件保存库存,不依赖 Cyberboss 主项目,也没有第三方运行时依赖。
Food Core 提供的是库存与提醒功能,不是食品安全鉴定工具。对于未包装食品,系统给出的日期只是偏保守的建议;实际食用前仍应参考包装说明、储存条件和当地食品安全建议。
主要功能
添加、查询、修改和删除食品库存。
将
4 bottles、4瓶等离散数量保存为四条独立记录。将
500g等按重量记录的食品保留为一条可调整记录。根据食品种类和储存方式估算建议食用日期。
储存条件不明确时主动要求补充信息,不盲目猜测。
按“食品名称 + 储存位置 + 到期日”识别同组商品。
同组有
n件商品时,从到期前n + 3个自然日开始提醒。进入提醒期后,每次每日检查都会继续返回该食品,直到食品被删除。
食品已经过期但现实中仍然存在时,继续保留并提醒处理。
吃掉、喝掉、用完或扔掉整份食品后,直接从库存删除。
支持重复的离家/在家工作周期,必要时在离家前提前提醒。
Related MCP server: Wellness Nourish
MCP 工具
为了兼容已有部署,公开版本继续使用 cyberboss_food_* 工具名称:
工具 | 用途 |
| 添加一件或多件食品 |
| 查询库存 |
| 修改数量、位置、日期、备注等信息 |
| 标记食品状态;现实中已经消失的食品会被删除 |
| 根据 ID 永久删除一条记录 |
| 查询已过期、需要提醒和暂未到提醒期的食品 |
| 保存重复的离家/在家周期 |
| 保存自定义提醒时间规则 |
服务还提供只读 MCP 资源:
cyberboss-food://tools/index该资源会列出工具说明和输入结构。
环境要求
Node.js 18 或更高版本
支持本地 stdio MCP 服务的客户端
项目只使用 Node.js 内置模块,因此不需要安装第三方 npm 依赖。
安装方法
git clone https://github.com/caroliny1031/food-core.git
cd food-core
npm test环境变量
可选环境变量:
CYBERBOSS_FOOD_STORE_FILE它用于指定私有库存 JSON 文件的位置。未设置时,默认路径为:
./data/food-inventory.json第一次保存库存时,程序会自动创建数据目录和文件。库存可能包含食品名称、日期、备注和工作周期信息,请不要把真实库存文件提交到公开仓库。
仓库中的 .env.example 只是填写示例。Food Core 不会自动读取 .env 文件,需要通过系统环境变量或 MCP 客户端配置传入。
启动命令
npm start等价命令:
node mcp-server.jsMCP 客户端配置
以下示例中的路径必须替换成你电脑上的绝对路径。建议将真实库存文件放在仓库目录之外。
Claude Desktop
将以下内容加入 Claude Desktop 的 MCP 配置:
{
"mcpServers": {
"food-core": {
"command": "node",
"args": ["/absolute/path/to/food-core/mcp-server.js"],
"env": {
"CYBERBOSS_FOOD_STORE_FILE": "/absolute/path/to/private-data/food-inventory.json"
}
}
}
}Windows 用户可以在 JSON 中使用正斜杠,或者将反斜杠写成双反斜杠。
Codex
在 Codex 的 config.toml 中添加:
[mcp_servers.food-core]
command = "node"
args = ["/absolute/path/to/food-core/mcp-server.js"]
[mcp_servers.food-core.env]
CYBERBOSS_FOOD_STORE_FILE = "/absolute/path/to/private-data/food-inventory.json"其他 MCP 客户端
使用本地 stdio 服务配置:
启动命令:
node参数:
/absolute/path/to/food-core/mcp-server.js可选环境变量:
CYBERBOSS_FOOD_STORE_FILE
使用示例
添加四瓶同批次牛奶
{
"tool": "cyberboss_food_add",
"arguments": {
"name": "牛奶",
"quantity": "4瓶",
"storage": "fridge",
"bestBeforeDate": "2026-08-10"
}
}Food Core 会创建四条独立记录。因为同组共有四瓶,所以从到期前 4 + 3 = 7 个自然日开始提醒。
喝掉一瓶后删除其中一条记录,剩余三瓶继续作为同组商品管理。
添加按重量记录的肉类
{
"tool": "cyberboss_food_add",
"arguments": {
"name": "牛肉",
"quantity": "500g",
"storage": "freezer",
"bestBeforeDate": "2026-09-01"
}
}500g 会保留为一条记录。如果只使用一部分,可以通过更新工具修改剩余重量。
检查到期状态
{
"tool": "cyberboss_food_check_expiry",
"arguments": {
"now": "2026-08-04T09:00:00+08:00"
}
}在支持自然语言的 MCP 客户端里,也可以直接说:
“帮我记四瓶牛奶,放在冷藏,8 月 10 日到期。”
“我喝掉了一瓶牛奶。”
“现在有哪些食品快过期了?”
提醒规则
同组商品的正常提醒提前量为:
提前天数 = 当前同组商品数量 + 3提醒期从计算所得自然日的零点开始。例如一瓶牛奶 6 月 5 日到期,会从 6 月 1 日开始进入提醒期,并在 6 月 1、2、3、4 日的每日检查中持续返回。
如果到期后食品仍然存在,检查结果会继续把它列为已过期;只有在食品被吃掉、喝掉、用完或扔掉并从库存删除后,提醒才会停止。
Food Core 本身不会主动发送消息。要实现每天一次通知,需要由 MCP 客户端、智能体或定时任务每天调用一次 cyberboss_food_check_expiry。
测试
npm test测试使用内存库存,不需要真实 JSON 文件,也不会修改你的实际库存。
常见问题
Food Core 会自己发通知吗?
不会。它负责计算并返回提醒状态,具体通知由调用它的 MCP 客户端、智能体或定时任务负责发送。
食品过期后会自动删除吗?
不会。只要食品现实中还存在,就继续保留。确认已经吃掉、喝掉、用完或扔掉后才删除。
库存保存在哪里?
优先使用 CYBERBOSS_FOOD_STORE_FILE 指定的路径;没有设置时使用 ./data/food-inventory.json。
可以把库存 JSON 提交到 GitHub 吗?
不建议。库存可能包含个人饮食、时间、备注和工作周期信息。默认 .gitignore 已排除整个 data/ 目录。
为什么工具名仍然带有 cyberboss_food_?
这是为了兼容已经部署的客户端。Food Core 本身是独立项目,不会导入或修改 Cyberboss 主项目源码。
可以自定义更早的提醒时间吗?
可以。使用 cyberboss_food_set_reminder_policy 或在检查时传入策略覆盖值。系统会采用适用规则中更早的提醒时间。
可以记录常温食品吗?
可以。可以使用 pantry 或 room temperature 等储存位置。预制菜应根据包装要求选择冷藏、冷冻或常温。
隐私建议
不要提交真实
food-inventory.json。不要把密码、Token 或 Cookie 写进备注。
将库存文件保存在仓库之外,或至少确保
data/始终被忽略。公开前使用
git ls-files再检查一次实际提交文件。
许可证
本项目使用 MIT License,详见 LICENSE。
Available Tools
8 toolscyberboss_food_addA
Add a food item to the standalone Cyberboss food inventory. Use explicit dates when the user provides them. For unpackaged foods, the tool estimates a suggested use-by date from conservative food rules. If storage is ambiguous, such as raw meat without fridge/freezer context, the tool asks for clarification instead of guessing. Input: { name: string, quantity?: string, storage?: string, category?: string, addedAt?: string, bestBeforeDate?: string, expiresAt?: string, expiresInDays?: number, notes?: string }
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Food name, such as spinach, chicken breast, or frozen beef. | |
| notes | No | ||
| addedAt | No | Optional add time/date. Defaults to now. | |
| storage | No | Optional storage: fridge, freezer, pantry, cold storage, frozen, or room temperature. | |
| category | No | Optional rule category id when known. | |
| quantity | No | Optional natural-language amount. Discrete counts such as 4 bottles or 4瓶 create one inventory item per unit. | |
| expiresAt | No | Optional exact expiry datetime. | |
| expiresInDays | No | Optional number of days from addedAt. | |
| bestBeforeDate | No | Optional YYYY-MM-DD suggested use-by date. |
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 discloses estimation of use-by dates and clarification behavior. However, it does not mention authentication, rate limits, idempotency, or what happens on duplicate names. The description is adequate but not exhaustive.
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 paragraph that efficiently conveys the tool's purpose and key behaviors. It is not verbose and front-loads the primary action. Minor improvements could include bullet points for parameters.
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 complexity (9 parameters, no output schema), the description covers the essential behavior: adding an item, handling dates, and storage ambiguity. It is sufficiently complete for an add operation, though it could mention what happens on duplicate names or validation errors.
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 coverage is 89%, so the schema already documents most parameters. The description adds context about estimation and clarification, which hints at behaviors related to bestBeforeDate and storage parameters. It does not add deep semantic meaning beyond what the schema provides.
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 'Add a food item to the standalone Cyberboss food inventory.' It uses a specific verb and resource, and it naturally distinguishes from sibling tools like list, update, or remove.
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 usage guidance such as using explicit dates when provided, estimation for unpackaged foods, and clarification for ambiguous storage. It does not explicitly state when not to use this tool, but it gives clear context for its operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cyberboss_food_check_expiryA
Check which food reminders are due, expired, or upcoming. Reminder timing respects the saved work cycle, so foods expiring during a 48-hour away window are surfaced before departure. Once an item is due, it remains due on every daily check through expiry and afterward until it is physically gone and removed; remind the user once per calendar day. Input: { now?: string, includeAll?: boolean, workCycle?: {}, policy?: {} }
| Name | Required | Description | Default |
|---|---|---|---|
| now | No | Optional current datetime for checks. | |
| policy | No | Optional reminder policy override. | |
| workCycle | No | Optional override work cycle. | |
| includeAll | No | Include closed items. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the behavioral burden. It details that reminders respect work cycles, are surfaced before away windows, remain due until physically removed, and are reminded once per day. This exceeds typical disclosure.
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 (4 sentences) and front-loads the core purpose. However, the inline parameter list at the end is somewhat redundant given the schema, but does not detract significantly.
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?
No output schema is provided, and the description fails to explain what the tool returns (e.g., a list of reminders, statuses, etc.). Given the tool has 4 parameters and no output schema, the description should cover output structure.
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 coverage is 100% and descriptions are provided. The tool description merely repeats the parameter list without adding new semantic meaning beyond the schema. No additional constraints or usage details are given for the parameters.
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?
Description clearly states 'Check which food reminders are due, expired, or upcoming,' using a specific verb and resource. It alludes to differentiation from siblings by mentioning reminder timing and work cycles, but does not explicitly contrast with 'list' or 'mark' tools.
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?
Provides some usage context, e.g., 'remind the user once per calendar day' and timing relative to work cycles. However, it lacks explicit guidance on when to use this tool versus sibling tools like cyberboss_food_list, nor does it state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cyberboss_food_listC
List food items from the standalone Cyberboss food inventory. Input: { storage?: string, status?: string, includeClosed?: boolean }
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Optional stored status filter. Current inventory items should usually be active. | |
| storage | No | Optional storage filter. | |
| includeClosed | No | Include old closed status records, if any exist. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It does not mention that this is a read-only operation, nor any side effects, pagination, or authorization requirements.
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 very concise, with one sentence for purpose and a compact parameter summary. It could be better structured but contains no unnecessary text.
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 output schema and annotations, the description should explain what the tool returns (e.g., list of items) and any important constraints. It does not, leaving the agent blind to return format and operational behavior.
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 coverage is 100%, so baseline is 3. The description repeats parameter names but adds no extra meaning beyond the schema's descriptions.
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 'List food items from the standalone Cyberboss food inventory,' using a specific verb and resource. It is distinct from sibling tools like add or remove, but does not explicitly differentiate itself.
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 vs alternatives, nor any context about prerequisites or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cyberboss_food_markA
Mark a food item. If the food is physically gone, such as consumed, discarded, eaten, drunk, finished, or used up, remove it from inventory. If it still exists, including expired, overdue, spoiled, or still in the fridge, keep it active so reminders continue. Input: { id: string, status: string, notes?: string }
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| notes | No | ||
| status | Yes | Gone statuses such as consumed/discarded/eaten/finished remove the item. Present statuses such as active/expired/overdue/spoiled keep it active. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It explains that 'gone' statuses remove the item and 'present' statuses keep it active, listing examples. Could add details on side effects like reminder cancellation, but overall transparent.
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?
Description is relatively concise with clear action and conditional logic. The inline input format hint is slightly redundant given schema. Could be tightened further.
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?
Adequately describes behavior and key parameter but lacks return value information and does not mention output schema. Given no output schema, expectation for completeness is higher.
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 coverage is low (33%). Description adds meaningful explanation for 'status' parameter (gone vs present dichotomy) but provides no extra for 'id' or 'notes'. Partially compensates for low coverage.
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?
Description clearly states it marks a food item and distinguishes two scenarios based on status (gone vs present). It differentiates from siblings like 'remove' and 'update' by explaining the conditional removal or keeping.
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?
Implied usage is present from the behavior description, but no explicit when-to-use or comparison with sibling tools like 'cyberboss_food_remove' or 'cyberboss_food_update' is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cyberboss_food_removeA
Permanently remove one food item by id. cyberboss_food_mark also removes whole consumed or discarded foods. Input: { id: string }
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes action as 'permanently remove', implying destructive behavior, but lacks details on permissions, reversibility, or error handling. With no annotations, this is adequate but not thorough.
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?
Two sentences, no wasted words, front-loaded with core action. Efficient and clear.
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 output schema and simple input, the description sufficiently covers the removal action. Lacks return value info but acceptable for a straightforward deletion.
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 has 1 parameter (id) with 0% description coverage. Description only repeats 'id' as a string, adding no semantic value or context beyond the schema.
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?
Clearly states the tool removes one food item by id, and distinguishes from sibling tool cyberboss_food_mark which removes whole consumed/discarded foods.
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?
Mentions alternative tool (cyberboss_food_mark) that also removes items, providing implicit guidance on when to use each. Could explicitly state when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cyberboss_food_set_reminder_policyB
Set reminder timing policy for food expiry checks. Input: { normalLeadHours?: number, beforeDepartureBufferHours?: number, afterReturnGraceHours?: number }
| Name | Required | Description | Default |
|---|---|---|---|
| normalLeadHours | No | Default lead time when work cycle does not force an earlier reminder. | |
| afterReturnGraceHours | No | Treat food expiring soon after return as needing pre-departure attention. | |
| beforeDepartureBufferHours | No | How long before leaving home to remind about away-window expiry. |
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 only states the action without disclosing behavioral traits such as defaults, persistence, side effects, or whether previous settings are overwritten.
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 short and to the point, consisting of one sentence plus an inline object. While efficient, the inline type definition is somewhat redundant with the schema.
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 3 optional parameters, no output schema, and no annotations, the description is insufficient. It does not explain what happens when parameters are omitted, how the policy is applied, or what the tool returns.
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?
With 100% schema description coverage, the baseline is 3. The inline parameter list in the description adds little beyond the schema; it echoes the same information without providing additional meaning or constraints.
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 sets a reminder timing policy for food expiry checks, with a specific verb ('set') and resource ('reminder timing policy'), distinguishing it from siblings like 'set_work_cycle'.
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 for configuring reminder timings but does not provide explicit guidance on when to use this tool versus alternatives like 'set_work_cycle', 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.
cyberboss_food_set_work_cycleA
Set the user's repeating away/home work cycle for food reminder timing. For a 48-hour shift pattern, pass awayHours 48, homeHours 48, and anchorAwayStart as the first known away start. Input: { type?: string, awayHours: number, homeHours: number, anchorAwayStart: string }
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Optional; defaults to repeating_away_home. | |
| awayHours | Yes | ||
| homeHours | Yes | ||
| anchorAwayStart | Yes | Datetime when an away block starts, such as 2026-05-29T08:00:00+08:00. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the input format and gives a example, but does not explain behavior like overwriting previous cycles, idempotency, permissions, or error responses.
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 two sentences, concise and front-loaded with the purpose. The example is helpful. It could be slightly more structured, but there is no waste.
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 there is no output schema, the description does not explain return values or confirmation of success. For a simple setter, it provides basic context but misses completeness on outcomes.
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 coverage is 50% (type and anchorAwayStart have descriptions). The description adds significant context by showing how to use the parameters for a 48-hour pattern, clarifying that awayHours and homeHours represent durations and anchorAwayStart is a datetime, which compensates for missing schema details.
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 sets the user's repeating away/home work cycle for food reminder timing, giving a specific verb and resource. The example of a 48-hour shift pattern adds context. It implicitly distinguishes from sibling tools like cyberboss_food_set_reminder_policy, but does not explicitly differentiate.
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 for setting work cycles with a concrete example, but lacks explicit when-to-use or when-not-to-use guidance, and does not mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cyberboss_food_updateB
Update one food item by id. Use this to adjust dates, quantity, notes, storage, category, or status. Input: { id: string, name?: string, quantity?: string, storage?: string, category?: string, bestBeforeDate?: string, expiresAt?: string, notes?: string, status?: string }
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| name | No | ||
| notes | No | ||
| status | No | ||
| storage | No | ||
| category | No | ||
| quantity | No | ||
| expiresAt | No | ||
| bestBeforeDate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. Does not disclose whether update is partial or full, what happens to omitted fields, idempotency, permissions, or side effects. Assumed to be a patch-like update but not explicitly stated.
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?
Concise with two sentences and a pseudo-schema, but the 'Input' block is redundant with the actual schema, wasting space. Could be shorter by omitting the Input block.
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 9 optional parameters, no output schema, and no annotations, the description is minimal. Lacks information on return value, error handling, or behavior when fields are omitted. Inadequate for a mutation tool.
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 0%, yet description merely restates parameter names with types (identical to schema). No added semantic details like format constraints, allowed values, or relationships between parameters.
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?
Clearly states tool updates one food item by ID and lists specific adjustable fields (dates, quantity, notes, storage, category, status). Differentiates from sibling tools like 'add' and 'remove' by focusing on modification.
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?
Provides a usage hint ('Use this to adjust...') but lacks explicit guidance on when not to use it or alternatives (e.g., 'use cyberboss_food_add for new items'). Sibling names provide some context, but description doesn't leverage them.
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.
8 tool updates
v0.1.0- First observed
cyberboss_food_add - First observed
cyberboss_food_check_expiry - First observed
cyberboss_food_list - First observed
cyberboss_food_mark - First observed
cyberboss_food_remove - First observed
cyberboss_food_set_reminder_policy - First observed
cyberboss_food_set_work_cycle - First observed
cyberboss_food_update
TDQS
Scored across 8 tools
Each tool has a distinct purpose: add, list, update, remove, mark status, check expiry, and set policies. There is no overlap; even 'mark' and 'remove' are clearly differentiated by description.
All tools follow a consistent 'cyberboss_food_<verb>' pattern in snake_case, such as cyberboss_food_add and cyberboss_food_set_reminder_policy. The naming is predictable and uniform.
With 8 tools, the set is well-scoped for a food inventory domain. It covers CRUD, expiry checking, and configuration without unnecessary duplication or bloat.
The tool surface covers all essential operations: add, list, update, remove, mark, check expiry, and configure reminders/work cycles. Minor gap: no search by name, but list filtering covers most needs.
Maintenance
Related MCP Connectors
Unlock the power of food transparency with our Open Food Facts MCP server. Easily look up any food
MCP server exposing supplements database used by iNutriPlan.com
MCP server for Product Management
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for USDA nutrition data lookup, meal logging, and daily macro tracking.16 npmMIT
- AlicenseBqualityAmaintenanceA local-first nutrition MCP server for food search, barcode lookup, meal estimation, intake logging, hydration, and nutrition coaching workflows.4690 npm9MIT
- AlicenseAqualityCmaintenanceMCP server for managing personal items with expiration dates, enabling AI agents to add, query, and scan barcode items via API Key authentication.54 npmMIT
- AlicenseBqualityDmaintenanceMCP server for meal planning and grocery list generation, enabling recipe storage, meal plan creation, and automated grocery lists with ignored ingredients.82MIT