内容
# ozon-mcp-server (分支)
用于Ozon.ru买家搜索的MCP服务器:商品、卡片、评论。
这是 **分支** [eduard256/ozon-mcp-server](https://github.com/eduard256/ozon-mcp-server) 的版本,做了四处最小改动,以确保在2026年的Windows桌面上稳定运行:
1. `browser.js` — `chromium.launch({ headless: false })` + 完整的chromium(代替 `chrome-headless-shell`)。Variti在2026年检测到lite版本的headless-shell,而完整的chromium带有真正的渲染可以通过挑战。
2. `browser.js` — Windows用户代理代替Linux。对应真实系统。
3. `browser.js` — `chromium.launchPersistentContext()` 代替 `launch + newContext`:cookies、localStorage和选择的区域存储在 `OZON_USER_DATA_DIR` (默认为 `~/.ozon-mcp-userdata` )中,持续到下一次运行。
4. `ozon.js` — `details()` 请求顺序执行代替 `Promise.all`。Variti限制对同一产品的两个同时fetch请求,作为机器人 → 稳定HTTP 403。同时,提供一个为空描述的fallback,以防page2无法返回。
## 安装
```jsonc
// ~/.claude.json → mcpServers
"ozon": {
"type": "stdio",
"command": "npx",
"args": ["-y", "github:Pir0manT/ozon-mcp-server"],
"env": {
"OZON_CITY": "Ростов-на-Дону",
"OZON_HIDE_WINDOW": "1"
}
}
```
首次使用前执行:
```bash
npx playwright@1.60.0 install chromium chromium-headless-shell
```
## 环境变量
| 变量 | 默认值 | 功能 |
|---|---|---|
| `OZON_CITY` | (未设置) | 预热后尝试通过UI设置区域。如果Ozon布局变更,抑制警告并继续。最好与persistent context一起设置。 |
| `OZON_HIDE_WINDOW` | `1` | chromium窗口启动时放置在屏幕外。如果为`0`,窗口可见(用于首次启动时手动选择区域)。 |
| `OZON_USER_DATA_DIR` | `~/.ozon-mcp-userdata` | 在多次启动之间保存cookies/storage的位置。 |
## 手动设置区域
如果自动`OZON_CITY`设置失败(Ozon可能更改了布局):
1. 在 `.claude.json` 中临时设置:`"OZON_HIDE_WINDOW": "0"`
2. `/mcp` → reconnect ozon → 发起任意请求
3. 在打开的chromium窗口中,点击头部当前区域并选择自己的区域
4. 关闭窗口(或等待10分钟空闲超时)
5. cookies将保存到 `OZON_USER_DATA_DIR`
6. 恢复 `"OZON_HIDE_WINDOW": "1"` — 之后将自动以正确的价格工作
## 许可证
MIT(与原版相同)。感谢 [@eduard256](https://github.com/eduard256) 提供原始实现。