- Принцип работы
- Установка
- Примеры промптов
- Справочник инструментов
- Навигация и поиск объектов
- Таблицы: данные и схемы
- Права доступа
- Квоты и ресурсы
- Инфраструктура
- list_dir
- find
- check_is_paths_exist
- common_client_read_table
- common_client_sample_static_table
- common_client_get_table_schema
- common_client_infer_table_schema
- check_permission
- common_client_whoami
- get_attributes_account
- get_attributes_account_limits_disk
- get_attributes_bundle
- get_attributes_pool
- get_account_property
- get_proxy
Работа с MCP-сервером YTsaurus
MCP-сервер YTsaurus — это посредник между AI-ассистентом и кластерами YTsaurus. Он предоставляет нейросети набор инструментов для чтения данных и метаданных. Ассистент обращается к кластеру напрямую и работает с его актуальным состоянием, а не генерирует ответы по памяти.
Принцип работы
Вы ставите задачу на естественном языке, а ассистент сам выбирает и комбинирует нужные инструменты. Например, чтобы разобраться, почему не удаётся записать данные в таблицу, ассистент последовательно проверит существование пути, права пользователя и квоту аккаунта, а затем объяснит причину.
С помощью MCP-сервера нейросеть может:
- читать данные и метаданные — схему таблицы, примеры строк, содержимое директории;
- проверять права доступа — какие права есть у пользователя на объект;
- отслеживать квоты и ресурсы — свободное место на HDD и SSD, лимиты и текущую загрузку пулов;
- искать объекты — таблицы, файлы и другие узлы по имени и атрибутам.
Формат ответа можно уточнить прямо в промпте.
Установка
Установка и настройка сервера описана в разделе Установка MCP-сервера.
Примеры промптов
- Анализ данных и структуры таблиц
-
- Посмотри структуру таблицы
//home/team/usersна кластереmy_clusterи напиши Python-скрипт, который читает из неё колонкуuser_id. - Выведи пример данных из таблицы
//home/team/logs/today. - В папке
//home/team/dataлежат таблицы. Определи их схему.
- Посмотри структуру таблицы
- Управление правами и поиск объектов
-
- Почему мой скрипт падает с ошибкой доступа при записи в
//home/team/output? Проверь права пользователяivanov. - Найди все таблицы с префиксом
backup_в директории//home/teamи скажи, кто их владелец.
- Почему мой скрипт падает с ошибкой доступа при записи в
- Работа с квотами и ресурсами
-
- Сколько места на SSD осталось у аккаунта
my_account? - Посмотри лимиты пула
compute_poolна кластереmy_cluster— может, упёрлись в квоту по CPU?
- Сколько места на SSD осталось у аккаунта
Совет
Если ассистент говорит, что не может выполнить задачу, направьте его, явно указав метод из справочника ниже. Например: «Используй инструмент check_is_paths_exist, чтобы убедиться, что папка существует».
Справочник инструментов
В этом разделе описаны все инструменты, которые доступны AI-ассистенту. Вы можете ссылаться на их названия в своих промптах. Ниже — сводка по группам. Нажмите на имя инструмента, чтобы перейти к его описанию.
Навигация и поиск объектов
|
Инструмент |
Назначение |
|
Возвращает содержимое узла или каталога |
|
|
Ищет объекты в поддереве кластера |
|
|
Проверяет существование путей |
Таблицы: данные и схемы
|
Инструмент |
Назначение |
|
Читает строки таблицы |
|
|
Возвращает первую строку таблицы для быстрого просмотра |
|
|
Возвращает схему таблицы |
|
|
Выводит схему из содержимого таблицы |
Примечание
Инструменты common_client_read_table, common_client_sample_static_table и common_client_infer_table_schema читают строки таблицы через HTTP-прокси кластера. Для их работы хосту, где запущен MCP-сервер, нужен сетевой доступ к HTTP-прокси. Как настроить внешний доступ к прокси — в разделе Настройка внешнего доступа к кластеру. Инструменты чтения метаданных, например common_client_get_table_schema и list_dir, работают через мастер-сервер и такого доступа не требуют.
Права доступа
|
Инструмент |
Назначение |
|
Проверяет права пользователя на путь |
|
|
Возвращает информацию о текущем пользователе |
Квоты и ресурсы
|
Инструмент |
Назначение |
|
Возвращает атрибуты аккаунта |
|
|
Возвращает дисковую квоту и занятое место |
|
|
Возвращает атрибуты бандла: лимиты и квоты ресурсов |
|
|
Возвращает атрибуты и текущую загрузку пула |
|
|
Возвращает свойство аккаунта, например дерево дочерних |
Инфраструктура
|
Инструмент |
Назначение |
|
Возвращает список прокси-серверов кластера |
list_dir
Возвращает содержимое узла или каталога в кластере YTsaurus.
Результат содержит метаданные каждого узла: тип file, table или map_node, аккаунт, время создания, количество строк.
Параметры:
|
Параметр |
Тип |
Обязательный |
Описание |
|
|
string |
Да |
Путь к узлу или каталогу. Должен начинаться с |
|
|
string |
Да |
Название кластера YTsaurus |
Пример запроса:
{
"directory": "//home/team",
"cluster": "my_cluster"
}
find
Ищет объекты в поддереве кластера.
Параметры:
|
Параметр |
Тип |
Обязательный |
Описание |
|
|
string |
Да |
Корневой путь для начала поиска. Должен начинаться с |
|
|
string |
Да |
Название кластера YTsaurus |
|
|
string |
Нет |
Шаблон имени в shell-стиле |
|
|
array[string] |
Нет |
Типы объектов: |
|
|
array[string] |
Нет |
Атрибуты, которые нужно включить в результат, например |
|
|
object |
Нет |
Фильтрация по значениям атрибутов, например по |
Пример запроса:
{
"root_path": "//home/team",
"cluster": "my_cluster",
"name": "log_*",
"type": ["table"],
"attributes": ["owner"],
"attributes_to_match": {
"owner": "ivanov"
}
}
check_is_paths_exist
Проверяет наличие путей в кластере YTsaurus.
Список может содержать от 1 до 500 путей. Каждый путь должен начинаться с // и не заканчиваться /.
Параметры:
|
Параметр |
Тип |
Обязательный |
Описание |
|
|
string |
Да |
Название кластера YTsaurus |
|
|
array[string] |
Да |
Список путей до 500 штук. Каждый путь должен начинаться с |
Пример запроса:
{
"paths": ["//home/team/data", "//tmp/temp_table"],
"cluster": "my_cluster"
}
common_client_read_table
Читает строки таблицы.
Внимание
Данные могут быть большими и превысить контекстное окно модели. Для быстрого просмотра структуры используйте common_client_sample_static_table.
Параметры:
|
Параметр |
Тип |
Обязательный |
Описание |
|
|
string |
Да |
Путь к таблице |
|
|
string |
Да |
Должно быть |
|
|
string |
Да |
Название кластера YTsaurus |
Пример запроса:
{
"table": "//home/team/users",
"method": "read_table",
"cluster": "my_cluster"
}
common_client_sample_static_table
Возвращает первую строку статической таблицы. Удобен для быстрого ознакомления с данными без полной загрузки таблицы.
Параметры:
|
Параметр |
Тип |
Обязательный |
Описание |
|
|
string |
Да |
Путь к таблице с селектором строк, например |
|
|
string |
Да |
Должно быть |
|
|
string |
Да |
Название кластера YTsaurus |
Пример запроса:
{
"table": "//home/team/users[#0:#1]",
"method": "read_table",
"cluster": "my_cluster"
}
common_client_get_table_schema
Возвращает схему таблицы. Схема хранится в поле value, поле attributes содержит флаги strict и unique_keys.
Примечание
Если возвращается пустая схема, воспользуйтесь методом common_client_infer_table_schema, который выводит схему из содержимого таблицы.
Параметры:
|
Параметр |
Тип |
Обязательный |
Описание |
|
|
string |
Да |
Путь к таблице |
|
|
string |
Да |
Должно быть |
|
|
string |
Да |
Название кластера YTsaurus |
Пример запроса:
{
"table_path": "//home/team/users",
"method": "get_table_schema",
"cluster": "my_cluster"
}
common_client_infer_table_schema
Определяет схему таблицы по её содержимому. Используйте этот метод, если common_client_get_table_schema вернул пустую схему.
Параметры:
|
Параметр |
Тип |
Обязательный |
Описание |
|
|
string |
Да |
Путь к таблице |
|
|
string |
Да |
Должно быть |
|
|
string |
Да |
Название кластера YTsaurus |
Пример запроса:
{
"table": "//home/team/users",
"method": "infer_table_schema",
"cluster": "my_cluster"
}
check_permission
Проверяет право пользователя на доступ к указанному пути. Ответ содержит поле action с результатом проверки: allow — доступ разрешён, deny — доступ запрещён.
Параметры:
|
Параметр |
Тип |
Обязательный |
Описание |
|
|
string |
Да |
Путь к объекту |
|
|
string |
Да |
Название кластера YTsaurus |
|
|
string |
Да |
Право: |
|
|
string |
Да |
Логин пользователя |
Пример запроса:
{
"path": "//home/team",
"cluster": "my_cluster",
"permission": "read",
"user_login": "user_login"
}
Пример результата:
{
"action": "allow"
}
common_client_whoami
Возвращает информацию о текущем пользователе на кластере.
Параметры:
|
Параметр |
Тип |
Обязательный |
Описание |
|
|
string |
Да |
Должно быть |
|
|
string |
Да |
Название кластера YTsaurus |
Пример запроса:
{
"method": "get_current_user",
"cluster": "my_cluster"
}
get_attributes_account
Возвращает атрибуты учётной записи на кластере.
Параметры:
|
Параметр |
Тип |
Обязательный |
Описание |
|
|
string |
Да |
Имя аккаунта. Без пробелов |
|
|
string |
Да |
Название кластера YTsaurus |
|
|
array[string] |
Да |
Атрибуты, например |
Пример запроса:
{
"account": "my_account",
"cluster": "my_cluster",
"attributes": ["resource_usage", "effective_acl"]
}
get_attributes_account_limits_disk
Возвращает дисковую квоту аккаунта и объём занятого места на HDD и SSD.
Значения возвращаются в байтах:
resource_limits.disk_space_per_medium.default— квота аккаунта на HDD;resource_limits.disk_space_per_medium.ssd_blobs— квота аккаунта на SSD;resource_usage.disk_space_per_medium.default— занятое место на HDD;resource_usage.disk_space_per_medium.ssd_blobs— занятое место на SSD.
Другие ресурсы, такие как количество узлов, таблетов и статическая память, не учитываются.
Параметры:
|
Параметр |
Тип |
Обязательный |
Описание |
|
|
string |
Да |
Имя аккаунта |
|
|
string |
Да |
Название кластера YTsaurus |
|
|
array[string] |
Да |
Должны быть одновременно указаны |
Пример запроса:
{
"account": "my_account",
"cluster": "my_cluster",
"attributes": ["resource_usage", "resource_limits"]
}
get_attributes_bundle
Возвращает значения атрибутов бандла на кластере: ограничения ресурсов с детализацией по количеству таблетов и статической памяти, а также квоты по CPU и памяти.
Параметры:
|
Параметр |
Тип |
Обязательный |
Описание |
|
|
string |
Да |
Название кластера YTsaurus |
|
|
array[string] |
Да |
Список запрашиваемых атрибутов, например |
|
|
string |
Нет |
Имя бандла. Без пробелов |
Пример запроса:
{
"bundle": "my_bundle",
"cluster": "my_cluster",
"attributes": ["resource_limits", "resource_quota"]
}
get_attributes_pool
Возвращает атрибуты пула на кластере.
Примечание
Пул ищется в дереве пулов, указанном в параметре pool_tree. Значение по умолчанию physical подходит не для всех кластеров — имя дерева зависит от конфигурации. Если пул не найден, уточните имя дерева у администратора кластера.
Параметры:
|
Параметр |
Тип |
Обязательный |
Описание |
|
|
string |
Да |
Название кластера YTsaurus |
|
|
array[string] |
Да |
Атрибуты, например |
|
|
string |
Нет |
Имя пула. Уникально в пределах дерева. Без пробелов |
|
|
string |
Нет |
Имя дерева пулов. По умолчанию |
Пример запроса:
{
"pool": "pool_name",
"pool_tree": "pool_tree",
"cluster": "my_cluster",
"attributes": ["max_operation_count", "effective_acl"]
}
get_account_property
Возвращает свойство аккаунта.
Параметры:
|
Параметр |
Тип |
Обязательный |
Описание |
|
|
string |
Да |
Имя аккаунта |
|
|
string |
Да |
Название кластера YTsaurus |
|
|
string |
Да |
Свойство аккаунта. Например, |
Пример запроса:
{
"account": "my_account",
"cluster": "my_cluster",
"property": "childrens"
}
get_proxy
Возвращает список прокси-серверов кластера с указанными атрибутами.
Параметры:
|
Параметр |
Тип |
Обязательный |
Описание |
|
|
string |
Да |
Название кластера YTsaurus |
|
|
array[string] |
Да |
Атрибуты прокси-сервера: |
|
|
array[string] |
Нет |
Список прокси-серверов в формате |
|
|
string |
Нет |
Тип прокси: |
Пример запроса:
{
"cluster": "my_cluster",
"attributes": ["role", "version"],
"proxy_type": "http"
}