npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@theyahia/wildberries-mcp

v3.1.0

Published

MCP server for Wildberries Seller API — 30 tools across products, prices, stocks, orders, sales, FBS supplies, analytics, feedbacks, questions, returns, ads, ABC analysis. Per-category host routing + rate limiting with 409 penalty protection.

Readme

@theyahia/wildberries-mcp

MCP server for the Wildberries Seller API — 30 tools across products, prices, stocks, orders, sales, FBS supplies, analytics, feedbacks, questions, returns, and ads. Per-category host routing with rate limiting and 409 penalty protection. Stdio + Streamable HTTP transports.

npm License: MIT

Quick Start

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "wildberries": {
      "command": "npx",
      "args": ["-y", "@theyahia/wildberries-mcp"],
      "env": { "WB_API_TOKEN": "your_seller_token" }
    }
  }
}

Cursor / Windsurf / VS Code (Copilot) use the same mcpServers block in their MCP settings.

Streamable HTTP transport

HTTP_PORT=3000 WB_API_TOKEN=your_token npx @theyahia/wildberries-mcp
# or: npx @theyahia/wildberries-mcp --http

Endpoints: POST /mcp, GET /mcp (SSE), DELETE /mcp (session end), GET /health.

Authentication & token scopes

Authorization: Bearer {WB_API_TOKEN} (JWT, 180-day validity). Get your token in the seller portal under Settings → Access to API.

A single token can carry multiple category scopes. Because each tool talks to a different API host, a token missing a scope returns 401 from that host while other tools keep working — enable the scopes you need:

| Scope | Powers tools | |-------|--------------| | Content | list_products, get_product | | Prices & discounts | update_prices | | Marketplace | update_stocks, get_stocks, get_orders, get_new_orders, get_warehouses, get_supply, create_supply, add_orders_to_supply, deliver_supply, get_supply_barcode | | Statistics | get_sales, get_incomes, get_fbw_stocks, get_statistics, get_abc_analysis | | Analytics | get_funnel, get_paid_storage | | Tariffs (Common) | get_commission, get_tariffs | | Feedbacks & questions | get_feedbacks, reply_feedback, get_questions, reply_question | | Returns | get_returns | | Advertising | get_balance, list_campaigns, get_campaign_stats |

Errors name the host and include WB's requestId, so a missing scope or wrong-host issue is obvious (e.g. WB API GET advert-api.wildberries.ru/adv/v1/balance → 401: ...).

Architecture — per-category hosts

The Wildberries Seller API is not a single gateway. seller.wildberries.ru is the web cabinet; the API is split across category hosts and every request is routed to the right one:

| Category | Host | |----------|------| | Content | content-api.wildberries.ru | | Prices & discounts | discounts-prices-api.wildberries.ru | | Marketplace (FBS) | marketplace-api.wildberries.ru | | Statistics | statistics-api.wildberries.ru | | Analytics | seller-analytics-api.wildberries.ru | | Common / Tariffs | common-api.wildberries.ru | | Feedbacks & questions | feedbacks-api.wildberries.ru | | Returns | returns-api.wildberries.ru | | Advertising | advert-api.wildberries.ru |

Tools (30)

Products & content

| Tool | Method | Host · Endpoint | |------|--------|-----------------| | list_products | POST | content · /content/v2/get/cards/list | | get_product | POST | content · /content/v2/get/cards/detail | | update_prices | POST | prices · /api/v2/upload/task | | update_stocks | PUT | marketplace · /api/v3/stocks/{warehouseId} | | get_stocks | POST | marketplace · /api/v3/stocks/{warehouseId} |

Orders & sales

| Tool | Method | Host · Endpoint | |------|--------|-----------------| | get_orders | GET | marketplace · /api/v3/orders | | get_new_orders | GET | marketplace · /api/v3/orders/new | | get_sales | GET | statistics · /api/v1/supplier/sales | | get_incomes | GET | statistics · /api/v1/supplier/incomes | | get_fbw_stocks | GET | statistics · /api/v1/supplier/stocks |

Warehouses & FBS supplies

| Tool | Method | Host · Endpoint | |------|--------|-----------------| | get_warehouses | GET | marketplace · /api/v3/offices | | get_supply | GET | marketplace · /api/v3/supplies | | create_supply | POST | marketplace · /api/v3/supplies | | add_orders_to_supply | PATCH | marketplace · /api/v3/supplies/{id}/orders/{orderId} | | deliver_supply | PATCH | marketplace · /api/v3/supplies/{id}/deliver | | get_supply_barcode | GET | marketplace · /api/v3/supplies/{id}/barcode |

Analytics

| Tool | Method | Host · Endpoint | |------|--------|-----------------| | get_statistics | GET | statistics · /api/v5/supplier/reportDetailByPeriod | | get_abc_analysis | GET | statistics · reportDetailByPeriod (computed Pareto) | | get_funnel | POST | analytics · /api/v2/nm-report/detail | | get_paid_storage | GET | analytics · /api/v1/paid_storage (async report) |

Pricing reference

| Tool | Method | Host · Endpoint | |------|--------|-----------------| | get_commission | GET | common · /api/v1/tariffs/commission | | get_tariffs | GET | common · /api/v1/tariffs/box |

Feedbacks & questions

| Tool | Method | Host · Endpoint | |------|--------|-----------------| | get_feedbacks | GET | feedbacks · /api/v1/feedbacks | | reply_feedback | PATCH | feedbacks · /api/v1/feedbacks | | get_questions | GET | feedbacks · /api/v1/questions | | reply_question | PATCH | feedbacks · /api/v1/questions |

Returns & ads

| Tool | Method | Host · Endpoint | |------|--------|-----------------| | get_returns | GET | returns · /api/v1/claims | | get_balance | GET | advert · /adv/v1/balance | | list_campaigns | GET | advert · /adv/v1/promotion/count | | get_campaign_stats | POST | advert · /adv/v2/fullstats |

Rate limiting

Wildberries meters requests per API category, not as one global pool — and returns 409 as a penalty for bursts. The client keeps one token-bucket limiter per host plus finer buckets for the strictest endpoints (paid-storage create/download 1/min, status 1/5s; prices ~10/6s). 409 penalties (via X-Ratelimit-Retry-After / X-Ratelimit-Remaining) stay isolated to the offending category. The defaults are conservative and safe to raise after observing your account's real limits.

Environment Variables

| Variable | Required | Description | |----------|----------|-------------| | WB_API_TOKEN | yes | Wildberries Seller API token (JWT). | | WB_TIMEOUT_MS | no | Per-request timeout in ms (default 30000). | | HTTP_PORT | no | If set, server runs in HTTP mode on this port. |

Demo prompts

"List the first 50 products in my catalog with current prices." "Run an ABC analysis for the last 30 days — which products make 80% of revenue?" "Create an FBS supply 'Morning 2026-06-23', attach orders 1001 and 1002, close it for delivery and get its barcode." "Show unanswered questions and draft a reply to the first one." "What's my advertising balance and which campaigns are active?"

Development

pnpm install
pnpm --filter @theyahia/wildberries-mcp build
pnpm --filter @theyahia/wildberries-mcp test
pnpm --filter @theyahia/wildberries-mcp dev   # tsx watch mode

Project layout (servers/wildberries/):

src/
  index.ts         — bin entry (runServer), env validation
  server.ts        — createServer factory (WBClient injection) + JSON Schema → Zod
  client.ts        — per-host WBClient (timeout, error parsing, async poll)
  rate-limiter.ts  — RateLimiter (token bucket + 409 penalty) + RateLimiterPool
  tools.ts         — 30 tool definitions (JSON Schema) + handleTool dispatcher
tests/
  client.test.ts       — host routing, timeout, error parsing, 409 retry
  rate-limiter.test.ts — limiter + pool isolation
  server.test.ts       — registration + tools/list & tools/call round-trip
  tools.test.ts        — per-tool host assertions

License

MIT