ozon-mcp-ru
API Ozon Seller для ИИ-ассистентов: товары, заказы FBS и FBO, цены, остатки, финансы, отзывы. Каталог исполняется сервером, у каждого метода класс доступа.
Пакет поднимает один сервер, Ozon Seller, и ничего больше. Сервер, каталог и
ядро приходят зависимостью из marketplaces-mcp-ru:
здесь имя, точка входа и документация под один маркетплейс.
Установка
Пакет на PyPI, поэтому строка одна:
uvx ozon-mcp-ru
Если нужна ветка main, а не релиз:
uvx --from git+https://github.com/ilyautov/ozon-mcp-ru ozon-mcp-ru
Claude Desktop, claude_desktop_config.json:
{
"mcpServers": {
"ozon": {
"command": "uvx",
"args": ["ozon-mcp-ru"],
"env": { "OZON_CLIENT_ID": "...", "OZON_API_KEY": "..." }
}
}
}
Третий путь, если агент умеет скиллы: он поставит сервер и настроит клиент сам.
npx skills add ilyautov/ozon-mcp-ru
Ключи
Seller API: Client-Id и Api-Key. Зайдите в кабинет seller.ozon.ru, откройте Настройки, раздел API-ключи. Ozon выдаёт пару: Client-Id (число) и Api-Key. Оба уходят в заголовки одноимённых имён, хост запроса api-seller.ozon.ru.
Performance API: client_id и client_secret. Рекламный кабинет живёт отдельно и авторизуется по OAuth2: пара client_id и client_secret меняется на токен, хост api-performance.ozon.ru. Ключи Seller API там не работают, и наоборот.
Куда положить, чтобы не хранить в открытую. Сервер спросит ключи при первом запуске и положит их в ~/.marketplace-mcp/cabinets.json с правами chmod 600. В репозиторий и в чат они не попадают. Магазинов можно подключить несколько и переключаться между ними прямо из чата.
| переменная | секрет | что это |
|---|---|---|
OZON_CLIENT_ID |
да | Client-Id из кабинета seller.ozon.ru, Настройки → API-ключи. |
OZON_API_KEY |
да | Api-Key из той же пары. Оба уходят в одноимённые заголовки. |
Ключи можно не держать в окружении: сервер умеет кабинеты и кладёт их в
~/.marketplace-mcp/cabinets.json с правами 600, вне репозитория. Магазинов
подключается сколько нужно, переключение прямо из чата.
Карта методов
Каталог лежит в зависимости как ozon_mcp/endpoints.yaml:
441 метод, из них 190 на чтение, 240 на запись и 11 необратимых.
Сервер исполняет ровно этот файл, поэтому таблица не может разойтись с кодом.
| тема | методов | чтение | запись | необратимые |
|---|---|---|---|---|
| Заказы FBS и доставка | 112 | 37 | 73 | 2 |
| Заказы FBO и склады | 64 | 37 | 25 | 2 |
| Товары и карточки | 55 | 30 | 24 | 1 |
| Кросс-док FBP | 45 | 15 | 27 | 3 |
| Акции и продвижение | 31 | 9 | 21 | 1 |
| Возвраты и отмены | 30 | 11 | 19 | 0 |
| Отзывы, вопросы и чаты | 27 | 10 | 16 | 1 |
| Финансы и отчёты | 25 | 11 | 14 | 0 |
| Кабинет и служебное | 22 | 12 | 9 | 1 |
| Цены и остатки | 21 | 11 | 10 | 0 |
| Аналитика | 9 | 7 | 2 | 0 |
Подробный разбор с параметрами и лимитами: https://marketplaces-mcp-ru.aifrontier.tech/ozon-api.html
Что спросить в чате
- покажи продажи на Ozon за неделю по дням
- какие товары с красным индексом цены
- вытащи отчёт о начислениях за прошлый месяц
- собери отзывы ниже 4 звёзд и сгруппируй жалобы
Частые ошибки
401 или «Client-Id should be positive integer», хотя ключ верный. Первым делом смотрите не переменные окружения, а ~/.marketplace-mcp/cabinets.json: активный кабинет в этом файле имеет приоритет над env и молча затеняет то, что вы экспортировали в терминале.
404 на методе, который точно существует. Ozon дрейфует по версиям, и разные разделы живут на разных: список товаров на v3, атрибуты на v4, цены на v5. При 404 проверяйте версию в пути раньше всего остального.
405 Method Not Allowed. Скорее всего это метод, импортированный из спецификации: путь у таких записей надёжный, а HTTP-глагол не всегда. Живая проба находила методы, помеченные GET, которые на деле POST. Сверьтесь с документацией или вызовите через call_raw.
Чем это отличается от marketplaces-mcp-ru
Ничем, кроме состава. marketplaces-mcp-ru ставит четыре маркетплейса сразу и держит их
под одним сервером, ozon-mcp-ru ставит один. Код общий: правка в ядре доезжает
сюда обновлением зависимости, а не копированием.
Рекламный кабинет Ozon это отдельный API с другой авторизацией. Он тоже есть в marketplaces-mcp-ru, команда ozon-perf-mcp, 45 методов.
| нужно | пакет |
|---|---|
| только Ozon Seller | ozon-mcp-ru |
| все четыре маркетплейса | marketplaces-mcp-ru |
Кто это сделал
Илья Утов, лаборатория AI Frontier. Как эти инструменты устроены внутри, пишу в Telegram и LinkedIn.
Рядом стоят business-mcp-ru (hh.ru, VK, Диадок, СБИС, Честный знак), moysklad-mcp-ru и humanizer-ru.
Все проекты одним списком, разобранные по назначению: ilyautov.github.io.
Лицензия
MIT, см. LICENSE.
Metadata
Release files for ozon-mcp-ru 0.5.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ozon_mcp_ru-0.5.4.tar.gz | 7.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ozon_mcp_ru-0.5.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.4 kB
Release files / ozon_mcp_ru-0.5.4.tar.gz
| Download URL | ozon_mcp_ru-0.5.4.tar.gz |
|---|---|
| Size | 7.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c00eb1d4f7548a6a5ac229b64404ef755b56370d1e0bb663022f5a98483c9287
|
|
BLAKE2b-256 checksum How to use checksums |
c3cbf07e21757995f053b7f063edf38bae09de3f3977b3f0691ec55fd44e2e73
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.
Transparency logRelease files / ozon_mcp_ru-0.5.4-py3-none-any.whl
| Download URL | ozon_mcp_ru-0.5.4-py3-none-any.whl |
|---|---|
| Size | 6.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a0e1f4e86ab85bade77550aef9db08b7772d257ea4163466c2aacf3caa9a45e7
|
|
BLAKE2b-256 checksum How to use checksums |
214c569822b7087a843e7ffe7ceac0ea5368d8b95978e745489ca8646ca192ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.
Transparency log