
该项目实现了一个使用TypeScript编写的本地模型上下文协议(MCP)服务器,该服务器暴露了Bring! 购物清单API的功能。它使诸如Claude Desktop等应用程序能够通过标准化的MCP工具与您的Bring! 购物清单进行交互。
服务器集成了bring-shopping npm包以访问Bring! API,并利用@modelcontextprotocol/sdk提供一个符合MCP标准的服务器接口。
免责声明: 这是一个个人项目。我与Bring! Labs AG没有任何关联。 本项目使用的是非官方的Bring! API,可能会在任何时候发生变化或被阻止。 这可能导致MCP服务器在没有事先通知的情况下停止工作。
要在Claude Desktop中通过npx使用此服务器,请将以下内容插入到您的claude_desktop_config.json文件中:
{
"mcpServers": {
"bring-mcp": {
"command": "npx",
"args": ["-y", "bring-mcp@latest"],
"env": {
"MAIL": "your_bring_email@example.com",
"PW": "YOUR_BRING_PASSWORD_HERE"
}
}
}
}
这是推荐且最便携的配置。它确保您始终使用已发布到npm的最新版本,而无需本地安装。
.env文件或注入环境变量的Bring! 凭据loadLists:从Bring!加载所有购物清单getItems:获取特定购物清单中的所有项目getItemsDetails:获取列表中项目的详细信息saveItem:将项目保存到购物清单中,可选指定saveItemBatch:一次操作将多个项目保存到购物清单中removeItem:从特定购物清单中删除项目moveToRecentList:将项目移动到最近使用的项目列表中deleteMultipleItemsFromList:根据名称从列表中删除多个项目saveItemImage:为购物清单中的项目保存图片removeItemImage:从项目中移除图片getAllUsersFromList:获取与购物清单相关联的所有用户getUserSettings:获取已认证用户的设置getDefaultList:获取默认购物清单的UUID(当用户未指定清单时使用)loadTranslations:加载Bring!界面的翻译loadCatalog:加载Bring!项目目录getPendingInvitations:获取加入购物清单的待处理邀请克隆仓库(或获取文件)
导航至项目目录:
cd path/to/bring-mcp
安装依赖项:
npm install
创建.env文件(如果未直接注入ENV):
MAIL=your_email@example.com
PW=your_password
构建项目:
npm run build
使脚本可执行(Unix系统上可选):
chmod +x build/src/index.js
启动MCP服务器:
node build/src/index.js
如果成功,您将在stderr上看到:MCP服务器正在运行Bring! API的STDIO上。
确保已执行npm run build。
确保存在包含有效凭据的.env。
运行Inspector:
npx @modelcontextprotocol/inspector node /ABS/PATH/bring-mcp/build/src/index.js
或者,如果您更喜欢本地构建和安装的版本:
{
"mcpServers": {
"mcp-bring": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/bring-mcp/build/src/index.js"],
"env": {
"MAIL": "your_bring_email@example.com",
"PW": "YOUR_BRING_PASSWORD_HERE"
}
}
}
}
运行测试:
npm run test
此命令运行格式化、代码检查以及带有覆盖率报告的Jest测试。
对于CI测试:
npm run test:ci
构建项目:
npm run build
@modelcontextprotocol/sdk:用于MCP服务器实现@modelcontextprotocol/inspector:用于测试和调试MCP服务器bring-shopping:用于Bring! API的Node.js封装zod:用于模式定义和验证dotenv:用于管理环境变量.env文件。祝您使用MCP和Bring!愉快编程🎉