Подключение Cortex к ИИ-ассистенту через MCP
Введение
MCP (Model Context Protocol) – это открытый протокол, который позволяет подключать внешних ИИ-ассистентов, таких как, например, Cursor или Claude Code, напрямую к платформе Visiology. Например, вы задаёте ассистенту вопрос на естественном языке: «Какая выручка за март по Москве?». Ассистент самостоятельно находит нужный дашборд, применяет фильтры, считывает данные в рамках ваших прав доступа и возвращает ответ.
Данное руководство предназначено для конечного пользователя. Предполагается, что администратор уже развернул Cortex и предоставил вам URL MCP-сервера (например, https://my-visiology/v3/mcp).
Подготовка к работе
Получение данных от администратора
Для подключения вам понадобятся следующие данные:
URL MCP-сервера в формате
https://<адрес_платформы>/v3/mcp.Учётная запись в Visiology (логин и пароль). При первом подключении браузер запросит авторизацию.
Проверка подключения
Способ проверки зависит от вашего MCP-клиента:
Claude Code: В поле ввода наберите символ
/. В выпадающем меню должны появиться команды с префиксом/visiology-cortex. Выберите командуauthenticate. Ассистент вернёт вашuser_id,nameи параметры OAuth, что подтвердит успешную связь.Cursor: Перейдите в
Settings→MCP Servers. Рядом сvisiology-cortexдолжна загореться зелёная точка, что означает успешное подключение и загрузку доступных инструментов. Slash-команды в Cursor также начинаются с префикса/visiology-cortex, но их поддержка может быть частичной.
Примечание: Если ваш администратор назвал MCP-сервер иначе (неvisiology-cortex), то префикс slash-команд будет соответствующим.
Настройка самоподписанных сертификатов
В корпоративных установках платформа часто работает по защищённому соединению с собственным сертификатом. В этом случае клиент не сможет подключиться и покажет ошибку про «недоверенный сертификат».
Чтобы это исправить:
Получите файл сертификата.
Запросите у администратора платформы файл сертификата (с расширением.pemили.crt) и сохраните его на компьютере, например в свою домашнюю папку.Укажите путь к сертификату.
Windows – откройте PowerShell и выполните следующую команду (подставив свой путь к файлу):setx NODE_EXTRA_CA_CERTS "C:\Users\ВашеИмя\visiology-ca.pem"После этого закройте и снова откройте терминал или приложение MCP-сервера - иначе изменение не подхватится.
Linux / macOS – добавьте строку в файл~/.bashrc(или~/.zshrc):export NODE_EXTRA_CA_CERTS="$HOME/visiology-ca.pem"Затем перезапустите терминал.
Настройка подключений в различных MCP-клиентах
Cursor
Перейдите в меню File > Preferences > Cursor Settings > Tools & MCPs.
Нажмите
Add new MCP serverи укажите следующую конфигурацию:{ "visiology-cortex": { "type": "streamable-http", "url": "https://<адрес_платформы>/v3/mcp" } }После добавления Cursor автоматически перечитает конфигурацию.
Claude Code
Выполните следующую команду:
claude mcp add --transport http visiology-cortex <https://<platform-host>>/v3/mcpCodex
Выполните следующую команду:
codex mcp add visiology-cortex --url <https://<platform-host>>/v3/mcpДругой MCP-клиент
Если ваш клиент поддерживает спецификацию MCP и транспорт streamable-http, просто укажите URL https://<адрес_платформы>/v3/mcp. Аутентификация будет выполнена автоматически по протоколу OAuth 2.1 через Keycloak: при первом запросе откроется браузер для входа.
Авторизация и обновление токенов
Как происходит авторизация
Cortex MCP-сервер использует стандартный OAuth-механизм, встроенный в протокол MCP. Процесс инициируется вашим MCP-клиентом (ИИ-ассистентом) и выглядит так:
MCP-клиент формирует специальную ссылку для авторизации.
Вам нужно открыть эту ссылку в браузере (клиент может предложить сделать это сам, например, Cursor показывает кнопку «Authorize», а Claude выводит URL в консоль или диалог).
Вы проходите авторизацию.
После успешного входа браузер перенаправляется обратно на локальный адрес, и MCP-клиент получает токены доступа.
Важно: Для корректной работы авторизации в настройках клиента MCP должен быть указан корректный путь до сервера ваш-сервер/v3/mcp.
Обновление токена
После успешной авторизации MCP-клиент автоматически обновляет токен в течение всей сессии. Вам не нужно предпринимать никаких дополнительных действий – refresh-токен используется прозрачно.
Когда требуется повторная авторизация
Повторная авторизация потребуется только в одном случае: если сессия на сервере полностью истекла (например, после длительного перерыва в работе).
MCP-сервер предупредит об этом при первой попытке вызвать какой-либо инструмент – вы увидите сообщение о необходимости авторизоваться заново. Просто повторите шаги из раздела «Как происходит авторизация».
Быстрые команды через /
Если ассистент неверно интерпретирует ваш запрос и использует не тот инструмент (например, отвечает «не могу» на вопрос о дашборде), вы можете вызвать нужный инструмент напрямую.
Чтобы использовать прямую команду:
Наберите символ
/в поле ввода чата.В выпадающем меню появятся команды с префиксом
/visiology-cortex(если сервер назван иначе, префикс будет соответствующим).Выберите нужную команду из списка. Клиент сам подставит правильный формат и отобразит поля для заполнения аргументов.
Доступные команды Cortex:
Команда | Slash-команда | Действие |
|---|---|---|
Основные (вызывают внутренние команды, которые работают на модели, к которой подключена Visiology Cortex) | ||
|
| Аналитический вопрос по данным (Cortex сам найдёт дашборд). |
|
| Вопросы по документации. |
|
| Консультация по DAX-мерам. |
|
| Консультация по JS-коду виджета. |
|
| Консультация по SQL для Self-Service ETL. |
|
| Консультация по оформлению виджета. |
Дополнительные (работают с моделью, которая подключена к вашему ИИ-ассистенту) | ||
|
| Семантический поиск дашборда по описанию. |
После открытия сессии дашборда | ||
|
| Открыть дашборд для ручной работы. |
| – | Применить фильтр по виджету. |
| – | Применить date-фильтр (LLM вызывает сам). |
| – | Прочитать отфильтрованные данные виджета (LLM вызывает сам). |
| – | Закрыть сессию в браузере (LLM вызывает сам). |
Диагностика | ||
| – | Проверка авторизации. |
Инструменты get_widget_data, set_date_filter и close_dashboard вызываются LLM автоматически, исходя из контекста, и не вынесены в быстрые команды.
Рекомендации по использованию с несколькими MCP-серверами
Если у вас одновременно подключено несколько MCP-серверов (например, Slack, Jira, GitHub и Cortex), ассистент может некорректно направлять запросы. Например, вопрос «Какая выручка за март?» может быть отправлен в Jira.
Чтобы избежать этого, добавьте в ассистента системную инструкцию, которая явно указывает, что вопросы о BI, данных и дашбордах относятся к Cortex.
Где задать инструкцию
Клиент | Расположение |
|---|---|
Cursor |
|
Claude Code | Файл |
Кастомный клиент | Параметр |
Текст инструкции
У тебя подключён Visiology Cortex — BI-система компании. Когда пользователь
задаёт вопрос про:
- данные, отчёты, показатели, метрики, KPI
- выручку, продажи, план/факт, маржинальность
- дашборды или листы Visiology (например «дашборд ДСТ», «лист продажи»)
- DAX, меры, ColumnChart/Highcharts/DataGrid, JS-код виджета
- настройку платформы Visiology
— ТЫ ДОЛЖЕН использовать инструменты Cortex MCP
(ask_analytics, list_dashboards, ask_dax_measure, ask_widget_code,
ask_documentation), а не инструменты других подключённых MCP-серверов.
Правила выбора инструмента внутри Cortex:
1. Простой аналитический вопрос («Какая выручка за март?», «Сравни Москва vs СПб»)
→ ask_analytics. Он сам найдёт дашборд, применит фильтры и ответит.
2. Поиск дашборда по описанию («Найди дашборд по продажам»)
→ list_dashboards. Возвращает ОДИН самый релевантный.
3. Ручная работа с дашбордом (пробовать фильтры вручную, читать сырые строки)
→ open_dashboard → set_filter / set_date_filter → get_widget_data → close_dashboard.
Медленнее (~30с на открытие), но полный контроль.
4. set_filter / set_date_filter / get_widget_data работают только в уже
открытой сессии open_dashboard.
5. «Напиши DAX…» → ask_dax_measure
«Как сделать drill-down в Highcharts?» → ask_widget_code (укажи widget_type)
«Как настроить роли?» → ask_documentation
Если нет явного указания на ручное управление — предпочитай ask_analytics:
быстрее и покрывает большинство сценариев.
Формат ответа мне: значение + единицы + период + применённые фильтры + источник
(какой дашборд / лист). Никогда не додумывай цифры — только то, что получено
от инструмента. Если данных недостаточно — скажи явно, чего не хватает и
какой следующий шаг нужен.Рекомендации по формулировке запросов
Корректная формулировка запроса значительно повышает точность ответа ассистента.
Хорошие формулировки
Формулировка | Почему работает |
|---|---|
«Какая выручка за март 2026 по филиалу Москва?» | Чётко указан период и срез данных. |
«Сравни выручку Q1 2026 vs Q1 2025 по регионам» | Есть сравнение и явные периоды. |
«Открой дашборд продаж и покажи первые 10 строк с фильтром Москва» | Описан явный рабочий процесс, агенту понятно, что нужна цепочка действий. |
«Покажи дашборд с потребностью в технике» | Агент вызовет |
«Как написать DAX-меру для нарастающего итога по продажам?» | Запрос явно направляет в |
Проблемные формулировки
Формулировка | Почему не сработает |
|---|---|
«Расскажи всё, что знаешь о продажах» | Слишком широко, непонятно, какой срез данных нужен. |
«Посчитай за прошлый месяц» | «Прошлый» – неоднозначное понятие. Всегда указывайте конкретные даты. |
«Сделай дашборд про X» | Cortex не создаёт дашборды, а только читает данные. |
«Запомни этот отчёт для следующего раза» | Cortex не хранит информацию между сессиями. |
Диагностика неисправностей
Перед обращением к администратору пройдитесь по этой таблице:
Симптом | Что проверить |
|---|---|
Браузер не открывается при первом запросе | Проверьте URL в конфигурации. Откройте в браузере |
Долгое открытие браузера или зависание | Обычно Keycloak отвечает за 1–2 секунды. Если задержка заметно дольше — возможна сетевая задержка до платформы. |
Браузер открылся, Keycloak отвечает | На стенде что-то пошло не так с автоматическим созданием клиента |
Открылся браузер с Keycloak, но авторизация не проходит | Проверьте правильность логина и пароля. Попробуйте зайти на портал Visiology с теми же учётными данными. |
Авторизация прошла, но ассистент «не видит» Cortex | Проверьте URL в конфигурации клиента и индикатор подключения (в Cursor: зелёная точка в |
Ассистент возвращает «нет доступа к дашборду» | У вашего пользователя в Visiology нет прав на этот дашборд. Cortex соблюдает политики контроля доступа (ACL) платформы. |
Вопрос «Какая выручка?» направляется в Slack/Jira, а не в Cortex | Добавьте системную инструкцию (см. раздел «Рекомендации по использованию с несколькими MCP-серверами») и перезапустите чат. |
На аналитический вопрос получен пустой ответ или сообщение «не нашёл данных» | Уточните период, название дашборда или показателя. Часто помогает явное указание, например: «в дашборде ДСТ». |
Сессия обрывается через 30 минут простоя | MCP-сервер рекламирует параметр |
Любой запрос отвечает ошибкой | У вашего пользователя в Visiology выключен доступ к Cortex (на уровне пользователя или группы). Обратитесь к администратору – он включит доступ в панели администратора Visiology. |
Любой запрос отвечает | Превышен лимит запросов на пользователя:
|
Если перечисленные действия не помогли решить проблему, обратитесь к администратору Visiology. Технические детали для администратора приведены ниже.
Редкий сценарий: кастомный клиент на MCP SDK, которому требуется программно передать client_id. В этом случае используйте значение visiology_mcp_client. Это публичный клиент (token_endpoint_auth_method: none) с PKCE S256.
Ограничения и особенности
Cortex только читает данные: Cortex не создаёт и не изменяет дашборды, не меняет модель данных и не загружает новые источники.
Соблюдение прав доступа: Все запросы выполняются строго в рамках ваших прав доступа. Если у вас нет прав на дашборд, Cortex не сможет его отобразить или считать данные.
Ограничение на количество одновременных сессий: Вы можете открыть не более 5 дашбордов в браузерных сессиях одновременно.
Таймаут сессии: Сессия с открытым дашбордом автоматически закрывается после 5 минут бездействия.
Проверяемость данных: Ассистент никогда не «додумывает» цифры. Любое число в ответе всегда получено из конкретного виджета конкретного дашборда, и источник данных указывается в ответе.
Нужна дополнительная помощь?
Смотрите также
Параметры config.json для MCP-сервера
Visiology Cortex