2
Marketplace MCP
alvis edited this page 2026-06-12 03:42:16 +00:00

Marketplace MCP

MCP server exposing shopping tools for Russian (and one international) marketplaces. Used by AI assistants (Torgash bot, Claude) to search, compare prices, and add items to cart.

  • Container: marketplace-mcp-marketplace-mcp-1
  • Port: 3101
  • Source: agap_git/marketplace-mcp/
  • Config: src/marketplace.js (handlers), src/server.js (MCP tools)

Supported stores

Store Key Search Cart/Order Auth needed
Metro Cash & Carry metro GraphQL API (needs login) VNC
Магнит magnit REST API (needs login) VNC
ВкусВилл vkusvill Playwright (needs login) VNC
Ozon ozon Playwright VNC
Яндекс.Маркет yandex_market Playwright VNC
AliExpress aliexpress Playwright VNC
Авито avito Playwright VNC
Amazon.de amazon Playwright + proxy (needs login) VNC
Перекрёсток perekrestok Playwright (post-login) (post-login) VNC required

Blocked stores (Qrator IP block — 95.165.85.65 flagged)

The server's outbound IP 95.165.85.65 is on Qrator's blocklist — hard 401 returned even for plain HTTP fetch. These stores cannot be accessed until Qrator clears/whitelists this IP.

Store Blocker Status
Лента Qrator 401 IP blocked
Ашан Qrator 401 IP blocked
Утконос Qrator 401 IP blocked
SberMarket servicepipe.ru Needs residential IP
Самокат servicepipe.ru Needs residential IP
Пятёрочка servicepipe.ru (server IP blocked) See project_pyaterochka_api

MCP tools

Tool Description
marketplace_search Free-text search, returns ranked list
marketplace_find_best Search + auto-pick best result
marketplace_compare_prices Parallel multi-store price comparison — cheapest-first ranking in one call
marketplace_get_product Details for a known product id/url
marketplace_get_reviews Reviews for a product
marketplace_get_recommendations Similar/related products
marketplace_add_to_cart Add to cart (requires login)
marketplace_get_cart View cart contents
marketplace_open_vnc Open VNC for manual login
marketplace_save_session Save session after VNC login
marketplace_status Check if store has a saved session

Technical notes

Metro

  • GraphQL API: https://online.metro-cc.ru/api/graphql
  • No auth needed for search
  • Fields: search(storeId: 10, text: $q) { products(size: $n) { products { id name url prices { price } } } }

Магнит

  • REST API: POST https://magnit.ru/webgate/v2/goods/search
  • Prices in kopecks — divide by 100 for rubles
  • Hardcoded storeCode: 992301 (Moscow dostavka warehouse)
  • No auth for search; cart needs VNC login (Yandex Captcha blocks anon)

ВкусВилл

  • Search: Playwright renders https://vkusvill.ru/search/?search_text={query}, extracts .js-datalayer-catalog-list items
  • Product pages use microdata (itemprop="price", itemprop="name") — no JSON-LD
  • Search results mix popular items with query matches; first 6 results may not be query-specific
  • Cart/order: VNC login at https://vkusvill.ru/personal/

Перекрёсток

  • Protected by servicepipe.ru PoW — headless browsers get stuck in redirect loop at /xpvnsulc/
  • Requires VNC login first: open VNC, navigate to https://www.perekrestok.ru/, wait 10s for servicepipe challenge to resolve, save session
  • After login: search uses Playwright browser with saved cookies, also tries /api/v1/catalog/product/search directly
  • Session expiry check: if browser lands on /xpvnsulc/ URL, session is stale → re-login

Amazon

  • Uses amazon.de (EU) — amazon.com returns 503 via this proxy
  • Playwright browser context uses system proxy http://127.0.0.1:56928
  • Login: VNC at https://www.amazon.de/ap/signin

VNC login flow

marketplace_open_vnc("store")    # opens browser tab at store login page
# user connects via VNC and logs in
marketplace_save_session("store")  # saves cookies/session to /sessions/{store}.json

Sessions persist across restarts (stored in container volume).

Start / stop

cd ~/agap_git/marketplace-mcp
docker compose up -d
docker compose restart marketplace-mcp
docker logs marketplace-mcp-marketplace-mcp-1 -f