Skip to main content
Glama
PCDCK
by PCDCK

ozon-mcp

MCP-сервер для API Ozon Seller и Performance. Подключите любого AI-агента к своему кабинету Ozon за считанные минуты.

CI Python License MCP

ozon-mcp — это насыщенный знаниями MCP-сервер, который превращает весь инструментарий продавца Ozon в 15 высокоэффективных инструментов. AI-агенты (Claude, Cursor, Cline, Continue, Goose, Zed и др.) могут искать методы API на русском или английском языках, изучать любой из 466 методов с полностью разрешенной JSON-схемой и выполнять вызовы со встроенными средствами защиты. Поддерживает уровни подписки, автоматическую пагинацию для всех 4 стилей курсоров, повторные попытки при ошибках 429 и 13 готовых к использованию аналитических рабочих процессов.

Ключевые факты: 466 индексированных методов (420 Seller + 46 Performance), 55 разделов, смоделировано 5 уровней подписки, 38 эндпоинтов с автоматической пагинацией, 43 деструктивных метода с двойным подтверждением, 13 готовых рабочих процессов для типичных сценариев продавца.


Быстрый старт

Предварительные требования

  • Python 3.12 или 3.13

  • Менеджер пакетов uv — установите с помощью curl -LsSf https://astral.sh/uv/install.sh | sh

  • Учетные данные Ozon Seller API (Client-Id + Api-Key) — получите их на https://seller.ozon.ru/app/settings/api-keys

Установка

git clone https://github.com/PCDCK/ozon-mcp.git
cd ozon-mcp
uv sync

Проверка работы

uv run ozon-mcp --help

Вы должны увидеть строку использования FastMCP. Сервер использует протокол MCP stdio — укажите на него любому совместимому клиенту (инструкции ниже).


Related MCP server: wildberries-mcp

Подключение к вашему AI-агенту

ozon-mcp использует стандартный транспорт MCP stdio. Каждый пример ниже предоставляет одни и те же 15 инструментов — выберите тот клиент, который вы уже используете.

Claude Desktop

Отредактируйте: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows).

{
  "mcpServers": {
    "ozon": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/ozon-mcp",
                "run", "ozon-mcp"],
      "env": {
        "OZON_CLIENT_ID": "your-seller-client-id",
        "OZON_API_KEY": "your-seller-api-key",
        "OZON_PERFORMANCE_CLIENT_ID": "your-perf-client-id",
        "OZON_PERFORMANCE_CLIENT_SECRET": "your-perf-secret"
      }
    }
  }
}

Claude Code (CLI)

cd /path/to/ozon-mcp
claude mcp add ozon -- uv run ozon-mcp

Или добавьте в ~/.claude/mcp.json с той же структурой, что и в конфигурации Claude Desktop выше.

Cursor

Настройки → MCP → Добавить новый MCP-сервер, или отредактируйте ~/.cursor/mcp.json:

{
  "mcpServers": {
    "ozon": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/ozon-mcp",
                "run", "ozon-mcp"]
    }
  }
}

Windsurf

Отредактируйте ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "ozon": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/ozon-mcp",
                "run", "ozon-mcp"]
    }
  }
}

Cline (расширение для VS Code)

Cline → Настройки → MCP-серверы → Добавить:

{
  "ozon": {
    "command": "uv",
    "args": ["--directory", "/absolute/path/to/ozon-mcp",
              "run", "ozon-mcp"]
  }
}

Continue.dev

Отредактируйте ~/.continue/config.json:

{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "type": "stdio",
          "command": "uv",
          "args": ["--directory", "/absolute/path/to/ozon-mcp",
                    "run", "ozon-mcp"]
        }
      }
    ]
  }
}

Goose, Zed или любой другой MCP-клиент

Любой клиент, поддерживающий MCP stdio, будет работать. Общая конфигурация:

command: uv
args: ["--directory", "/absolute/path/to/ozon-mcp", "run", "ozon-mcp"]
transport: stdio
env:
  OZON_CLIENT_ID: ...
  OZON_API_KEY: ...

Ознакомьтесь с официальным списком MCP-клиентов на https://modelcontextprotocol.io/clients.


Примеры использования

Все примеры ниже показывают реалистичные ответы, скопированные из tests/fixtures/responses/ — анонимизированные идентификаторы (99000001, TEST-SKU-001), но реальная структура.

Пример 1 — Получение всех ваших товаров

Вы: Используйте ozon_fetch_all с operation_id="ProductAPI_GetProductList" чтобы получить все мои товары.

Агент вызывает:

{
  "operation_id": "ProductAPI_GetProductList",
  "params": {"filter": {"visibility": "ALL"}},
  "max_items": 10000
}

Сервер автоматически проходит по курсору last_id и возвращает:

{
  "ok": true,
  "items": [
    {"product_id": 99000001, "offer_id": "TEST-SKU-001", "archived": false},
    {"product_id": 99000002, "offer_id": "TEST-SKU-002", "archived": false},
    {"product_id": 99000003, "offer_id": "TEST-SKU-003", "archived": true}
  ],
  "total_fetched": 3,
  "truncated": false,
  "pages_fetched": 1
}

Пример 2 — Поиск товаров с риском отсутствия на складе

Вы: Запустите рабочий процесс oos_risk_analysis для моего кабинета.

Агент сначала изучает рабочий процесс:

ozon_get_workflow({"name": "oos_risk_analysis"})

→ говорит агенту вызвать AnalyticsAPI_StocksTurnover (ограничение скорости 1 запрос/мин — очередь сервера для каждого эндпоинта обрабатывает это за вас) и как интерпретировать turnover_grade. Вызов возвращает:

{
  "items": [
    {"sku": 99000001, "current_stock": 12, "ads": 1.5,
     "idc": 8.0, "turnover_grade": "DEFICIT",
     "turnover_grade_cluster": "DEFICIT_GROWING"},
    {"sku": 99000002, "current_stock": 25, "ads": 0.8,
     "idc": 31.25, "turnover_grade": "OPTIMAL",
     "turnover_grade_cluster": "OPTIMAL_FALLING"},
    {"sku": 99000003, "current_stock": 0, "ads": 0.0,
     "idc": 0.0, "turnover_grade": "NO_SALES",
     "turnover_grade_cluster": "NO_SALES"}
  ]
}

Поле interpret рабочего процесса говорит агенту пометить SKU, где idc < 14 или turnover_grade ∈ {DEFICIT, NO_SALES}, и вывести их, отсортировав по idc asc.

Пример 3 — Полная проверка состояния кабинета

Вы: Проверьте состояние моего кабинета Ozon с помощью рабочего процесса cabinet_health_check.

Рабочий процесс говорит агенту прочитать три эндпоинта параллельно — RatingAPI_RatingSummaryV1, SellerAPI_SellerInfo, AverageDeliveryTimeSummary. Первый вызов возвращает:

{
  "groups": [
    {
      "group_name": "Выполнение заказов",
      "items": [
        {"rating": "rating_on_time", "name": "Процент заказов вовремя",
         "current_value": 97.5, "status": "OK", "value_type": "PERCENT"},
        {"rating": "rating_review_avg_score", "name": "Средняя оценка",
         "current_value": 4.7, "status": "OK", "value_type": "RATING"}
      ]
    },
    {
      "group_name": "Качество сервиса",
      "items": [
        {"rating": "rating_price_index", "name": "Индекс цен",
         "current_value": 1.01, "status": "OK", "value_type": "INDEX"}
      ]
    }
  ],
  "premium_scores": [
    {"rating": "rating_on_time", "value": 97.5,
     "penalty_score_per_day": 0, "scope": "premium_plus"}
  ]
}

Пример 4 — Анализ цен на товары

Вы: У каких моих товаров красный индекс цены?

Агент запускает рабочий процесс pricing_analysis и проверяет поле price_indexes.color_index для каждого товара:

{
  "product_id": 99000001, "offer_id": "TEST-SKU-001",
  "price": {"price": "399.0000", "marketing_seller_price": "399.0000",
             "min_price": "299.0000"},
  "price_indexes": {
    "color_index": "WITHOUT_INDEX",
    "ozon_index_data": {"minimal_price": "395.0000",
                          "price_index_value": 1.01}
  },
  "commissions": {"sales_percent_fbo": 0.13, "sales_percent_fbs": 0.13}
}

Список common_mistakes в рабочем процессе напоминает агенту сравнивать с marketing_seller_price (фактическая цена для покупателя), а не только с базовой price.

Пример 5 — Аудит контента

Вы: Найдите товары с низким рейтингом контента и скажите мне, что улучшить.

Агент запускает content_audit, получает рейтинги для каждого SKU + список атрибутов, которые повысят оценку:

{
  "products": [
    {
      "sku": 99000001, "rating": 85,
      "groups": [
        {"key": "media", "rating": 100},
        {"key": "characteristics", "rating": 75,
         "improve_attributes": [
           {"id": 4191, "name": "Цвет"},
           {"id": 8292, "name": "Материал"}
         ],
         "improve_at_least": 4}
      ]
    }
  ]
}

Рабочий процесс говорит агенту, что повышение rating на +10 заметно улучшает ранжирование в поиске — поэтому заполнение этих двух атрибутов дает около 4 баллов.


Доступные инструменты (15)

Инструмент

Что он делает

ozon_call_method

Выполнение любого метода API Ozon с защитой и проверкой подписки

ozon_fetch_all

Автоматическая пагинация — получение всех страниц, а не только первой

ozon_describe_method

Полная документация метода: схема, примеры, лимиты, особенности

ozon_search_methods

Поиск BM25 по 466 методам (русский или английский, со стеммингом)

ozon_list_sections

Просмотр API по разделам

ozon_get_section

Все методы внутри одного раздела

ozon_list_workflows

Список готовых аналитических рабочих процессов (с фильтрацией по категориям)

ozon_get_workflow

Полный пошаговый план для одного рабочего процесса

ozon_get_related_methods

Методы, которые хорошо работают вместе (автоматически извлеченный граф)

ozon_get_examples

Кураторские примеры запросов/ответов для метода

ozon_get_rate_limits

Лимиты для метода, раздела или все сразу

ozon_get_subscription_status

Чтение текущего уровня подписки вашего кабинета

ozon_list_methods_for_subscription

Что открывается на определенном уровне подписки

ozon_get_swagger_meta

Проверка актуальности встроенных спецификаций API

ozon_get_error_catalog

Поиск любого кода ошибки Ozon


Готовые рабочие процессы (13)

Рабочие процессы — это готовые пошаговые рецепты. Используйте ozon_get_workflow("name") для получения полного плана, включая interpret, when_to_use, common_mistakes и рекомендуемую схему БД для рабочих процессов типа синхронизации.

Рабочий процесс

Категория

Что решает

oos_risk_analysis

аналитика

Поиск товаров, которые скоро закончатся на складе

cabinet_health_check

здоровье

Проверка всех метрик рейтинга продавца за один раз

content_audit

контент

Поиск карточек с низким рейтингом контента + полезные атрибуты

pricing_analysis

ценообразование

Поиск товаров с неконкурентоспособными ценами

warehouse_stock_distribution

склад

Распределение остатков по складам для FBO

sync_products_catalog

каталог

Полный снимок каталога товаров

sync_orders_fbo

заказы

Инкрементальная синхронизация заказов FBO

sync_orders_fbs

заказы

Инкрементальная синхронизация заказов FBS / rFBS

sync_finance_transactions

финансы

Финансовые транзакции для юнит-экономики

sync_analytics_daily

аналитика

Ежедневные временные ряды выручки / заказов

sync_advertising_campaigns

реклама

Каталог рекламных кампаний Performance API

sync_warehouse_stocks

склад

Остатки на складах FBS

sync_returns_rfbs

возвраты

Синхронизация возвратов rFBS


Покрытие API

API

Методы

Разделы

Ozon Seller API

420

49

Ozon Performance API

46

6

Всего

466

55

Смоделированные уровни подписки (низкий → высокий): LITE → STANDARD → PREMIUM → PREMIUM_PLUS → PREMIUM_PRO.


Ключевые особенности

Учет подписки

Сервер знает, какие методы ограничены премиум-уровнями, и отклоняет вызов до того, как он покинет вашу машину — это экономит вашу квоту API:

{
  "error": "subscription_gate",
  "error_type": "subscription_gate",
  "code": 7,
  "message": "Endpoint requires PREMIUM_PRO, cabinet has PREMIUM_PLUS",
  "operation_id": "ProductPricesDetails",
  "required_tier": "PREMIUM_PRO",
  "cabinet_tier": "PREMIUM_PLUS",
  "retryable": false,
  "http_call_skipped": true
}

Управление лимитами (Rate-limit)

  • Автоматический повтор с экспоненциальной задержкой при ошибке 429.

  • Учитывает Retry-After (как дельта-секунды, так и дату HTTP RFC 7231).

  • Семафор для каждого эндпоинта для медленных методов (например, /v1/analytics/turnover/stocks жестко ограничен 1 запросом в минуту на стороне Ozon — сервер автоматически ставит параллельные вызовы в очередь).

Автоматическая пагинация

ozon_fetch_all обрабатывает все четыре шаблона пагинации, используемые Ozon: offset/limit, cursor, last_id, page_number. Он также обнаруживает редкие случаи, когда сервер возвращает один и тот же курсор дважды подряд, и прерывает цикл вместо бесконечного ожидания.

ozon_fetch_all(
  operation_id="ProductAPI_GetProductList",
  params={"filter": {"visibility": "ALL"}},
  max_items=10_000,
)
# → {"items": [...all products...], "total_fetched": 847,
#    "truncated": false, "pages_fetched": 1}

Единый конверт ошибок

Каждый инструмент, который может завершиться ошибкой, возвращает одинаковую структуру — легко обрабатывать в любом агенте или последующем коде:

{
  "error": "rate_limit_exceeded",
  "error_type": "rate_limit | subscription_gate | not_found | invalid_params | server_error | timeout | auth | forbidden | conflict | ...",
  "message": "Human-readable explanation",
  "code": 429,
  "operation_id": "AnalyticsAPI_StocksTurnover",
  "endpoint": "/v1/analytics/turnover/stocks",
  "retryable": true,
  "retry_after_seconds": 60
}

Классификация безопасности в каталоге

Каждый метод имеет поле safety — read, write или destructive. Для write требуется confirm_write=True; для деструктивных методов требуется и confirm_write=True, И i_understand_this_modifies_data=True. Эвристики из экстрактора схем подкреплены 43 кураторскими записями safety_warning в quirks.yaml, поэтому агент всегда видит четкое напоминание перед изменением чего-либо.


Поддержание спецификаций API в актуальном состоянии

Ozon периодически обновляет свой swagger. Для синхронизации:

git clone https://github.com/PCDCK/ozon-mcp.git
cd ozon-mcp
uv sync --extra dev

# Tests (≈25s, 274 currently)
uv run pytest tests/ --ignore=tests/live

# Code quality
uv run ruff check src tests
uv run mypy src/ozon_mcp

# Coverage
uv run pytest tests/ --ignore=tests/live --cov=src/ozon_mcp \
    --cov-report=term-missing

Запустите ozon_get_swagger_meta, чтобы подтвердить, что встроенный снимок свежий (CI также проваливает сборку, если снимок старше 14 дней).


Разработка

git clone https://github.com/PCDCK/ozon-mcp.git
cd ozon-mcp
uv sync --extra dev

# Tests (≈25s, 274 currently)
uv run pytest tests/ --ignore=tests/live

# Code quality
uv run ruff check src tests
uv run mypy src/ozon_mcp

# Coverage
uv run pytest tests/ --ignore=tests/live --cov=src/ozon_mcp \
    --cov-report=term-missing

См. CONTRIBUTING.md для получения информации о том, как добавлять знания (рабочие процессы, примеры, особенности, переопределения подписки).


Лицензия

MIT

Available Tools

15 tools
ozon_call_methodA

Execute a real call against the Ozon API.

SAFETY MODEL — read methods just work; write/destructive methods require explicit confirmation flags. Each method's safety class is visible in ozon_describe_method (safety field).

  • safety="read": no flag needed

  • safety="write": requires confirm_write=True

  • safety="destructive": requires BOTH confirm_write=True AND i_understand_this_modifies_data=True

SUBSCRIPTION GATE — when the method requires a higher tariff than the current cabinet tier, the call is refused locally and no HTTP request is sent. Saves quota on calls that would 403 anyway.

RATE LIMITS — 429 responses are retried up to MAX_RETRIES times honouring Retry-After. Slow endpoints (e.g. /v1/analytics/turnover/ stocks at 1 req/min) are serialised via a per-process semaphore.

On any failure returns a structured OzonError envelope — agents should inspect error_type and decide.

Args: operation_id: e.g. "FinanceAPI_FinanceTransactionListV3" params: request body matching the method's request_schema confirm_write: required when method.safety == "write" or "destructive" i_understand_this_modifies_data: extra confirmation for destructive cabinet_tier: override the cached cabinet tier (e.g. "PREMIUM_PLUS")

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsNo
cabinet_tierNo
operation_idYes
confirm_writeNo
i_understand_this_modifies_dataNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries full burden. It fully discloses the safety model, subscription gate, rate limit handling (retries with Retry-After, semaphore for slow endpoints), and error envelope. This goes well beyond what structured fields would provide.

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?

The description is well-structured with clear section headers (SAFETY MODEL, SUBSCRIPTION GATE, RATE LIMITS). It is appropriately sized—each sentence adds value, no fluff. It is front-loaded with the core purpose.

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's complexity (5 parameters, safety flags, subscription, rate limits), the description covers all behavioral aspects comprehensively. It explains what happens on failure (structured OzonError). Since there is an output schema, return value details are not needed. Complete for an execution tool.

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

Parameters5/5

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

Schema coverage is 0%, so description must compensate. It explains confirm_write and i_understand_this_modifies_data in the context of safety classes, cabinet_tier as an override, operation_id with an example, and params as the request body. This adds critical meaning beyond the schema's type/default info.

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 executes real calls against the Ozon API, using a specific verb ('Execute') and resource ('Ozon API'). It distinguishes itself from sibling tools like ozon_describe_method (which describes methods) by focusing on execution.

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 provides explicit guidance on when to use safety flags (confirm_write, i_understand_this_modifies_data) based on the method's safety class, and mentions subscription gate and rate limits. However, it does not explicitly state when not to use the tool or suggest alternatives, though the context implies that for description or listing, other siblings should be used.

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

ozon_describe_methodA

Get a complete description of one Ozon API method.

Returns the method's metadata plus fully-resolved JSON Schema for request and responses. All $ref pointers are inlined; oneOf/anyOf/allOf combinators are preserved verbatim. When knowledge layer is loaded, also includes rate_limit, quirks, examples, and related methods — everything an agent needs to call the method correctly.

Provide either operation_id (preferred) OR path (+ optional http_method).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
http_methodNo
operation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure, and it mostly delivers. It reveals that all $ref pointers are inlined, combinators are preserved verbatim, and the response conditionally includes rate_limit, quirks, examples, and related methods when the knowledge layer is loaded. It does not mention behavior for invalid, missing, or ambiguous input, but the main output characteristics are clearly disclosed.

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?

The description is compact and front-loaded: purpose first, then key output behavior, then input instructions. Every sentence adds value, and there is no filler or repetition of schema field titles. The length is appropriate for the tool's complexity.

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 method-description tool, the description is largely complete: it covers what is returned, the conditional enrichment, and the parameter selection strategy. It could be stronger by noting error behavior or when to prefer sibling discovery tools, but the presence of an output schema reduces the need to explain return values in prose.

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 description coverage is 0%, so the description must compensate, and it does. It explains the relationship between path and http_method, identifies operation_id as the preferred alternative, and states that path can be optionally paired with http_method. It stops short of giving concrete formats or examples, but the core semantic distinction between the two lookup modes is present.

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 opens with a specific verb and resource: 'Get a complete description of one Ozon API method.' It goes beyond a generic statement by specifying the unique output traits—fully-resolved JSON Schema, inlined $ref pointers, preserved combinators—that distinguish this tool from sibling introspection tools. The scope ('one method') is explicit.

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?

The description gives clear input-selection guidance ('Provide either operation_id (preferred) OR path (+ optional http_method)'), which helps the agent choose between parameter combinations. However, it does not explicitly explain when to use this tool versus siblings like ozon_search_methods or ozon_get_related_methods. The usage context is implied rather than stated with alternatives or exclusions.

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

ozon_fetch_allA

Fetch all pages of a paginated Ozon endpoint.

Walks the endpoint's pagination pattern (offset/page/last_id/cursor/ page_token — see knowledge/pagination_patterns.yaml) until the endpoint reports the last page or max_items is reached. Per-page rate limits are still enforced via the same machinery as ozon_call_method.

Args: operation_id: same as ozon_call_method, must support pagination params: request body WITHOUT offset/limit/last_id/cursor — the paginator owns those fields max_items: safety cap, range [1, MAX_FETCH_ALL_ITEMS] cabinet_tier: override the cached cabinet tier

Returns: {"items": [...], "total_fetched": N, "truncated": bool, "pages_fetched": int} on success or a structured OzonError on failure.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsNo
max_itemsNo
cabinet_tierNo
operation_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It details pagination walking, rate limit enforcement, safety cap, and return format. The reference to an external knowledge file adds context, though the agent may need to resolve it.

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

Conciseness4/5

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

The description is well-organized with clear sections (Args, Returns) and essential details. It is slightly dense in the first paragraph but overall efficient and front-loaded with the main purpose.

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?

Given the tool's complexity (pagination handling) and the presence of an output schema, the description covers argument semantics, return structure, and safety mechanisms. It could include a simple example but is otherwise complete.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must add meaning. It thoroughly explains each parameter: operation_id (same as call method), params (without pagination fields), max_items (range), and cabinet_tier (override). This is far beyond the bare schema.

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 the tool fetches all pages of a paginated Ozon endpoint, using a specific verb and resource. It distinguishes from sibling tools like ozon_call_method by explicit mention of pagination walking.

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 explains when to use this tool (for paginated endpoints) and provides constraints like max_items and ownership of pagination fields. It mentions rate limits but lacks explicit when-not-to-use guidance or alternatives beyond the implied comparison to ozon_call_method.

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

ozon_get_error_catalogA

Look up Ozon API errors and their solutions.

Without arguments returns all known errors. With code (e.g. "429" or "InvalidArgument") filters by code. With operation_id returns errors specific to that method plus all generic ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNo
operation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and it does disclose the key behavioral outcomes: return all errors, filter by code, or return method-specific plus generic errors. The main gap is how the tool behaves when both code and operation_id are supplied together, but core transparency is strong.

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?

The first sentence states the core purpose, followed by three terse, high-signal sentences covering each argument mode. There is no filler and every sentence earns its place.

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 simple lookup tool with two optional parameters and an output schema, the description covers the main behaviors and parameter meanings well. The only notable omission is the combined `code` + `operation_id` case, which is a minor completeness gap.

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

Parameters5/5

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

Schema description coverage is 0%, and the description fully compensates: it explains what `code` does with examples and explains the meaningful behavior of `operation_id` (method-specific plus generic errors). Each parameter receives semantic context the schema lacks.

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 states a specific verb ('Look up') and resource ('Ozon API errors and their solutions'), and explicitly explains the three invocation modes (no arguments, by code, by operation_id). This makes the tool's purpose immediately distinguishable from siblings like rate limits, examples, or method descriptions.

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 gives clear usage context by telling exactly what happens with no arguments, with a code, and with an operation_id. It does not explicitly discuss alternatives or when not to use the tool, so it stops short of the top score, but the run-mode guidance is concrete and actionable.

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

ozon_get_examplesB

Get hand-crafted request examples for one method.

Examples are real, validated payloads matching the method's request schema — copy them as starting points for your own calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
operation_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It adds value by stating the examples are 'real, validated payloads matching the method's request schema,' which is a meaningful guarantee. However, it doesn't disclose error behavior, whether multiple examples are returned, or any limitations.

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, front-loaded with the core purpose and a practical usage hint. There is no filler or repetition; every clause contributes meaningful information.

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

Completeness3/5

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

For a simple one-parameter tool with an output schema, the description conveys the purpose and the nature of the returned data. However, it omits how to discover a valid operation_id and offers no context about when this tool is the right choice, leaving an agent partially under-informed.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the undocumented operation_id parameter. It only loosely ties the parameter to 'one method' and doesn't explain what the ID looks like or where to obtain it. This leaves a significant gap for an agent selecting a value.

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

Purpose4/5

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

The description uses a specific verb ('Get') and a distinct resource ('hand-crafted request examples for one method'), making it clear that this tool returns example payloads rather than descriptions or schemas. It is distinguishable from sibling tools like describe_method or search_methods, though it does not explicitly name an alternative.

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

Usage Guidelines2/5

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

The description gives no guidance on when to choose this tool over siblings. The phrase 'copy them as starting points for your own calls' explains how to use the result, not when to invoke the tool. It also doesn't mention how to find a valid operation_id via related tools.

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

ozon_get_rate_limitsA

Look up rate limits for a method, section, or the whole API.

Without arguments returns all known limits. With operation_id, returns the most specific limit (per-method overrides per-section overrides global).

NOTE: Many limits in v0.2 are conservative guesses (source: 'guess'). Verify against real Ozon responses before relying on them in production.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionNo
operation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden. It discloses the read-only lookup behavior, the precedence behavior, and importantly warns that 'many limits in v0.2 are conservative guesses (source: 'guess')' and advises verification before production use. This is substantive behavioral context beyond the schema.

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?

The description is compact and front-loaded with the core purpose. Every sentence earns its place: the first states what the tool does, the second explains argument behavior, and the note conveys an essential reliability caveat. No redundant filler.

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 lookup tool with two optional parameters and an output schema, the description covers the main usage modes and adds an important data-quality warning. It could more explicitly define what values 'section' expects and how to discover valid section identifiers, but sibling discovery tools likely cover that gap.

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 description coverage is 0%, so the description must compensate. It explains operation_id's meaning and precedence behavior clearly. The 'section' parameter is implied by 'a method, section, or the whole API' but not given a dedicated explanation; still, its purpose is reasonably inferable.

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 uses a specific verb ('Look up') and clearly identifies the resource ('rate limits') and scope options ('a method, section, or the whole API'). This distinguishes it from sibling tools like ozon_describe_method or ozon_search_methods, which serve clearly different purposes.

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 gives concrete invocation guidance: 'Without arguments returns all known limits' and 'With operation_id, returns the most specific limit'. It explains the precedence rule per-method over per-section over global. It does not explicitly contrast with sibling tools, but the focused scope makes the usage context clear.

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

ozon_get_sectionA

List all methods inside a section (by section name or tag).

Args: query: section name or tag, e.g. "FinanceAPI", "Финансовые отчёты", "ProductAPI"

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It conveys that the tool is a read-only lookup ('List') and explains how the query is interpreted (section name or tag), but it does not mention matching behavior, error cases, or other operational details. This is adequate for a simple lookup tool but not rich.

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?

The description is short, front-loaded with the core purpose, and includes a concise parameter explanation with examples. Every sentence adds value and there is no redundant filler.

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?

For a single-parameter, simple lookup tool with an output schema present, the description is complete enough. It tells the agent what the tool does, how the query parameter works, and what kind of answer to expect. No critical missing information prevents correct invocation.

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

Parameters5/5

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

The schema only defines 'query' as a string with 0% coverage, so the description fully compensates by explaining that it accepts a section name or tag and providing concrete examples like 'FinanceAPI' and 'Финансовые отчёты'. This adds significant meaning beyond the schema.

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 the tool's function: 'List all methods inside a section' with a specific resource and query input. It differentiates well from sibling tools like ozon_list_sections and ozon_describe_method by indicating that it returns methods within a section.

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 intended use case is clear: call this when you need all methods belonging to a section identified by name or tag. It does not explicitly state when not to use it or mention alternatives, but the context is unambiguous enough for an agent to select it appropriately.

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

ozon_get_subscription_statusA

Get the current account's subscription tier from /v1/seller/info.

Returns the subscription type, the is_premium flag, plus the list of all Ozon API methods that might require this exact tier. Result is cached per server process; pass refresh=True to bypass the cache. Errors are NEVER cached.

Available only when seller credentials are configured.

ParametersJSON Schema
NameRequiredDescriptionDefault
refreshNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Discloses caching (per process, refreshable, errors never cached) and credential requirement. No annotations exist so description carries burden. Lacks mention of idempotency or rate limits, but acceptable for a read-only tool.

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?

Four concise sentences, front-loaded with main purpose, no redundant words. Each sentence adds distinct information.

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?

Tool is simple (1 param, no required ones) and has output schema. Description covers purpose, input, caching, prerequisite, and output content. Complete for reliable agent usage.

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?

With 0% schema coverage, description explains the sole parameter 'refresh': 'pass refresh=True to bypass cache'. Adds practical meaning beyond schema's default.

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?

Clearly states the verb 'get' and resource 'subscription tier' from a specific endpoint. Specifies return values (type, is_premium flag, list of methods). Distinguishes from sibling tools like ozon_list_methods_for_subscription.

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?

Provides context: prerequisite (seller credentials), caching behavior, and refresh bypass. Does not explicitly exclude scenarios or compare with alternatives, but sufficient for most cases.

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

ozon_get_swagger_metaA

Return metadata about the bundled Ozon swagger snapshots.

Tells the caller which spec version we are shipping, how many methods it contains, when the snapshot was refreshed, and the SHA-256 of the file. Useful for:

  • agents that need to decide whether to re-check docs online;

  • operators validating that a refresh actually landed;

  • bug reports — include this in the issue so reproduction is exact.

Returns {"error": "missing"} when the package was built without swagger_meta.json (pre-v0.6 snapshot).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It discloses the return contents (spec version, method count, refresh timestamp, SHA-256) and the error case ('{"error": "missing"}') with a version qualifier. It does not mention side effects or network behavior, but the tone and content make this a read-only metadata operation.

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?

The description is front-loaded with the main purpose, followed by a tidy bullet list of use cases and a clear error note. Every sentence contributes information; the structure makes the content scannable without redundancy.

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?

For a no-parameter tool with an output schema, the description provides all necessary context: what is returned, why it is useful, and what the failure mode looks like. Nothing an agent needs to invoke the tool correctly is missing.

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?

The tool has zero parameters, so the baseline is 4. There is nothing to explain about parameter semantics, and the description correctly focuses on the output. No parameter documentation is needed.

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 uses a specific verb ('Return metadata') and a clear resource ('bundled Ozon swagger snapshots'), then lists the exact pieces of metadata delivered. It clearly distinguishes itself from sibling tools like ozon_search_methods or ozon_describe_method, which operate on API operations rather than the snapshot itself.

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 'Useful for' section gives concrete, actionable scenarios: deciding whether to re-check docs online, validating a refresh, and including in bug reports. It does not explicitly name alternative tools or state when not to use it, but the use cases are specific enough to guide selection among siblings.

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

ozon_get_workflowA

Get the full step-by-step plan for one workflow.

Returns ordered steps with operation_ids, pagination/batching/concurrency guidance, recommended DB schema, and known gotchas. Analytical workflows additionally carry interpret (how to read the data), when_to_use (situations the workflow fits) and common_mistakes.

Args: name: workflow name from ozon_list_workflows, e.g. "sync_orders_fbs" or "oos_risk_analysis"

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden, and it does well by describing the rich return behavior: ordered steps, operation_ids, pagination/batching/concurrency guidance, recommended DB schema, and known gotchas. It also discloses conditional content for analytical workflows. It does not explicitly state that the operation is read-only, but 'Get' and 'Returns' strongly imply a safe retrieval.

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?

The description is compact and well-structured: a one-line primary purpose, a concise summary of return contents, and a focused Args section. No filler or repetition exists, and the most important action is front-loaded.

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?

For a single-parameter retrieval tool with an output schema present, the description is complete enough. It identifies the prerequisite source for the argument, gives representative examples, and summarizes the return value. Agents can confidently select and invoke this tool without needing additional context.

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

Parameters5/5

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

The schema provides only a bare 'name' string with no description, so 0% schema coverage. The description compensates fully by explaining that name is a workflow name from ozon_list_workflows and offering two realistic examples ('sync_orders_fbs', 'oos_risk_analysis'). This gives the agent the exact source and format of valid values.

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 opens with a specific verb and resource: 'Get the full step-by-step plan for one workflow.' It clearly differentiates from sibling tools like ozon_list_workflows because it targets a single workflow rather than listing all workflows, and it does not overlap with method-focused siblings like ozon_describe_method.

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 provides clear context for when to use the tool: after obtaining a workflow name from ozon_list_workflows. It gives concrete examples of valid names. It does not explicitly state when NOT to use it or name alternatives, but the one-workflow scope and prerequisite are clear enough for an agent to route correctly.

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

ozon_list_methods_for_subscriptionA

List all Ozon methods that mention a specific subscription tier.

Useful when an agent wants to know "what extra capabilities do I unlock by upgrading to Premium Plus?" or "which methods will fail without Premium?". Tiers are auto-extracted from method documentation, so this is a hint, not a contract — the actual hard 403 set may differ.

Args: tier: one of UNSPECIFIED, PREMIUM_LITE, PREMIUM, PREMIUM_PLUS, PREMIUM_PRO

ParametersJSON Schema
NameRequiredDescriptionDefault
tierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden, and it handles this well by disclosing that tiers are auto-extracted from documentation, calling the result a 'hint, not a contract', and warning that the actual 403 set may differ. This is exactly the kind of behavioral nuance an agent needs to avoid over-trusting the output.

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?

The description is compact and front-loaded: the first sentence states the core function, followed by practical use cases, a critical caveat, and parameter values. Each sentence earns its place; there is no filler or repetition of structured data.

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?

For a simple one-parameter tool with an output schema present, the description covers purpose, when to use it, the main reliability caveat, and the complete set of valid parameter values. Nothing necessary for an agent to invoke it correctly is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate for the schema's bare string type. It does so by enumerating the valid tier values: UNSPECIFIED, PREMIUM_LITE, PREMIUM, PREMIUM_PLUS, and PREMIUM_PRO, and by tying them to subscription tiers in the usage examples. This adds real meaning beyond the input schema.

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 states a specific verb and resource: 'List all Ozon methods that mention a specific subscription tier.' It clearly differentiates from sibling tools like ozon_search_methods or ozon_get_related_methods by focusing on subscription-tier membership, and it reinforces this with concrete user questions.

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 gives clear when-to-use guidance through examples like 'what extra capabilities do I unlock by upgrading to Premium Plus?' and 'which methods will fail without Premium?'. It does not explicitly name alternative tools or state when not to use it, but the context is unambiguous enough for an agent to select it appropriately.

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

ozon_list_sectionsA

List all Ozon API sections (Seller + Performance) with method counts.

Use this first to orient yourself in the API. Returns sections grouped by api ('seller' or 'performance'), each with the human-readable section name, the underlying tag, and the number of methods inside.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries full disclosure burden. It clearly explains behavior: returns sections grouped by api, includes section name, tag, and method count, and covers both seller and performance APIs. It does not mention auth or side effects, but the listing nature and zero parameters make those less critical.

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?

Three short sentences: purpose, usage, and output structure. The primary action is front-loaded, and every sentence carries useful information without padding.

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's low complexity, zero parameters, and available output schema, the description is complete. It tells the agent when to use it, what it lists, and how the result is structured. Nothing important is missing for selecting and invoking it correctly.

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?

The tool has zero parameters, and schema coverage is 100%, so there are no parameter semantics to clarify. The description correctly adds no parameter-related confusion and earns the zero-parameter baseline of 4.

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?

States a specific verb and resource: 'List all Ozon API sections' with explicit scope ('Seller + Performance') and output ('method counts'). The description makes the tool's purpose immediately clear and distinct from focused sibling tools like ozon_get_section.

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?

Gives explicit entry-point guidance: 'Use this first to orient yourself in the API.' This tells the agent when to invoke the tool. It does not name exclusions or alternatives, but for a zero-parameter orientation tool this is sufficient context.

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

ozon_list_workflowsA

List all curated workflows, optionally filtered by category.

Workflows are step-by-step recipes for chaining Ozon API methods into real data pipelines or analytical reports. Use ozon_get_workflow to fetch the full plan for a specific workflow.

Args: category: optional filter — one of "catalog", "orders", "analytics", "health", "pricing", "content", "advertising", "warehouse", "returns", "finance". When provided, only workflows in that category are returned. categories in the response always lists every value present in the catalogue.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses the read-only listing behavior, the optional category filter, and adds a useful nuance: 'categories in the response always lists every value present in the catalogue.' This goes beyond the bare operation and gives the agent a clearer model of the tool's behavior.

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

Conciseness4/5

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

The description is structured with a clear one-sentence purpose, a brief explanatory paragraph about workflows, a pointer to the sibling tool, and a structured Args section. The category list is somewhat long but necessary, and every sentence contributes a useful detail.

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 simple list operation with one optional parameter and an existing output schema, the description is nearly complete. It covers purpose, filtering behavior, category values, and the sibling tool for deeper details. It doesn't explicitly mention the absence of required parameters or error handling, but 'optional' and the provided category list imply this well enough.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully explain the parameter. It does: category is described as optional, its allowed values are enumerated, and the filtering behavior is specified. This fully compensates for the missing schema descriptions.

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 opens with a clear, specific statement: 'List all curated workflows, optionally filtered by category.' It identifies the resource (curated workflows) and the action (list), and distinguishes itself from the sibling ozon_get_workflow by explaining that the sibling fetches the full plan. This makes the tool's purpose unmistakable.

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 gives clear context for when to use this tool ('List all curated workflows') and explicitly routes the agent to ozon_get_workflow when a full plan is needed. It does not explicitly discuss exclusions or when not to use it, but the sibling differentiation and category filter behavior provide adequate guidance.

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

ozon_search_methodsA

Full-text search across all Ozon API methods.

Searches over operation_id, path, summary, description, section, and tag using BM25 ranking with field boosting (summary x4, path/op_id x3, description x1). Supports Russian and English queries with stemming.

Args: query: free-text query, e.g. "list of postings" or "финансовые транзакции" section: optional filter — match by section name or tag (case-insensitive substring) api: optional filter — "seller" or "performance" safety: optional filter — "read", "write", or "destructive" limit: max results to return (default 10)

ParametersJSON Schema
NameRequiredDescriptionDefault
apiNo
limitNo
queryYes
safetyNo
sectionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It discloses the BM25 ranking algorithm, field boosting weights, Russian/English stemming support, and available filters. This goes well beyond a basic statement and gives an agent realistic expectations about search behavior.

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?

The description is well-structured and front-loaded: a clear one-line purpose, followed by relevant search behavior details, then a compact argument list. Every sentence contributes useful information with no repetition or filler.

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?

The description covers search semantics, all parameters, and filtering options. Since an output schema exists, not detailing the return format is acceptable. The main gap is the lack of explicit routing guidance relative to sibling search/knowledge tools, but overall it is close to complete for this tool's complexity.

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

Parameters5/5

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

Schema description coverage is 0%, and the description fully compensates. It explains query with examples, describes section, api, safety, and limit, and even specifies allowed values such as 'read', 'write', and 'destructive'. This adds significant meaning beyond the bare schema.

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 immediately states a specific action — full-text search across all Ozon API methods — and identifies the exact searched fields (operation_id, path, summary, description, section, tag). This clearly distinguishes it from sibling tools like ozon_list_sections or ozon_describe_method.

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?

Usage is implied: use this tool when you need to find API methods by free-text query. However, it does not explicitly say when to prefer this over alternatives such as ozon_search_operations_knowledge or ozon_get_related_methods, nor does it state any exclusions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 15 tool updatesv0.6.0
    • First observedozon_call_method
    • First observedozon_describe_method
    • First observedozon_fetch_all
    • First observedozon_get_error_catalog
    • First observedozon_get_examples
    • First observedozon_get_rate_limits
    • First observedozon_get_related_methods
    • First observedozon_get_section
    • First observedozon_get_subscription_status
    • First observedozon_get_swagger_meta
    • First observedozon_get_workflow
    • First observedozon_list_methods_for_subscription
    • First observedozon_list_sections
    • First observedozon_list_workflows
    • First observedozon_search_methods

TDQS

A4.2/5.0

Scored across 15 tools

Disambiguation4/5

Most tools are clearly distinct: listing sections, searching methods, describing methods, workflows, rate limits, errors, examples, and calling methods all have separate purposes. The only mild overlap is between ozon_list_sections and ozon_get_section (both navigate the API structure), but their roles are differentiated enough by description.

Naming Consistency4/5

The tools follow a consistent ozon_verb_noun pattern (list_sections, search_methods, describe_method, get_section, get_related_methods, list_workflows, get_workflow, get_rate_limits, get_error_catalog, get_examples, get_swagger_meta, list_methods_for_subscription, get_subscription_status, call_method, fetch_all). Minor deviation: ozon_fetch_all uses a verb+adverb instead of verb_noun, and ozon_call_method is a generic verb rather than a resource-specific one, but the pattern is otherwise highly predictable.

Tool Count5/5

15 tools is well-scoped for an Ozon API MCP server that needs to cover discovery, documentation, workflows, rate limits, errors, examples, and execution. Each tool serves a distinct function in the API exploration and calling lifecycle, and none feel redundant.

Completeness5/5

The server covers the full API interaction lifecycle: orientation (list_sections), search (search_methods), deep documentation (describe_method), related methods, curated workflows, rate limits, errors, examples, subscription gating, direct calling, and pagination. There are no obvious dead ends—an agent can discover, understand, and execute any Ozon API method.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Universal MCP server for the Avito API (Russia's largest classifieds marketplace), built for autonomous AI agents to operate an account hands-free — 145 tools across 18 domains (listings, messenger, orders, delivery, promotion, autoload, reviews, analytics). Safe-by-default: dry-run, idempotency, structured errors, confirmation flow.
    144
    257 npm
    21
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that turns Wildberries marketplace into a toolkit for LLM agents, enabling product search, detailed card inspection, price history, reviews, and cross-product comparison.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Ozon sellers with a built-in Chinese operations knowledge base and 466 API methods, enabling AI agents to discover, understand, and execute Ozon Seller and Performance API operations safely and efficiently.
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    A knowledge-based MCP server for Ozon sellers, enabling AI agents to search a 42-lesson Chinese operations playbook and discover/call over 460 Seller and Performance API methods for real business actions.
    6
    15
    2
    MIT