baozhibao-mcp-server
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., "@baozhibao-mcp-server查询我的所有物品"
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.
不过期助手 MCP Server
物品管理小程序的 MCP Server,支持智能体(Claude、Cursor、Cline、小龙虾等)通过 API Key 管理物品。
✨ 功能特性
🛠️ 可用工具
工具 | 描述 | 参数 |
| 使用 API Key 登录,获取认证 Token |
|
| 添加新物品,记录名称、位置、过期日期等 |
|
| 通过扫描条形码添加物品,自动识别信息 |
|
| 查询物品列表,支持关键词、位置、状态筛选 |
|
| 获取物品详细信息 |
|
🎯 核心特性
🔐 API Key 认证 - 安全的身份验证机制
📦 类型安全 - 完整的 TypeScript 类型定义
🔍 智能搜索 - 支持关键词、位置、状态等多维度查询
📱 条形码扫描 - 自动识别商品信息
🌐 通用兼容 - 支持 Claude Desktop、Cursor、Cline、小龙虾等
Related MCP server: inventory-mcp
📦 安装
方式一:全局安装(推荐)
npm install -g baozhibao-mcp-server
# 或
npx baozhibao-mcp-server方式二:本地安装
git clone https://github.com/fawaikuangtuzhangfei/baozhibao-mcp-server.git
cd baozhibao-mcp-server
npm install
npm run build🚀 快速开始(从零配置)
第一步:获取 API Key
打开微信,搜索「不过期助手」小程序
进入小程序后,点击「我的」->「设置」
找到「API Key 管理」,点击「创建 API Key」
输入名称(如 "Claude Code"),点击确认
立即复制 生成的 API Key(格式:
sk_xxx),只会显示一次!
第二步:安装 MCP Server
方式 A:全局安装(推荐)
npm install -g baozhibao-mcp-server方式 B:从源码构建
git clone https://github.com/fawaikuangtuzhangfei/baozhibao-mcp-server.git
cd baozhibao-mcp-server
npm install
npm run build第三步:配置 Claude Code
找到配置文件位置:
Windows:
C:\Users\<你的用户名>\.claude\settings.jsonmacOS/Linux:
~/.claude/settings.json
如果文件不存在,手动创建
添加 MCP Server 配置:
{
"mcpServers": {
"baozhibao": {
"command": "node",
"args": [
"D:/path/to/baozhibao-mcp-server/dist/index.js"
],
"env": {
"BAOZHIBAO_API_URL": "https://h1b.site/out_date",
"BAOZHIBAO_API_KEY": "sk_xxx"
}
}
}
}注意:
args填你实际安装的路径
BAOZHIBAO_API_URL填后端服务地址
BAOZHIBAO_API_KEY填第一步获取的密钥
第四步:重启 Claude Code
配置完成后,重启 Claude Code 使配置生效。
第五步:验证配置
在 Claude Code 中输入:
帮我看看我有哪些物品如果返回你的物品列表,说明配置成功!
⚙️ 详细配置
环境变量
创建 .env 文件或直接在 MCP 配置的 env 中设置:
# API 服务地址(必填)
BAOZHIBAO_API_URL=https://h1b.site/out_date
# API Key(可选,用于默认登录)
BAOZHIBAO_API_KEY=sk_xxx参考 .env.example 文件:
cp .env.example .env🖥️ 其他客户端配置
Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) 或 %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"baozhibao": {
"command": "node",
"args": [
"/path/to/baozhibao-mcp-server/dist/index.js"
],
"env": {
"BAOZHIBAO_API_URL": "https://h1b.site/out_date",
"BAOZHIBAO_API_KEY": "sk_xxx"
}
}
}
}在 Claude Code 中配置
编辑 ~/.claude/settings.json:
{
"mcpServers": {
"baozhibao": {
"command": "node",
"args": [
"/path/to/baozhibao-mcp-server/dist/index.js"
],
"env": {
"BAOZHIBAO_API_URL": "https://h1b.site/out_date",
"BAOZHIBAO_API_KEY": "sk_xxx"
}
}
}
}在 Cursor 中配置
编辑 Cursor 设置中的 MCP Servers 配置:
{
"mcpServers": {
"baozhibao": {
"command": "node",
"args": [
"/path/to/baozhibao-mcp-server/dist/index.js"
],
"env": {
"BAOZHIBAO_API_URL": "https://h1b.site/out_date"
}
}
}
}在 Cline (VSCode) 中配置
在 VSCode 设置中搜索 cline.mcp.servers,添加:
{
"baozhibao": {
"command": "node",
"args": [
"/path/to/baozhibao-mcp-server/dist/index.js"
],
"env": {
"BAOZHIBAO_API_URL": "https://h1b.site/out_date"
}
}
}在小龙虾中配置
打开小龙虾设置
添加 MCP Server
输入配置:
{
"mcpServers": {
"baozhibao": {
"command": "node",
"args": [
"/path/to/baozhibao-mcp-server/dist/index.js"
],
"env": {
"BAOZHIBAO_API_URL": "https://h1b.site/out_date"
}
}
}
}💬 使用示例
以下为真实对话效果,AI 会自动调用工具并以友好的格式呈现结果。
场景一:查询所有物品
用户: 帮我看看我有哪些物品
AI: 你一共有 28 件物品,按状态分类如下:
✅ 未过期(有效物品)
| 物品 | 位置 | 数量 | 过期日期 |
|--------------------|--------|------|-------------|
| 苹果 | 冰箱 | 1 | 无保质期 |
| 尖叫多肽型运动饮料 | 我的家 | 4 | 2026-04-29 |
| 红枣桂圆枸杞茶 | 我的家 | 1 | 2026-09-08 |
| 洁柔纸面巾 | 我的家 | 6 | 2028-11-29 |
⚠️ 已过期(需注意)
| 物品 | 数量 | 过期日期 |
|--------------|------|-------------|
| 三麟椰子水 | 2 | 2025-06-08 |
📌 提醒:三麟椰子水已过期将近10个月了,建议处理掉。AI 会自动分页查询、按状态分类汇总,并主动提醒过期物品。
场景二:按关键词搜索
用户: 我的牛奶放哪了?
AI: 找到 2 件牛奶相关物品:
- 牛奶 x 2,位于未设置,过期日期 2025-12-31(已过期88天)
⚠️ 这批牛奶已经过期了,建议检查是否还能使用。场景三:添加物品
用户: 帮我记录一下,牛奶放在冰箱里,5月1号过期
AI: ✅ 已添加:牛奶
- 存放位置:冰箱
- 过期日期:2025-05-01
- 数量:1场景四:扫码添加
用户: 帮我扫码添加这个商品,条形码是 6920459950180,放冰箱,明年3月过期
AI: ✅ 已识别并添加商品
- 商品名称:蒙牛纯牛奶
- 存放位置:冰箱
- 过期日期:2026-03-31
- 数量:1场景五:按状态筛选
用户: 有哪些快过期的东西?
AI: 查询到以下临期物品:
| 物品 | 位置 | 剩余天数 | 过期日期 |
|--------------------|--------|---------|------------|
| 尖叫多肽型运动饮料 | 我的家 | 30天 | 2026-04-29 |
📌 运动饮料还有1个月过期,建议尽快饮用。场景六:查看物品详情
用户: 帮我看看牛奶的详细信息
AI: 物品详细信息:
- 名称:牛奶
- 存放位置:未设置
- 数量:2
- 过期日期:2025-12-31
- 状态:已过期(过期88天)实用提示
分页加载:物品较多时 AI 会自动分页查询(每页 20 条)
智能分类:AI 会按"未过期/已过期/已消费"自动归类,不只是罗列数据
过期提醒:AI 会主动计算过期天数并给出建议
模糊匹配:搜索关键词支持物品名称、品牌等模糊匹配
🛠️ 开发
# 安装依赖
npm install
# 开发模式
npm run dev
# 编译 TypeScript
npm run build
# 监听模式编译
npm run watch
# 调试 MCP Server
npx @modelcontextprotocol/inspector npm run dev🔑 获取 API Key
打开「不过期助手」小程序
进入「设置」->「API Key 管理」
点击「创建 API Key」
输入名称(如"小龙虾")
复制生成的 API Key(格式:
sk_xxx)
📋 工具参数详解
login - 登录
参数 | 类型 | 必填 | 说明 |
apiKey | string | ✅ | API Key,格式为 |
add_item - 添加物品
参数 | 类型 | 必填 | 说明 |
name | string | ✅ | 物品名称 |
locationId | number | ❌ | 存放位置 ID |
locationName | string | ❌ | 存放位置名称,如"冰箱" |
expiryDate | string | ❌ | 过期日期,格式 |
quantity | number | ❌ | 数量,默认 1 |
categoryId | number | ❌ | 分类 ID |
categoryName | string | ❌ | 分类名称 |
description | string | ❌ | 物品描述 |
brand | string | ❌ | 品牌 |
specification | string | ❌ | 规格 |
price | number | ❌ | 价格 |
remark | string | ❌ | 备注 |
scan_add_item - 扫码添加
参数 | 类型 | 必填 | 说明 |
barcode | string | ✅ | 条形码 |
locationId | number | ❌ | 存放位置 ID |
locationName | string | ❌ | 存放位置名称 |
quantity | number | ❌ | 数量,默认 1 |
expiryDate | string | ❌ | 过期日期 |
query_items - 查询物品
参数 | 类型 | 必填 | 说明 |
keyword | string | ❌ | 搜索关键词 |
locationId | number | ❌ | 存放位置 ID |
locationName | string | ❌ | 存放位置名称 |
status | number | ❌ | 状态:0-未过期,1-已过期,2-已消费 |
isNearlyExpired | number | ❌ | 是否临期:0-否,1-是 |
categoryId | number | ❌ | 分类 ID |
pageNum | number | ❌ | 页码,默认 1 |
pageSize | number | ❌ | 每页数量,默认 20 |
get_item - 获取详情
参数 | 类型 | 必填 | 说明 |
id | number | ✅ | 物品 ID |
🏗️ 项目结构
baozhibao-mcp-server/
├── src/
│ ├── api/
│ │ └── client.ts # API 客户端
│ ├── tools/
│ │ ├── login.ts # 登录工具
│ │ ├── addItem.ts # 添加物品工具
│ │ ├── scanAddItem.ts # 扫码添加工具
│ │ ├── queryItems.ts # 查询物品工具
│ │ └── getItem.ts # 获取详情工具
│ ├── types/
│ │ └── index.ts # 类型定义
│ ├── index.ts # 入口文件
│ └── server.ts # MCP Server 主逻辑
├── dist/ # 编译输出
├── .env.example # 环境变量示例
├── package.json
├── tsconfig.json
└── README.md⚠️ 注意事项
🔑 API Key 只在创建时显示一次,请妥善保存
🚫 不要将 API Key 提交到代码仓库
🔄 如果 API Key 泄露,请立即在小程序中删除并重新创建
📝 所有日志输出到 stderr,数据通信通过 stdout
📌 当前限制
仅支持个人模式
当前 MCP Server 仅支持个人模式,所有物品操作均以当前登录用户的个人身份进行(familyId = null),不支持家庭相关的功能。
不受影响的功能:
✅ 添加/查询/详情查看个人物品
✅ 扫码添加个人物品
✅ 个人位置和分类管理
暂不支持的功能:
❌ 家庭物品管理(共享物品、家庭内私有物品)
❌ 家庭成员相关操作(查看成员、邀请、移除等)
❌ 按家庭成员筛选物品
❌ 个人与家庭数据同步
❌ 家庭位置/分类管理
后端 API 已具备完整的家庭功能支持(17 个接口),后续版本会逐步接入。
🤝 贡献
欢迎贡献代码、报告问题或提出建议!
请查看 CONTRIBUTING.md 了解详情。
📄 许可证
🔗 相关链接
📞 联系方式
作者: fawaikuangtuzhangfei
GitHub: @fawaikuangtuzhangfei
如果这个项目对你有帮助,请给个 ⭐️ Star!
Available Tools
5 toolsadd_itemC
添加新物品。可以记录物品名称、存放位置、过期日期等信息。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 物品名称(必填) | |
| brand | No | 品牌 | |
| price | No | 价格 | |
| remark | No | 备注 | |
| quantity | No | 数量,默认为1 | |
| categoryId | No | 分类ID | |
| expiryDate | No | 过期日期,格式 YYYY-MM-DD | |
| locationId | No | 存放位置ID | |
| description | No | 物品描述 | |
| categoryName | No | 分类名称,如"食品"、"日用品" | |
| locationName | No | 存放位置名称,如"冰箱"、"柜子" | |
| specification | No | 规格 |
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 that it adds an item and lists some recordable fields, but does not mention side effects, permission requirements, return values, or whether certain parameters are ignored under conditions. Minimal behavioral 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 with two short sentences. The first sentence clearly states the tool's purpose; the second lists example fields, which is partly redundant with the schema but does not bloat the text. It is well-structured and front-loaded.
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 has 12 parameters, no annotations, and no output schema, the description is far too minimal. It does not cover usage context, behavior, return values, or how it differs from scanning-based addition. The description only provides a basic label rather than complete operational guidance.
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 input schema already documents all 12 parameters. The description mentions a few example fields (name, location, expiry) but adds no extra semantic meaning, relationships, or parameter-specific nuances beyond the schema. Baseline score applies.
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 action ('添加新物品' - add new item) and the resource, and briefly mentions the types of information that can be recorded. It distinguishes from read-only siblings like query_items and get_item, though it does not explicitly differentiate from scan_add_item.
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 such as scan_add_item. It lacks any mention of prerequisites, exclusions, or typical use cases, leaving the agent without clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_itemA
获取物品详细信息。通过物品ID查询物品的完整信息。
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 物品ID(必填) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral transparency. It only states that it queries by ID and returns complete info, but does not mention error behavior, permissions, or any side effects. The read-only nature is implied by 'get' but not explicitly disclosed.
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 extremely concise, two short sentences, with no filler. It front-loads the purpose and includes the key parameter usage.
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 simple single-parameter get tool, the description covers the basics but lacks details about return format, error handling, and use cases. Without an output schema or annotations, the agent must infer these. It is adequate but not comprehensive.
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% with one required 'id' parameter described as '物品ID'. The description adds the context that the ID is used for querying, but this aligns with the schema. No additional parameter semantics are provided 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?
The description clearly states the tool retrieves detailed item information using the item ID. It uses a specific verb ('获取' / get) and resource ('物品详细信息' / item details), distinguishing it from sibling tools like add_item or query_items.
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 a single item lookup by ID but does not explicitly contrast with sibling tools like query_items or scan_add_item. It does not state when to prefer this over alternatives, so the usage context is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loginA
使用 API Key 登录,获取认证 Token。这是使用其他工具前的第一步。
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | API Key,格式为 sk_xxx,可在小程序中生成 |
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 discloses the login action and token acquisition, but does not mention error cases (e.g., invalid API key), token expiration, or side effects. For a simple login tool, this is minimally adequate but not rich.
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 short sentences that are front-loaded with the core action and outcome. Every word earns its place; no filler or repetition.
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 one-parameter login tool with no output schema, the description covers purpose, outcome (token), and usage context. It would benefit from noting that the token must be used in subsequent requests, but the phrase 'first step' implicitly conveys this.
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 already fully documents apiKey with format and generation source (100% coverage). The description only restates that an API key is used, adding no new parameter-specific information. Baseline 3 is appropriate.
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 action: login with an API Key to obtain an authentication Token. It uses a specific verb ('登录') and resource ('API Key'), and distinguishes itself from sibling tools (add_item, query_items, etc.) by positioning as the required first step.
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?
Explicitly states that this is the first step before using other tools ('这是使用其他工具前的第一步'), providing clear context for when to use it. Although no alternatives are mentioned, the guidance is unambiguous and sufficient for the tool's role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_itemsA
查询物品列表。可以通过关键词、位置、状态等条件筛选。
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | 状态:0-未过期,1-已过期,2-已消费 | |
| keyword | No | 搜索关键词,匹配物品名称、品牌等 | |
| pageNum | No | 页码,默认1 | |
| pageSize | No | 每页数量,默认20 | |
| categoryId | No | 分类ID | |
| locationId | No | 存放位置ID | |
| locationName | No | 存放位置名称 | |
| isNearlyExpired | No | 是否临期:0-非临期,1-临期 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. '查询' (query) implies a read-only operation, but the description does not disclose pagination behavior, response shape, or access requirements. It adds minimal context beyond the name.
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?
One compact sentence, front-loaded with the action and then filters. No redundant or filler information.
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 list query with no output schema and no annotations, the description gives the core purpose and filter categories but omits response shape, pagination/default behavior, and sorting. The schema covers parameters, so the gap is mainly around output and ordering semantics. Adequate but incomplete.
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 descriptions cover 100% of the 8 parameters, so the baseline is 3. The description adds no new parameter semantics—'keyword, location, status' paraphrases what the schema already documents, and 'etc.' does not expand on categoryId/isNearlyExpired.
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 '查询物品列表' (query items list), a specific verb+resource with filter dimensions (keyword, location, status). The plural 'list' inherently distinguishes it from the sibling get_item, which suggests single-item retrieval.
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 use case is implied by the word 'list' and the filter options, but the description does not explicitly say when to use this tool versus siblings. It does not mention alternatives like get_item for single-item details or add_item for creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_add_itemA
通过扫描条形码添加物品。系统会自动识别物品信息,用户只需补充存放位置等信息。
| Name | Required | Description | Default |
|---|---|---|---|
| barcode | Yes | 条形码(必填) | |
| quantity | No | 数量,默认为1 | |
| expiryDate | No | 过期日期,格式 YYYY-MM-DD | |
| locationId | No | 存放位置ID | |
| locationName | No | 存放位置名称,如"冰箱"、"柜子" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses that the system automatically recognizes item information, but it does not mention error handling for unknown barcodes, whether existing items are updated, required permissions, or any side effects. As a mutation tool, this is insufficient behavioral 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 one concise sentence, front-loaded with the action and purpose. Every word earns its place, with no redundant filler. It is appropriately sized for the tool.
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?
With 5 parameters, no annotations, and no output schema, the description is too brief. It does not explain what happens after a successful scan (return values, confirmation), what occurs if the barcode is not in the database, or edge cases like duplicate items. The tool is complex enough to require more context than provided.
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 100% coverage with descriptions for all parameters. The description adds context that users only need to supplement information like location, but this does not add meaning beyond the schema. Baseline 3 applies since the schema handles parameter documentation well.
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 action: scan barcode to add an item. It specifies the resource (items) and the method (barcode scanning), distinguishing it from siblings like add_item which likely handles manual entry. The verb '添加' (add) is specific and unambiguous.
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 use when the user has a barcode and wants to add an item, and that the system auto-fills info, requiring the user to only supply additional fields like location. However, it does not explicitly compare against alternatives like add_item or mention when not to use this tool. Clear context but no explicit exclusions.
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.
5 tool updates
v1.0.0- First observed
add_item - First observed
get_item - First observed
login - First observed
query_items - First observed
scan_add_item
TDQS
Scored across 5 tools
Most tools are distinct: login for auth, add_item for manual entry, scan_add_item for barcode entry, query_items for listing/searching, and get_item for details. The only potential confusion is between add_item and scan_add_item, but the barcode-specific description makes their purposes clear.
Tool names mostly follow a verb_noun pattern (add_item, query_items, get_item), with scan_add_item as a compound of that. 'login' is a slight deviation but is a common exception and doesn't disrupt the overall consistency.
With 5 tools, the server is well-scoped for basic item management. Each tool serves a necessary step in the workflow (auth, adding, querying, viewing details), and no tools feel redundant or excessive.
The server covers authentication, item creation (two methods), listing, and detail retrieval, but lacks update and delete operations. This is a notable gap for a full CRUD lifecycle, though agents could potentially work around it in limited scenarios.
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for managing Homebox inventory via AI assistants, enabling item management, location organization, and label categorization.4MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for Inventory (whereiput.it) that enables searching, full CRUD operations on items/locations/areas, and AI-powered photo recognition flow from MCP-compatible clients.-
- FlicenseCqualityDmaintenanceAn MCP server that exposes Homebox inventory management as tools for AI agents, enabling search, add, update, delete products, locations, tags, and maintenance entries.172-
- AlicenseAqualityCmaintenanceIndependent MCP server for tracking food inventory, estimating best-before dates, managing consumption, and returning expiry reminders to MCP clients.81MIT
