内容
# @anujsup/milkbasket-mcp
[](https://www.npmjs.com/package/@anujsup/milkbasket-mcp)
[](https://www.npmjs.com/package/@anujsup/milkbasket-mcp)
[](https://opensource.org/licenses/MIT)
[](https://modelcontextprotocol.io)
[](https://nodejs.org)
> AI赋能的印度 grocery shopping — [模型上下文协议(MCP)](https://modelcontextprotocol.io) 服务器,用于 [Milkbasket](https://www.milkbasket.com/) API。
将您的AI助手(Cursor、Claude Desktop、Windsurf 或任何MCP客户端)连接到您的Milkbasket账户,让它处理您的日常杂货 — 使用OTP登录,浏览产品,构建购物车,查看钱包余额,并通过自然语言查看完整的订单摘要。
**您可以执行以下操作:**
- 请求AI查找产品 — "搜索价格低于₹50的低脂牛奶"
- 构建和管理购物车 — "添加2个Amul黄油,移除lassi"
- 在配送前查看订单 — "显示我的购物车和完整账单"
- 跟踪钱包余额 — "我的Milkbasket余额是多少?"
- 获取账户详情 — "我被分配到哪个城市和中心?"
## 前置条件
- Node.js 18 或更高版本
- Milkbasket账户(印度手机号码)
- MCP客户端(Cursor、Claude Desktop等)
## 安装
### 选项1:npx(推荐,无需安装)
```json
{
"mcpServers": {
"milkbasket": {
"command": "npx",
"args": ["-y", "@anujsup/milkbasket-mcp@latest"]
}
}
}
```
### 选项2:全局安装
```bash
npm install -g @anujsup/milkbasket-mcp
```
```json
{
"mcpServers": {
"milkbasket": {
"command": "milkbasket-mcp"
}
}
}
```
### 选项3:本地安装
```bash
npm install @anujsup/milkbasket-mcp
```
```json
{
"mcpServers": {
"milkbasket": {
"command": "node",
"args": ["node_modules/@anujsup/milkbasket-mcp/dist/index.js"]
}
}
}
```
## Cursor 设置
将配置添加到 `.cursor/mcp.json`(项目根目录)或 `~/.cursor/mcp.json`(全局):
```json
{
"mcpServers": {
"milkbasket": {
"command": "npx",
"args": ["-y", "@anujsup/milkbasket-mcp@latest"]
}
}
}
```
保存后重新加载Cursor。
## 可用工具
### 身份验证
| 工具 | 描述 |
|---|---|
| `auth_request_otp` | 向您注册的手机号码发送OTP |
| `auth_verify_otp` | 验证OTP并登录 |
| `auth_status` | 检查您当前是否已身份验证 |
| `auth_logout` | 注销并清除存储的令牌 |
### 用户
| 工具 | 描述 |
|---|---|
| `get_user_details` | 获取您的姓名、电子邮件、城市、中心和会员信息 |
| `get_wallet_balance` | 获取您当前的Milkbasket钱包余额和现金返还 |
### 产品
| 工具 | 描述 |
|---|---|
| `list_products` | 列出精选/限时优惠产品(分页) |
| `search_products` | 按名称或关键词搜索产品(分页) |
| `get_hero_collections` | 获取首页显示的英雄横幅集合 |
### 购物车
| 工具 | 描述 |
|---|---|
| `add_to_cart` | 将新产品添加到购物车或增加购物车中产品的数量 |
| `remove_from_cart` | 减少购物车中产品的数量或将其从购物车中移除 |
| `get_basket` | 购物车快照 — 商品数量、产品ID、基本总计 |
| `get_extended_basket` | 完整的购物车视图 — 产品名称、图片、折扣、配送费、GST、最终应付金额 |
## 身份验证流程
```
1. auth_request_otp → { phone: "9XXXXXXXXX" }
2. 通过短信接收OTP
3. auth_verify_otp → { phone: "9XXXXXXXXX", otp: "XXXX" }
4. 您现在已登录
```
## 安全与隐私
**此服务器100%在您的本地机器上运行。** 您的手机号码、OTP和令牌永远不会离开您的设备 — 它们永远不会发送给任何第三方,包括AI助手。以下是具体发生的情况:
- 您的手机号码直接从您的机器发送到Milkbasket的服务器以请求OTP
- 您与AI分享的OTP直接从您的机器传递到Milkbasket以验证登录
- AI模型只能看到响应(成功/失败) — 它无法拦截或存储您的凭证
- 访问令牌使用 `keytar` 存储在您的 **操作系统密钥链** (macOS Keychain,Windows Credential Manager,Linux Secret Service)中 — 与VS Code和1Password等应用程序使用的相同安全存储
- 如果 `keytar` 不可用,则使用 **AES-256-GCM加密文件** 作为备用方案
- 您可以使用 `auth_logout` 注销,这会立即清除所有存储的令牌
## 购物车流程
```
search_products → 查找 productId 和价格
add_to_cart → { productId, price, quantity }
remove_from_cart → { productId, price, quantity: 0 } ← 设置为 0 以删除
get_extended_basket → 完整的结算视图
```
## 您可以用AI询问的内容
连接后,只需自然地与AI对话:
| 您说的话 | 会发生什么 |
|---|---|
| "登录Milkbasket" | 发送OTP → 验证 → 存储令牌 |
| "搜索paneer" | 调用 `search_products` 并返回匹配结果 |
| "将2个Amul Gold牛奶添加到我的购物车" | 调用 `add_to_cart` 使用正确的产品 |
| "从我的购物车中移除lassi" | 调用 `remove_from_cart` 数量为0 |
| "显示我的购物车和完整账单" | 调用 `get_extended_basket` 带有逐项账单 |
| "我的钱包余额是多少?" | 调用 `get_wallet_balance` |
| "我的账户详情是什么?" | 调用 `get_user_details` — 姓名、城市、中心、会员资格 |
| "今天有哪些优惠?" | 调用 `list_products` 获取限时优惠 |
| "注销" | 清除密钥链中的令牌 |
## Cursor中的示例用法
```
搜索Amul牛奶产品
→ search_products({ query: "amul milk" })
添加到购物车2个单位
→ add_to_cart({ productId: 1234, price: 28, quantity: 2 })
查看完整的购物车和账单明细(产品名称、折扣、配送费、GST、应付金额)
→ get_extended_basket()
减少数量1
→ remove_from_cart({ productId: 1234, price: 28, quantity: 1 })
完全移除产品
→ remove_from_cart({ productId: 1234, price: 28, quantity: 0 })
查看钱包余额
→ get_wallet_balance()
获取账户信息
→ get_user_details()
```
## 许可证
MIT © [Anujsup](https://github.com/Anujsup)