使用说明
Wildberries工具MCP
MCP服务器,用于检索Wildberry产品评论并将其暴露给LLM客户端。
服务器支持:
- 标准 适用于本地MCP客户端,如Claude Desktop、Cursor和Cherry Studio;
- 可流式传输的HTTP 用于远程MCP客户端,如ChatGPT自定义MCP应用程序;
- optional 通过X射线核心旋转VLESS出口 适用于正常出站IP不适合Wildberry访问的部署。
工具
| 工具 | 说明 |
|---|---|
get_wb_reviews |
接受Wildberry产品URL或SKU,并以JSON格式返回产品元数据和最多500条评论文本。 |
建筑学
无X射线:
ChatGPT / MCP client
|
v
WildberriesToolsMCP
|
v
Wildberries APIs
带旋转式VLESS出口:
ChatGPT / MCP client
|
v
WildberriesToolsMCP
|
| HTTPX SOCKS5
v
127.0.0.1:1080
|
v
Xray-core
|
| validated VLESS candidate
v
Wildberries APIs
MCP端点本身是 不 通过VLESS代理。只有Wildberry客户端发出的出站HTTP请求才会使用 OUTBOUND_PROXY.
VLESS旋转生命周期
当 XRAY_ENABLED=true,容器监控器在MCP服务器之前启动X射线旋转器:
-
下载已配置的
vless://订阅。 -
提取并洗牌唯一的VLESS候选者。
-
将候选对象转换为Xray JSON。
-
通过以下方式验证生成的配置:
xray run -test -config candidate.json -
在临时SOCKS端口上启动候选者(
1081). -
向以下对象发出真正的HTTP请求
XRAY_VALIDATION_URL通过X射线过程。 -
仅激活通过X射线语法验证和实时HTTP探测的候选者。
-
将所选路线送达
127.0.0.1:1080. -
定期对活动路线进行健康检查,并在反复出现故障后进行轮换。
-
刷新订阅并定期轮换退出。
默认的Docker Compose和Render配置使用:
https://raw.githubusercontent.com/igareck/vpn-configs-for-russia/main/BLACK_VLESS_RUS_mobile.txt
来源于此项目的外部。以(权力)否决 XRAY_SUBSCRIPTION_URL 需要时,您可以使用自己值得信赖的VLESS提要。
当前解析器支持该提要使用的常见订阅形状:
- VLESS+现实+TCP;
- VLESS+TLS+WebSocket;
- VLESS+TLS+XHTTP;
- VLESS+gRPC;
- VLESS+HTTP升级。
不受支持或格式错误的候选者将自动跳过。
需求
直接使用Python:
- Python 3.10+;
pip.
对于捆绑的Xray部署:
- Docker或与Docker兼容的托管平台。
Docker镜像当前固定了Xray核心 26.3.27 而不是使用未固定的 latest 二元的。
本地安装
git clone https://github.com/Happyfunnysad/WildberriesToolsMCP.git
cd WildberriesToolsMCP
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
在Windows PowerShell上:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
溢出stdio
stdio 仍然是直接Python执行的默认传输方式:
python server.py
等效显式配置:
MCP_TRANSPORT=stdio python server.py
客户端配置示例:
{
"mcpServers": {
"wildberries-tools": {
"command": "/absolute/path/to/.venv/bin/python",
"args": ["/absolute/path/to/WildberriesToolsMCP/server.py"],
"env": {
"MCP_TRANSPORT": "stdio"
}
}
}
}
在Windows上,使用完整路径 .venv\\Scripts\\python.exe.
通过流式HTTP运行
不使用Xray的直接Python进程:
MCP_TRANSPORT=streamable-http \
MCP_HOST=0.0.0.0 \
MCP_PORT=8000 \
MCP_PATH=/mcp \
python server.py
MCP终点为:
http://localhost:8000/mcp
支持的MCP HTTP变量:
| 变量 | 默认值 | 描述 |
|---|---|---|
MCP_TRANSPORT |
stdio |
stdio, streamable-http,或 sse |
MCP_HOST |
0.0.0.0 |
为HTTP传输绑定主机 |
MCP_PORT |
8000 |
绑定端口;托管平台 PORT 优先 |
MCP_PATH |
/mcp |
可流式传输的HTTP端点路径 |
MCP_STATELESS_HTTP |
true |
遗留HTTP客户端的无状态行为 |
MCP_JSON_RESPONSE |
false |
JSON响应,而不是支持的SSE |
MCP_ALLOWED_HOSTS |
empty | 逗号分隔的主机列表 |
MCP_ALLOWED_ORIGINS |
empty | 逗号分隔的Origin列表 |
MCP_TRUST_PROXY |
false |
仅在受信任的代理/隧道后禁用SDK DNS重新绑定检查 |
带旋转VLESS出口的Docker
启动整个堆栈:
docker compose up --build -d
观察路线选择和X射线健康状况:
docker compose logs -f wb-analyzer-mcp
MCP终点仍然是:
http://localhost:8000/mcp
SOCKS端口 1080 和 1081 仅限于 127.0.0.1 在容器内部,并且不会发布到主机。
X射线环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
XRAY_ENABLED |
false |
启用捆绑式旋转器;部署配置将其设置为 true |
OUTBOUND_PROXY |
空 | HTTPX代理URL;使用 socks5://127.0.0.1:1080 带旋转器 |
XRAY_SUBSCRIPTION_URL |
已配置的公共订阅源 | 文本订阅包含 vless:// 链接 |
XRAY_SOCKS_PORT |
1080 |
主动本地SOCKS侦听器 |
XRAY_TEST_SOCKS_PORT |
1081 |
临时验证侦听器 |
XRAY_VALIDATION_URL |
https://www.wildberries.ru/ |
用于通过代理进行真实探测的URL |
XRAY_VALIDATE_STATUS_MAX |
399 |
最高接受HTTP状态 |
XRAY_MAX_CANDIDATES |
15 |
每次轮换尝试测试的最大候选人数 |
XRAY_PROBE_TIMEOUT |
12 |
探测超时(秒) |
XRAY_ROTATE_INTERVAL |
900 |
周期性旋转间隔(秒) |
XRAY_HEALTH_INTERVAL |
60 |
活动路线健康检查间隔 |
XRAY_HEALTH_FAILURES |
2 |
强制旋转前连续发生故障 |
XRAY_FEED_REFRESH_INTERVAL |
7200 |
订阅刷新间隔 |
XRAY_STARTUP_TIMEOUT |
180 |
主管等待第一条有效路线的最长时间 |
XRAY_IP_CHECK_URL |
空 | 可选端点仅用于记录所选的公共出口IP |
紧急旁路
要在不使用X射线的情况下启动同一图像,请执行以下操作:
docker run --rm \
-e XRAY_ENABLED=false \
-e MCP_TRANSPORT=streamable-http \
-e MCP_TRUST_PROXY=true \
-p 8000:8000 \
wildberries-tools-mcp
渲染部署
存储库包含 render.yaml 对于单服务Docker部署。Xray进程和旋转器与MCP服务器运行在同一个容器中,因此不需要私有sidecar服务。
从该存储库创建渲染蓝图。部署后,端点看起来像:
https://<service-name>.onrender.com/mcp
蓝图启用VLESS路由,并在自动部署之前等待CI检查。
对于自定义订阅,请在Render中重写此环境变量:
XRAY_SUBSCRIPTION_URL=https://example.com/my-vless-subscription.txt
公共部署安全
对于在稳定主机名上的直接部署,更喜欢显式的allowlist:
MCP_TRANSPORT=streamable-http \
MCP_ALLOWED_HOSTS='mcp.example.com,mcp.example.com:*' \
python server.py
当MCP服务器位于验证Host标头的受信任反向代理或托管边缘之后时,请设置:
MCP_TRUST_PROXY=true
在没有速率限制或其他访问控制的情况下,不要广泛暴露未经身份验证的MCP端点。该工具是只读的,但开放端点仍可能被滥用于计算和出站流量。
公共VLESS节点也是第三方基础设施。将它们视为不可信的网络传输。不要通过此机制路由凭据、私有API或其他敏感的应用程序流量。此项目仅通过以下方式发送Wildberry检索请求 OUTBOUND_PROXY.
ChatGPT连接
- 部署服务器,以便
/mcp可以通过HTTPS访问。 - 打开ChatGPT开发人员/自定义应用程序设置。
- 添加远程MCP端点,例如
https://mcp.example.com/mcp. - 让客户端发现服务器工具。
- 让ChatGPT分析Wildberry产品URL或SKU。
示例提示:
Проанализируй отзывы на этот товар и выдели основные плюсы, минусы и повторяющиеся проблемы: 12345678
客户可以致电 get_wb_reviews 并使用返回的评论文本进行分析。
CI验证
GitHub Actions执行两个独立的检查:
- 构建Docker镜像,并通过以下方式运行代表性的Reality/TCP、WS-TLS和XHTTP/TLS共享链接
xray run -test. - 使用以下命令启动MCP容器
XRAY_ENABLED=false,执行真正的MCPinitialize握手,并验证tools/list广告get_wb_reviews.
CI路径有意不依赖于第三方公共VLESS节点的可用性。
SSE兼容模式
MCP_TRANSPORT=sse \
MCP_HOST=0.0.0.0 \
MCP_PORT=8000 \
MCP_SSE_PATH=/sse \
MCP_MESSAGE_PATH=/messages/ \
python server.py
许可证
麻省理工学院