返回市场
启动-MCP

启动-MCP

作者:florianwittkamp5 星标更新:2025-11-18

项目介绍

MCP Server for Bring! 购物

bring-mcp

该项目实现了一个使用TypeScript编写的本地模型上下文协议(MCP)服务器,该服务器暴露了Bring! 购物清单API的功能。它使诸如Claude Desktop等应用程序能够通过标准化的MCP工具与您的Bring! 购物清单进行交互。

服务器集成了bring-shopping npm包以访问Bring! API,并利用@modelcontextprotocol/sdk提供一个符合MCP标准的服务器接口。

免责声明: 这是一个个人项目。我与Bring! Labs AG没有任何关联。 本项目使用的是非官方的Bring! API,可能会在任何时候发生变化或被阻止。 这可能导致MCP服务器在没有事先通知的情况下停止工作。


🧩 推荐的Claude Desktop配置

要在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的最新版本,而无需本地安装。


🚀 功能

  • 自动认证:无需手动登录 - 在首次调用API时自动完成认证
  • 将Bring! API功能作为MCP工具公开:
    • 🧾 加载购物清单
    • 🛒 获取和修改项目(添加、删除、移动)
    • 📦 批量操作(保存多个项目,删除多个项目)
    • 🖼 保存/移除项目图片
    • 👥 管理列表用户
    • 🎯 获取默认购物清单UUID
    • 🌐 加载翻译及目录
    • 📨 检索待处理邀请
  • 通过STDIO通信(用于与Claude Desktop或MCP Inspector配合使用)
  • 支持通过.env文件或注入环境变量的Bring! 凭据

可用工具

  • loadLists:从Bring!加载所有购物清单
  • getItems:获取特定购物清单中的所有项目
  • getItemsDetails:获取列表中项目的详细信息
  • saveItem:将项目保存到购物清单中,可选指定
  • saveItemBatch:一次操作将多个项目保存到购物清单中
  • removeItem:从特定购物清单中删除项目
  • moveToRecentList:将项目移动到最近使用的项目列表中
  • deleteMultipleItemsFromList:根据名称从列表中删除多个项目
  • saveItemImage:为购物清单中的项目保存图片
  • removeItemImage:从项目中移除图片
  • getAllUsersFromList:获取与购物清单相关联的所有用户
  • getUserSettings:获取已认证用户的设置
  • getDefaultList:获取默认购物清单的UUID(当用户未指定清单时使用)
  • loadTranslations:加载Bring!界面的翻译
  • loadCatalog:加载Bring!项目目录
  • getPendingInvitations:获取加入购物清单的待处理邀请

⚙️ 设置和安装

  1. 克隆仓库(或获取文件)

  2. 导航至项目目录:

    cd path/to/bring-mcp
    
  3. 安装依赖项:

    npm install
    
  4. 创建.env文件(如果未直接注入ENV):

    MAIL=your_email@example.com
    PW=your_password
    
  5. 构建项目:

    npm run build
    
  6. 使脚本可执行(Unix系统上可选):

    chmod +x build/src/index.js
    

🏃 运行服务器

启动MCP服务器:

node build/src/index.js

如果成功,您将在stderr上看到:MCP服务器正在运行Bring! API的STDIO上


🧪 使用MCP Inspector测试

  1. 确保已执行npm run build

  2. 确保存在包含有效凭据的.env

  3. 运行Inspector:

    npx @modelcontextprotocol/inspector node /ABS/PATH/bring-mcp/build/src/index.js
    

🧩 Claude Desktop集成(手动本地设置)

或者,如果您更喜欢本地构建和安装的版本:

{
  "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 Inspector对于调试非常有用。
  • 🔄 认证是自动处理的 - 不需要手动登录。
  • 📦 使用批量操作提高效率,特别是在处理多个项目时。

祝您使用MCP和Bring!愉快编程🎉