Skip to main content
Glama

Ozon MCP Server

MCP-сервер для поиска товаров на Ozon (ozon.ru). Даёт ИИ три инструмента: искать товары, читать карточку и читать отзывы.

Публичного API для покупателей у Ozon нет, а сайт закрыт антиботом Variti. Поэтому сервер держит один headless-браузер Chromium, который проходит проверку один раз, а дальше забирает данные JSON-ом из внутреннего composer-api прямо со страницы. HTML не парсится — данные приходят структурированными.

Инструменты

  1. ozon_search — поиск товаров. Возвращает название, цену (в рублях, числом), старую цену, скидку, рейтинг, число отзывов, бренд, картинку и чистую ссылку.

  2. ozon_product_details — карточка товара по SKU, ссылке или slug. Цена (с картой / без карты / старая), наличие, рейтинг, продавец, фото, характеристики, описание.

  3. ozon_product_reviews — отзывы покупателей: текст, оценка, плюсы, минусы, дата.

Related MCP server: mcp-ozon-seller

Запуск через Docker

Образ опубликован в Docker Hub.

docker run -i --rm --init --shm-size=1g eduard256/ozon-mcp-server:latest

Флаги обязательны: -i — stdin для stdio, --init — корректное завершение Chromium, --shm-size=1g — память для браузера.

Установка в ваш клиент

Инструкция под каждую систему — отдельным файлом:

Как это работает

  • src/browser.js — один Chromium. Проходит антибот на главной странице и держит её открытой; все fetch идут с неё. При HTTP 403/307 (сессия протухла) или падении браузера перезапускается сам. Через 10 минут простоя браузер закрывается, чтобы освободить память.

  • src/parse.js — чистые парсеры JSON из composer-api (widgetStates). Без сети.

  • src/ozon.js — строит пути API, забирает данные, парсит.

  • src/index.js — MCP-сервер по stdio. Логи идут только в stderr (stdout занят протоколом JSON-RPC).

Важно:

  1. Нельзя блокировать загрузку картинок, шрифтов и стилей — антибот грузит свои скрипты через них. Заблокируешь — Ozon вернёт 403.

  2. fetch должен идти со страницы на домене ozon.ru, а не с пустой — иначе CORS и 403.

  3. Первый запрос платит за прохождение антибота (~12 секунд). Дальше — 0.3–1 секунда.

Локальная разработка

npm install
npx playwright install chromium
node src/index.js          # MCP-сервер по stdio
npm run test:parse         # офлайн-тесты парсеров на samples/

Available Tools

3 tools
ozon_product_detailsGet Ozon product detailsA
Read-onlyIdempotent

Get full details for one Ozon product: name, price (card/regular/old), availability, product rating, seller (name + rating), images, key characteristics, and the product description (text and/or banner image URLs). Accepts an SKU, a full product URL, or a slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
productYesProduct SKU (e.g. "1185261285"), full ozon.ru product URL, or product slug

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, openWorldHint, idempotentHint, covering safety and idempotency. The description adds no contradictory information and lists return fields, but does not disclose additional behavior beyond what annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff, front-loaded with the most important information (what the tool returns), followed by input options. Every sentence is essential.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with annotations, the description covers return fields and input flexibility. No output schema, but the field list compensates. It omits error handling or edge cases, but the context is sufficient for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with an adequate description. The tool description adds value by listing the specific return fields, which the schema does not include. Input types are already in schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves full details for a single product, lists specific fields returned (price, rating, seller, images, etc.), and differentiates from sibling tools (ozon_product_reviews for reviews, ozon_search for search results).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (to get product details) and provides accepted input formats (SKU, URL, slug). It does not explicitly state when not to use or mention alternatives, but sibling tool names are provided, allowing inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ozon_product_reviewsGet Ozon product reviewsA
Read-onlyIdempotent

Read real customer reviews for an Ozon product: author, score (1–5), comment, pros, cons, date, usefulness, whether the item was purchased, and whether photos are attached. Accepts an SKU, a full product URL, or a slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax number of reviews (1–30, default 10)
productYesProduct SKU (e.g. "1185261285"), full ozon.ru product URL, or product slug

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds context beyond annotations (readOnlyHint true) by detailing returned fields and accepted input formats (SKU, URL, slug). No contradictions, but omits potential behavioral traits like pagination or ordering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences: first states purpose and output fields, second specifies input flexibility. No wasted words, front-loaded with core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool simplicity (2 params, simple data), description covers all needed context: output fields, input types, and limits (via schema). No output schema required; completeness is appropriate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already has 100% description coverage for both parameters. Description reiterates input types for 'product' but adds no new semantics beyond schema. Baseline 3 maintained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it reads reviews for an Ozon product, listing specific data fields (author, score, pros/cons, etc.). This distinguishes it from siblings: ozon_product_details (product info) and ozon_search (search results).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage for retrieving reviews but does not explicitly contrast with siblings or specify when to choose this over ozon_product_details or ozon_search. No when-not or alternative guidance provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.2/5.0
Disambiguation5/5

Each tool targets a distinct task: search, product details, and reviews. No overlap in purpose, so an agent can clearly differentiate them.

Naming Consistency4/5

All tools share the 'ozon_' prefix and use clear resource-action naming, but 'search' is a verb while the other two are noun phrases, introducing a slight inconsistency.

Tool Count4/5

Three tools is appropriate for a focused product information server; it's slightly thin but covers the core functionality without feeling insufficient.

Completeness4/5

The set covers searching, detailed product info, and reviews—core read operations. It lacks tools for categories or recommendations, but for the stated scope it is reasonably complete.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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/eduard256/ozon-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server