内容
# mcp-server-snoonu
[](https://www.npmjs.com/package/mcp-server-snoonu)
[](https://github.com/Bewinxed/mcp-server-snoonu/blob/main/LICENSE)
> [!IMPORTANT]
> **您的凭证永远不会离开您的机器。** 所有身份验证(OTP 登录,会话 cookie)都在您的设备上的浏览器中本地处理。会话数据仅存储在您的文件系统上的 `~/.mcp-server-snoonu/session.json` 中 - 永远不会将令牌或密码发送到或存储在任何远程服务器上。
适用于 [Snoonu](https://snoonu.com) 的模型上下文协议(MCP)服务器 - 卡塔尔的配送平台。搜索产品,管理购物车,结账 - 所有这些都来自任何与 MCP 兼容的代理。
## 快速开始
```bash
npx mcp-server-snoonu
```
### Claude 代码
```bash
claude mcp add snoonu -- npx -y mcp-server-snoonu
```
### Claude 桌面版
将以下内容添加到您的 `claude_desktop_config.json` 中:
```json
{
"mcpServers": {
"snoonu": {
"command": "npx",
"args": ["-y", "mcp-server-snoonu"]
}
}
}
```
## 工具
| 工具 | 描述 |
| --- | --- |
| `init_session` | 初始化或恢复已保存的身份验证会话 |
| `login` | 使用电话号码启动 OTP 登录流程 |
| `verify_otp` | 使用 6 位 OTP 代码完成登录 |
| `logout` | 清除当前会话 |
| `search_products` | 跨商家搜索(支持 `deep_search` 以获取完整目录) |
| `bulk_search` | 一次并行搜索多个产品(非常适合购物清单) |
| `search_in_merchant` | 在特定商家中按菜单 ID 搜索 |
| `get_product_details` | 获取产品的图片,描述和库存信息 |
| `browse_categories` | 列出顶级类别(杂货,餐厅等) |
| `get_saved_addresses` | 列出已保存的配送地址 |
| `set_delivery_location` | 按地址 ID 切换配送位置 |
| `add_to_cart` | 将商品添加到购物车(需要登录) |
| `get_cart` | 查看当前购物车内容 |
| `remove_from_cart` | 从购物车中删除商品 |
| `clear_cart` | 清空整个购物车 |
| `go_to_checkout` | 导航到结账页面 |
## 架构
```text
src/
├── mcp/
│ ├── server.ts # Stdio 入口点(通过 npx/bunx 进行本地使用)
│ ├── server-http.ts # HTTP 入口点(远程/Docker 部署)
│ ├── create-server.ts # 共享服务器工厂
│ └── tools/ # 工具定义(Zod 模式 + 处理程序)
│ ├── session.ts # init_session, login, verify_otp, logout
│ ├── search.ts # search_products, bulk_search, search_in_merchant, get_product_details
│ ├── cart.ts # add_to_cart, get_cart, remove_from_cart, clear_cart
│ ├── checkout.ts # go_to_checkout
│ ├── browse.ts # browse_categories
│ └── location.ts # get_saved_addresses, set_delivery_location
├── lib/
│ ├── api-client.ts # Snoonu API 的直接 fetch() 客户端
│ ├── session-manager.ts # Cookie/令牌持久性(~/.mcp-server-snoonu/)
│ └── browser.ts # 登录/结账流程的 Playwright 浏览器
└── types/
└── snoonu/ # Snoonu API 响应的 TypeScript 类型
```
## 开发
```bash
# 克隆
git clone https://github.com/Bewinxed/mcp-server-snoonu.git
cd mcp-server-snoonu
# 安装
bun install
# 直接使用 Bun 运行(无需构建步骤)
bun run dev
# 为 npm 构建
bun run build
```
## 许可证
[AGPL-3.0](LICENSE) — 版权所有 (c) 2025 Omar Al Matar
> [!NOTE]
> **免责声明:** 本项目与 Snoonu 或其任何子公司无关,不受其认可或赞助。“Snoonu” 是 Snoonu W.L.L. 的商标。本项目是一个独立的开源工具,与公开可用的 Snoonu 网络 API 进行交互。请自担风险,并根据 Snoonu 的服务条款使用。