marketplace-mcp
A read-only MCP server for searching and comparing products across Ozon and Yandex Market — no login, cart interaction, or order placement.
Search across marketplaces (
marketplaces_search): Query one or more marketplaces simultaneously, with configurable result limits and loading strategy.Search Ozon only (
ozon_search): Run a product search exclusively on Ozon.Search Yandex Market only (
yandex_market_search): Run a product search exclusively on Yandex Market.Compare products (
marketplaces_compare): Search both marketplaces simultaneously and receive results grouped by similar products for easy price and availability comparison.Get product details (
marketplaces_product_details): Retrieve detailed information from a specific product page by URL.Retrieve saved artifacts (
marketplaces_get_artifact): Access previously saved search or comparison results by artifact ID.
All results return normalized fields: title, price, old price, currency, rating, review count, availability, delivery notes, source URL, image URL, and scrape timestamp. Warnings such as CAPTCHA_OR_BLOCKED are included when data is partial or unavailable.
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., "@marketplace-mcpsearch for Nike shoes on Ozon and Yandex Market"
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.
Marketplace MCP
Read in Russian: readme_rus.md
Marketplace MCP is a read-only MCP server for product search, review sampling, and price comparison across Ozon, Wildberries, Yandex Market, and Avito.
It is built for agents that need marketplace data without logging in, touching carts, or automating checkout. The server returns normalized product data, comparison groups, warnings, and source URLs. When a marketplace blocks scraping or shows anti-bot behavior, the tool reports that instead of trying to bypass it.
Tools
marketplaces_searchsearches one or more marketplaces.ozon_searchsearches Ozon only.wildberries_searchsearches Wildberries only.yandex_market_searchsearches Yandex Market only.avito_searchsearches Avito as an explicit used-market path.marketplaces_comparesearches retail marketplaces and groups similar products; Avito is opt-in withinclude_avito=true.marketplaces_product_detailsreads a product page by URL.marketplaces_product_reviewsreturns a compact review sample for supported marketplaces.marketplaces_get_artifactreads a saved result artifact.
Returned product fields include marketplace, title, URL, image URL, price, old price, currency, rating, review count, availability, delivery notes, seller evidence, used-item condition and location, scraped timestamp, and warnings when data is partial.
Related MCP server: hermes-marketplace-tools
Safety model
Marketplace MCP is deliberately read-only.
By default it does not:
log in to a marketplace;
use cookies or account sessions;
add items to cart;
place orders;
reserve products;
submit payments;
bypass CAPTCHA or anti-bot systems.
Prices are scraped snapshots. Always open the product URL before making a purchase decision.
Marketplace MCP uses Hive Web as the default page loader (MARKETPLACES_WEB_BACKEND=hive_web).
legacy mode keeps the previous Playwright/httpx loading stack.
auto tries Hive Web first and falls back to legacy only if Hive Web is unavailable.
MARKETPLACES_WEB_BACKEND:hive_web(default),auto,legacyMARKETPLACES_HIVE_WEB_MAX_TOKENS: maximum tokens for Hive Web text snapshot (default12000)MARKETPLACES_CAMOFOX_URL: optional Camofox base URL for anonymous ephemeral read-only fallback sessions.MARKETPLACES_AVITO_REGION_SLUG: Avito region path (defaultall).MARKETPLACES_AVITO_STATE_PATH: shared Avito rate-limit state file (default~/.cache/marketplaces-mcp/avito-access-state.json).MARKETPLACES_AVITO_MIN_INTERVAL_SECONDS: minimum interval between Avito live requests (default10).MARKETPLACES_AVITO_BLOCK_COOLDOWN_SECONDS: cooldown after an explicit Avito IP block (default21600, six hours).
When rendered pages are unavailable, public search-index discovery may return
canonical product links. Such results always have no verified price and include
INDEX_DISCOVERY_ONLY and PRICE_UNVERIFIED; an index snippet is never treated
as current marketplace data. Avito is excluded from default retail search and
comparison because each used listing is a unique physical item.
Runtime settings can also live in ~/.config/marketplaces-mcp/config.json or in the path from MARKETPLACES_CONFIG:
{
"web_backend": "hive_web",
"hive_web_max_tokens": 12000,
"browser_channel": "chrome",
"browser_headless": true,
"browser_locale": "ru-RU",
"browser_timezone": "Europe/Moscow",
"browser_args": ["--disable-blink-features=AutomationControlled"],
"browser_default_user_agent": true,
"proxies": {
"ozon": "http://user:password@proxy.example:19081",
"yandex_market": null
}
}For local development, scripts/camofox-bridge.py exposes the small Camofox-compatible read-only API used by the adapters (POST /tabs, GET /tabs/{tabId}/snapshot, DELETE /sessions/{userId}) on top of Hive Web/Playwright:
uv run python scripts/camofox-bridge.py --host 127.0.0.1 --port 8765 --headfulThen set "camofox_url": "http://127.0.0.1:8765" in the runtime config.
Per-marketplace proxy values are only applied to that marketplace. When a proxy is configured for a marketplace, the adapter skips Hive Web for that marketplace and uses the proxied Playwright/httpx path. Use an HTTP proxy with authentication for browser-heavy marketplaces because Chromium/Playwright does not support authenticated SOCKS5 proxies. Environment variables override file values: MARKETPLACES_PROXY_OZON_URL, MARKETPLACES_OZON_PROXY_URL, OZON_PROXY_URL, MARKETPLACES_PROXY_YANDEX_MARKET_URL, MARKETPLACES_YANDEX_MARKET_PROXY_URL, YANDEX_MARKET_PROXY_URL.
Ozon is rendered with JavaScript enabled. When an Ozon proxy is configured, the Ozon adapter keeps Playwright headful even if browser_headless is true, because Ozon is stricter in headless mode. Disabling JavaScript is not a useful fallback: Ozon returns an anti-bot challenge asking the browser to enable JavaScript, and the adapter reports it as CAPTCHA_OR_BLOCKED.
Requirements
Python 3.11+
Hermes or another MCP client
Install
git clone https://github.com/YegorMy/marketplace-mcp.git
cd marketplace-mcp
uv syncRun tests:
uv run pytest -qRun the MCP smoke test:
uv run python scripts/test-mcp-client.pyRun a live search smoke test:
uv run python scripts/smoke-search.py --query "бумага a4" --limit 2Run one explicit Avito canary without touching retail marketplaces:
uv run python scripts/live_canary.py --avito-only --avito-query "кроватка Stokke"Live search depends on current marketplace behavior. Ozon and Yandex Market may rate-limit, block, or change page markup. In that case the smoke test should return warnings such as CAPTCHA_OR_BLOCKED instead of crashing.
Hermes setup
The installer writes a marketplaces MCP server entry into ~/.hermes/config.yaml and tests the connection:
bash scripts/install-hermes-mcp.shYou can override the MCP server name:
SERVER_NAME=marketplaces bash scripts/install-hermes-mcp.shManual Hermes config:
mcp_servers:
marketplaces:
command: /absolute/path/to/uv
args: ["run", "--project", "/absolute/path/to/marketplace-mcp", "marketplaces-mcp"]
connect_timeout: 60
enabled: trueAfter changing MCP config, reload MCP in the client or start a new session.
Other MCP clients
Any MCP client that supports stdio can run the same command:
uv run --project /absolute/path/to/marketplace-mcp marketplaces-mcpClaude Code:
claude mcp add -s user marketplaces -- uv run --project /absolute/path/to/marketplace-mcp marketplaces-mcpCodex CLI:
codex mcp add marketplaces -- uv run --project /absolute/path/to/marketplace-mcp marketplaces-mcpOpenCode uses the same stdio command in its MCP config:
{
"mcp": {
"marketplaces": {
"command": "uv",
"args": ["run", "--project", "/absolute/path/to/marketplace-mcp", "marketplaces-mcp"]
}
}
}Development
uv sync
uv run pytest -q
uv run python scripts/test-mcp-client.py
uv run python scripts/smoke-search.py --query "бумага a4" --limit 2The adapters live under src/marketplaces_mcp/adapters/. Tests use fixtures where possible so the core behavior does not depend on live marketplace pages.
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityCmaintenanceA Model Context Protocol server enabling product searches across e-commerce platforms, price history tracking, and product specification-based searches using natural language prompts.Last updated219MIT
- FlicenseBqualityCmaintenanceProvides MCP tools for searching and comparing products on Wildberries (and Ozon planned), including product search, detailed card retrieval, and review fetching, normalized for LLM consumption.Last updated32
- Flicense-qualityCmaintenanceMCP server that turns Wildberries marketplace into a toolkit for LLM agents, enabling product search, detailed card inspection, price history, reviews, and cross-product comparison.Last updated
- AlicenseAqualityBmaintenanceRead-only MCP server for searching Yahoo! Shopping products through the Yahoo! Shopping Item Search API v3. It supports keyword and JAN-code search with price, stock, condition, shipping, sorting, category, brand, seller, image-size, and pagination filters.Last updated11MIT
Related MCP Connectors
Federated commerce search across independent WooCommerce merchants. Keyless, read-only MCP server.
MCP server for Google search results via SERP API
Routes natural-language shopping queries to merchant storefronts, returns normalized results.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/YegorMy/marketplace-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server