ИИ и MCP · Справочник
Настройка MCP, доступные инструменты только для чтения и безопасные примеры.
Обновлено: 27 авг. 2026 г.
Как подключить Prizma BI к ИИ-агенту через MCP
MCP позволяет ИИ-агенту получать данные из Prizma BI по потоковому HTTP-соединению. Сервер применяет права пользователя: агент не получает доступ к рабочему пространству, дашборду или набору данных, которые недоступны пользователю.
Версия текущего контракта: v1.
Перед началом
Вам понадобятся:
- аккаунт Prizma BI;
- доступ к нужному рабочему пространству и опубликованным данным;
- MCP-клиент с поддержкой потокового HTTP-соединения;
- токен пользователя с минимально необходимыми правами.
Не вставляйте токен в текст запроса к агенту, публичный чат, репозиторий или логи. Передавайте его только через защищённую настройку секретов MCP-клиента.
Настройка подключения
Укажите в MCP-клиенте адрес сервера:
https://<mcp-host>/mcp Для локального запуска используйте MCP-точку входа на loopback-подключении и порту 8090. Адрес рабочей инсталляции зависит от окружения и должен быть выдан администратором Prizma BI.
Добавьте заголовок авторизации:
Authorization: Bearer <token> После подключения сначала запросите список доступных рабочих пространств. Не начинайте аналитический запрос, пока не проверите область доступа пользователя.
Доступные инструменты
list_workspaces
Возвращает рабочие пространства и команды, доступные авторизованному пользователю. Аргументы отсутствуют.
{} search
Ищет доступные дашборды и отчёты. Поиск ограничен разрешённой областью рабочего пространства пользователя и никогда не обращается к произвольным коллекциям Directus. Можно отфильтровать типы объектов и установить ограничение не больше 50.
{"query":"выручка","types":["dashboard","report"],"limit":20} get_dashboard
Возвращает дашборд по публичному идентификатору dashboardId. Внутренний идентификатор базы данных использовать нельзя. Для отсутствующего и недоступного дашборда сервер возвращает одинаковую безопасную ошибку.
{"dashboardId":"sales-overview"} list_notifications
Возвращает краткие уведомления только для авторизованного пользователя. В ответ не попадают тексты уведомлений, идентификаторы файлов, метаданные выгрузок и внутренние идентификаторы сущностей.
{"limit":20} list_alerts
Возвращает доступные оповещения. Результаты ограничены разрешённой областью рабочего пространства, а лимит применяется на сервере.
{"limit":20} get_report
Возвращает отчёт по публичному идентификатору вместе с разрешённым определением отчёта и каталогом полей набора данных. Для отсутствующего и недоступного отчёта сервер возвращает одинаковую безопасную ошибку.
{"reportId":"revenue-by-month"} run_query
Выполняет структурированный запрос только для чтения по опубликованному набору данных. Исходный SQL, неизвестные поля и обход политик построчного или поколоночного доступа не поддерживаются.
{
"dataset": "sales",
"dimensions": ["month"],
"measures": ["revenue"],
"filters": [],
"orderBy": [],
"limit": 100
} Точную схему параметров MCP-клиент получает через tools/list. Не копируйте поля из примера, если они отсутствуют в актуальной схеме конкретной версии сервера.
download_export
Скачивает вашу готовую выгрузку по workspace и exportId из list_exports / get_export_status. Ответ содержит байты файла в resource.blob (base64), имя — в structuredContent.fileName. URI вложения не является публичной ссылкой. Нужны актуальные права на пространство, датасет и выгрузку; файл читается тем же пользовательским токеном. Большие файлы скачивайте через интерфейс Призмы.
Анализ выполняйте через платформу без выгрузки. Файл нужен по явной просьбе пользователя или при объяснённой необходимости.
Создание отчётов и дашбордов
preview_create_report проверяет рабочее пространство, команду и датасет текущим пользовательским доступом. Передайте workspace и team (публичные идентификаторы из list_workspaces), title, description (строка или null), dataset, dimensions, measures, filters, order и chartType. Поля берите только из свежего get_dataset.members[].id: поддержаны корневые canonical member IDs, не внутренние UUID, не подписи и не связанные поля. Нужен хотя бы один показатель. Сохраняются плоская таблица, выбранные поля, дерево фильтров и порядок; результат — черновик с первой ревизией. Новые папки, публикация, сводные таблицы и редактирование существующих отчётов этим инструментом не выполняются.
preview_create_dashboard принимает только workspace, team, title, description. Создаётся пустой черновик без виджетов; заполненный дашборд этот контракт не строит.
Покажите пользователю точный предпросмотр. Только после явного согласия вызовите create_report или create_dashboard с тем же request, выданным previewId, confirm: true и уникальным idempotencyKey (8–200 символов). Предпросмотр одноразовый и действует 120 секунд. Встроенный чат дополнительно требует штатное серверное подтверждение. Успех возвращает публичный идентификатор и ссылку после точного чтения созданной записи. Повтор того же ключа возвращает сохранённый результат, а не создаёт второй объект. При неопределённом исходе не меняйте ключ и не создавайте новый предпросмотр ради повтора: сначала проверьте библиотеку; для незавершённых операций требуется сверка оператором.
Нужны включённые изменения на сервере, хранилище идемпотентности и отдельно выданные mcp:reports:create / mcp:dashboards:create на согласованном пользовательском target. Обычный read-доступ и глобальный режим чтения их не выдают. Обычные права Directus и проверки пространства/датасета сохраняются. STDIO остаётся только для чтения. Выдача прав и включение production не выполняются установкой этих инструментов.
Актуальные идентификаторы инструментов
Ниже приведён полный список идентификаторов, который проверяется при сборке документации. Описание параметров для конкретной установки всегда берите из tools/list.
list_notifications, list_alerts, get_alert, list_activity, list_datasets, get_distinct_values, run_query, run_report, run_widget, get_dataset, validate_query, explain_query, get_dashboard, get_report, list_exports, get_export_status, download_export, preview_export, mark_notification_read, mark_all_notifications_read, request_export, list_workspaces, search, get_library, list_favorites, get_default_dashboard, add_favorite, remove_favorite, preview_create_report, create_report, preview_create_dashboard, create_dashboard
Что сейчас не поддерживается
Доступны ресурсы prizma://capabilities, prizma://glossary и каталог датасета. Инструменты не предоставляют произвольный CRUD, удаление объектов, исходный SQL, управление пользователями или выдачу токенов. Изменения ограничены явно зарегистрированными операциями с отдельными правами и подтверждением.
Не делайте вывод о наличии возможности только по названию продукта: проверяйте актуальный ответ tools/list.
Безопасность и ограничения
- Инструменты разделены на чтение и ограниченные операции в рамках прав пользователя. Не предполагайте, что инструмент доступен или изменяет данные: перед вызовом всегда проверяйте актуальную схему через
tools/list. - Проверка доступа выполняется на стороне Prizma BI для каждого вызова.
- Не передавайте в запросах секреты, токены или персональные данные, не необходимые для задачи.
- Не просите агента обходить политики построчного или поколоночного доступа и не подбирайте идентификаторы объектов.
- Ошибки доступа намеренно не раскрывают, существует ли недоступный объект.
- Для рабочей среды необходимы защита точки входа, ограничение частоты, аудит, метрики и хранилище состояния сессий; текущий транспорт рассчитан на тестовый и первый рабочий сценарий.
Проверка подключения
- Выполните
tools/listи убедитесь, что видитеlist_workspaces,search,get_dashboard,list_notifications,list_alerts,get_reportиrun_query. - Вызовите
list_workspacesбез аргументов. - Выберите доступный публичный идентификатор дашборда.
- Выполните небольшой
run_queryс ограничением до 100 строк. - Проверьте, что результат соответствует правам пользователя.
Если подключение не работает, проверьте адрес /mcp, токен, срок его действия и доступность сервера. Не добавляйте токен в обращение в поддержку; передайте только время ошибки и обезличенное описание клиента.
Что дальше
Начните с быстрого старта, затем изучите работу с отчётами. Вопросы по доступам отправляйте администратору рабочего пространства.
Варианты MCP-примера
{
"query": "выручка",
"types": ["dashboard", "report"],
"limit": 20
}Authorization: Bearer <token>