Yandex DataLens через API и MCP: 96 методов, закрытый обмен OAuth-токена и почему выпуск ключа переехал в Go
Разбираем Yandex DataLens Public API: почему привычный обмен OAuth-токена на IAM-токен больше не работает для новых подключений, единственный оставшийся путь через JWT сервисного аккаунта, и как всё это выглядит через MCP-сервер Mira без единой строки кода.
Обзор
DataLens — BI-платформа Yandex Cloud: подключения к источникам данных, датасеты, чарты трёх видов, дашборды, отчёты, всё это организовано воркбуками и коллекциями. У платформы есть Public API — RPC-стиль, один хост, JSON-тело, — и мы подключили его целиком: 96 методов в 24 разделах.
Собирая коннектор, мы наткнулись на вещь, которая касается не только Миры: самый очевидный способ получить доступ к DataLens программно — обменять OAuth-токен Яндекса на IAM-токен — перестал работать для новых подключений с 1 июня 2026 года. Документация Yandex Cloud говорит об этом прямо, но неочевидно, если вы уже писали интеграцию по старой схеме.
Что изменилось с доступом
У Yandex Cloud исторически было три способа получить IAM-токен без похода внутрь виртуальной машины:
- Обменять OAuth-токен Яндекса. Человек получает OAuth-токен на странице Яндекса, обменивает его на IAM-токен одним запросом. Самый простой путь — ровно поэтому его выбирали чаще всего.
- API-ключ сервисного аккаунта. Работает без похода за IAM-токеном вовсе — но только для части сервисов: AI Studio, Functions, Monitoring, Postbox, Search API, Serverless Containers, SpeechKit и ещё нескольких. DataLens в этот список не входит.
- JWT сервисного аккаунта. Сервисный аккаунт подписывает JWT своим приватным ключом, JWT обменивается на IAM-токен. Больше шагов, зато работает для всех сервисов Yandex Cloud, включая DataLens.
Первый путь больше не годится для новых интеграций:
Starting June 1, 2026, the authentication service no longer accepts new OAuth tokens received via YandexID. Tokens issued before June 1, 2026 will remain valid until their expiration date.
Если вы сегодня получите свежий OAuth-токен и попробуете обменять его на IAM, Yandex Cloud ответит отказом сразу. Токены, выпущенные до этой даты, доживут до истечения — но новых больше не будет никогда.
Второй путь для DataLens закрыт с самого начала: список сервисов,
принимающих Authorization: Api-Key, в документации DataLens не значится.
Остаётся третий — единственный рабочий сегодня. Дороже в реализации, но дешевле в поддержке: он не исчезнет так же внезапно, как обмен OAuth-токена, потому что это основной путь Yandex Cloud для автоматизации.
Что доступно через API
| Раздел | Методов | Что даёт |
|---|---|---|
| Коллекции | 13 | папки для воркбуков: создать, удалить, переместить, права доступа |
| Воркбуки | 12 | контейнер подключений, датасетов, чартов и дашбордов |
| Папки (старое дерево) | 6 | права, DLS-подсказки, перемещение записей |
| Датасеты | 5 | описание того, как строить таблицу из подключения |
| Подключения | 4 | источник данных — 29 типов, от Метрики до BigQuery |
| Дашборды | 4 | вкладки, виджеты, раскладка |
| Чарты (Editor/QL/Wizard) | по 4 | код на JavaScript, SQL-запрос, визуальный конструктор |
| Ключи и публикации встраивания | 8 | публичный доступ к чарту или дашборду без входа |
| HTML-страницы | 4 | заготовленные страницы для публикации |
| Лицензии | 4 | места в лимите организации |
| Отчёты | 4 | презентация из слайдов с чартами |
| Экспорт/импорт воркбука | 6 | перенос воркбука целиком, фоновой задачей |
| Записи, блокировки, аудит, права | 10 | переименование, блокировка правки, история изменений |
| Доступ | 1 | пользователи и группы организации — кому есть что выдавать |
| Навигация | 2 | список записей и каталогов DataLens с фильтрами по имени, типу, автору |
| Данные | 1 | сами строки датасета — с фильтрами, параметрами и сортировкой |
Устройство отличается от других коннекторов Mira
У большинства площадок, которые мы уже подключили — Авито, Ozon,
Wildberries, — методы бьются на разделы с разными адресами, query-
параметрами и телом вперемешку. У DataLens всё однороднее: один хост
(api.datalens.tech), один глагол — POST, один вид тела — JSON целиком,
имя метода в самом адресе (/rpc/<метод>). Это упростило разбор, но
поставило другой вопрос: часть тел — это вся сущность целиком (датасет,
дашборд, чарт), а не десяток простых полей.
Разбирать такое тело по отдельным полям в нашей же таблице означало бы
дублировать спецификацию поставщика внутри кода — и расходиться с ней при
первом же изменении. Вместо этого для таких методов Mira просто пересылает
то, что попросила модель, и явно советует: сначала прочитать существующую
сущность через get-метод, отредактировать копию, и только потом
сохранить — не собирать с нуля. У самого DataLens к тому же есть известная
особенность: прямая правка существующего датасета часто отвечает отказом
DATASET_REVISION_MISMATCH независимо от присланной версии — это сторона
поставщика, а не наша ошибка сборки запроса, и обходится пересозданием, а
не редактированием в лоб.
Что защищено от случайного действия
Из 96 методов 56 меняют данные — но ни один не тратит деньги напрямую: DataLens не берёт оплату за действие внутри себя, только подписка на облако в целом. Тем не менее барьер записи закрывает все 56: создание и удаление любой сущности, перемещение, выдачу и отзыв доступа, публикацию для встраивания без входа, блокировки правки, лицензии, фоновый экспорт и импорт.
Источник, подключённый на чтение, физически не может ничего изменить — запрос не уходит поставщику. Признак «меняет данные» хранится рядом с адресом метода в одной таблице, а не отдельным списком — разойтись им негде.
Как это выглядит через MCP
Какие дашборды есть в воркбуке «Продажи»?
Claude получает список записей воркбука одним вызовом, без похода в консоль DataLens.
Собери новый датасет на основе того, что подключён к ClickHouse, и назови поля своими словами
Модель сначала читает существующий датасет как образец, затем создаёт новый — а не пытается угадать полную схему с нуля.
Кому выдан доступ на эту коллекцию?
Ответ придёт из listCollectionAccessBindings без ручного похода в
настройки прав.
Как подключить
- В консоли Yandex Cloud создайте сервисный аккаунт (если его ещё нет) и
выдайте ему роль
datalens.editorили выше на организации/папке с DataLens. - Identity and Access Management → Сервисные аккаунты → нужный аккаунт →
«Создать новый ключ» → «Авторизованный ключ». Скачается файл
authorized_key.json. - В Mira: проект → источники → Yandex DataLens → вставьте ID организации (виден в консоли Yandex Cloud) и содержимое скачанного файла целиком — разбирать JSON на части не нужно.
IAM-токен по этому ключу Mira выпускает и обновляет сама, каждые несколько часов, без вашего участия — токен живёт не больше 12 часов, и вы этого не заметите.
Новости в Telegram
Подпишитесь на каналы — новые статьи и обзоры каждый день.
Источники
Ещё по теме «MCP-серверы»
1С через OData: как достать данные учётной базы без единой строки кода на встроенном языке
Разбираем стандартный OData-интерфейс 1С:Предприятие: чем он отличается от API конкретного сервиса, как узнать, что вообще опубликовано на конкретной базе, как проводить и отменять проведение документов и как всё это работает через MCP-сервер Mira без единой строки кода на встроенном языке.
3 сентября 2026 г.CloudPayments через API и MCP: 32 метода, конверт отказа, который не отличает 400 от отклонённой карты, и Public ID, который просят дважды
Разбираем API CloudPayments изнутри: платежи, выплаты, подписки и счета чужого магазина — не биллинг самой Миры, — почему списание по сохранённому токену считается расходом, а обычная оплата картой нет, зачем платёжной ссылке СБП собственный Public ID в теле запроса поверх Basic Auth, и как всё это доступно через MCP-сервер Mira без единой строки кода.
3 сентября 2026 г.Финтабло через API и MCP: 112 методов финучёта, семь путей без объявленных параметров и почему тут нет отчётов
Разбираем API Финтабло изнутри: 112 методов финансового учёта — ДДС, счета, контрагенты, сделки, зарплата, имущество, ОПиУ, — где спецификация поставщика сама не дописывает параметры пути, почему у четырёх PUT-запросов id дублируется в теле и куда делись отчёты. Всё доступно через MCP-сервер Mira без единой строки кода.
3 сентября 2026 г.