WildberriesToolsMCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@WildberriesToolsMCPAnalyze reviews for product 12345678"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
WildberriesToolsMCP
MCP server for retrieving Wildberries product reviews and exposing them to LLM clients.
The server supports:
stdio for local MCP clients such as Claude Desktop, Cursor, and Cherry Studio;
Streamable HTTP for remote MCP clients such as ChatGPT custom MCP apps;
optional rotating VLESS egress through Xray-core for deployments whose normal outbound IP is unsuitable for Wildberries access.
Tool
Tool | Description |
| Accepts a Wildberries product URL or SKU and returns product metadata plus up to 500 review texts as JSON. |
Related MCP server: ya-reviews-mcp
Architecture
Without Xray:
ChatGPT / MCP client
|
v
WildberriesToolsMCP
|
v
Wildberries APIsWith rotating VLESS egress:
ChatGPT / MCP client
|
v
WildberriesToolsMCP
|
| HTTPX SOCKS5
v
127.0.0.1:1080
|
v
Xray-core
|
| validated VLESS candidate
v
Wildberries APIsThe MCP endpoint itself is not proxied through VLESS. Only outbound HTTP requests made by the Wildberries client use OUTBOUND_PROXY.
VLESS rotation lifecycle
When XRAY_ENABLED=true, the container supervisor starts the Xray rotator before the MCP server:
Download the configured
vless://subscription.Extract and shuffle unique VLESS candidates.
Convert a candidate into Xray JSON.
Validate the generated configuration with:
xray run -test -config candidate.jsonStart the candidate on a temporary SOCKS port (
1081).Make a real HTTP request to
XRAY_VALIDATION_URLthrough that Xray process.Activate only candidates that pass both Xray syntax validation and the live HTTP probe.
Serve the selected route on
127.0.0.1:1080.Health-check the active route periodically and rotate after repeated failures.
Refresh the subscription and rotate the exit periodically.
The default Docker Compose and Render configurations use:
https://raw.githubusercontent.com/igareck/vpn-configs-for-russia/main/BLACK_VLESS_RUS_mobile.txtThe source is external to this project. Override XRAY_SUBSCRIPTION_URL with your own trusted VLESS feed when needed.
The current parser supports the common subscription shapes used by that feed:
VLESS + REALITY + TCP;
VLESS + TLS + WebSocket;
VLESS + TLS + XHTTP;
VLESS + gRPC;
VLESS + HTTPUpgrade.
Unsupported or malformed candidates are skipped automatically.
Requirements
For direct Python usage:
Python 3.10+;
pip.
For the bundled Xray deployment:
Docker or a Docker-compatible hosting platform.
The Docker image currently pins Xray-core 26.3.27 instead of using an unpinned latest binary.
Local installation
git clone https://github.com/Happyfunnysad/WildberriesToolsMCP.git
cd WildberriesToolsMCP
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtOn Windows PowerShell:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txtRun over stdio
stdio remains the default transport for direct Python execution:
python server.pyEquivalent explicit configuration:
MCP_TRANSPORT=stdio python server.pyExample client configuration:
{
"mcpServers": {
"wildberries-tools": {
"command": "/absolute/path/to/.venv/bin/python",
"args": ["/absolute/path/to/WildberriesToolsMCP/server.py"],
"env": {
"MCP_TRANSPORT": "stdio"
}
}
}
}On Windows, use the full path to .venv\\Scripts\\python.exe.
Run over Streamable HTTP
Direct Python process without Xray:
MCP_TRANSPORT=streamable-http \
MCP_HOST=0.0.0.0 \
MCP_PORT=8000 \
MCP_PATH=/mcp \
python server.pyThe MCP endpoint will be:
http://localhost:8000/mcpSupported MCP HTTP variables:
Variable | Default | Description |
|
|
|
|
| Bind host for HTTP transports |
|
| Bind port; hosting-platform |
|
| Streamable HTTP endpoint path |
|
| Stateless behaviour for legacy HTTP clients |
|
| JSON responses instead of SSE where supported |
| empty | Comma-separated Host allowlist |
| empty | Comma-separated Origin allowlist |
|
| Disable SDK DNS-rebinding checks only behind a trusted proxy/tunnel |
Docker with rotating VLESS egress
Start the complete stack:
docker compose up --build -dWatch route selection and Xray health:
docker compose logs -f wb-analyzer-mcpThe MCP endpoint remains:
http://localhost:8000/mcpThe SOCKS ports 1080 and 1081 are bound only to 127.0.0.1 inside the container and are not published to the host.
Xray environment variables
Variable | Default | Description |
|
| Enable the bundled rotator; deployment configs set it to |
| empty | HTTPX proxy URL; use |
| configured public feed | Text subscription containing |
|
| Active local SOCKS listener |
|
| Temporary validation listener |
|
| URL used for the real through-proxy probe |
|
| Highest accepted HTTP status |
|
| Maximum candidates tested per rotation attempt |
|
| Probe timeout in seconds |
|
| Periodic rotation interval in seconds |
|
| Active-route health-check interval |
|
| Consecutive failures before forced rotation |
|
| Subscription refresh interval |
|
| Maximum time the supervisor waits for the first valid route |
| empty | Optional endpoint used only to log the selected public egress IP |
Emergency bypass
To start the same image without Xray:
docker run --rm \
-e XRAY_ENABLED=false \
-e MCP_TRANSPORT=streamable-http \
-e MCP_TRUST_PROXY=true \
-p 8000:8000 \
wildberries-tools-mcpRender deployment
The repository contains render.yaml for a one-service Docker deployment. The Xray process and rotator run inside the same container as the MCP server, so no private sidecar service is required.
Create a Render Blueprint from this repository. After deployment, the endpoint will look like:
https://<service-name>.onrender.com/mcpThe Blueprint enables VLESS routing and waits for CI checks before automatic deployment.
For a custom subscription, override this environment variable in Render:
XRAY_SUBSCRIPTION_URL=https://example.com/my-vless-subscription.txtPublic deployment security
For a direct deployment on a stable hostname, prefer an explicit allowlist:
MCP_TRANSPORT=streamable-http \
MCP_ALLOWED_HOSTS='mcp.example.com,mcp.example.com:*' \
python server.pyWhen the MCP server is behind a trusted reverse proxy or hosting edge that validates the Host header, set:
MCP_TRUST_PROXY=trueDo not broadly expose an unauthenticated MCP endpoint without rate limiting or other access controls. The tool is read-only, but an open endpoint can still be abused for compute and outbound traffic.
Public VLESS nodes are also third-party infrastructure. Treat them as untrusted network transit. Do not route credentials, private APIs, or other sensitive application traffic through this mechanism. This project sends only the Wildberries retrieval requests through OUTBOUND_PROXY.
ChatGPT connection
Deploy the server so that
/mcpis reachable over HTTPS.Open ChatGPT developer/custom app settings.
Add the remote MCP endpoint, for example
https://mcp.example.com/mcp.Let the client discover the server tools.
Ask ChatGPT to analyse a Wildberries product URL or SKU.
Example prompt:
Проанализируй отзывы на этот товар и выдели основные плюсы, минусы и повторяющиеся проблемы: 12345678The client can call get_wb_reviews and use the returned review texts for analysis.
CI validation
GitHub Actions performs two independent checks:
Builds the Docker image and runs representative Reality/TCP, WS/TLS, and XHTTP/TLS share links through
xray run -test.Starts the MCP container with
XRAY_ENABLED=false, performs a real MCPinitializehandshake, and verifies thattools/listadvertisesget_wb_reviews.
The CI path intentionally does not depend on the availability of third-party public VLESS nodes.
SSE compatibility mode
MCP_TRANSPORT=sse \
MCP_HOST=0.0.0.0 \
MCP_PORT=8000 \
MCP_SSE_PATH=/sse \
MCP_MESSAGE_PATH=/messages/ \
python server.pyLicense
MIT
This server cannot be installed
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Happyfunnysad/WildberriesToolsMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server