Clone
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-listitems - 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/searchdirectly - Session expiry check: if browser lands on
/xpvnsulc/URL, session is stale → re-login
Amazon
- Uses
amazon.de(EU) —amazon.comreturns 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