Подключение MCP
Как дать ChatGPT, Claude или Cursor доступ к отчётам ваших проектов: адрес сервера, вход, выбор проектов, отзыв и лимиты.
Содержание страницы
Что это
MCP — открытый протокол, по которому ИИ-ассистент вызывает «инструменты» во внешнем сервисе. Наш сервер отдаёт ассистенту отчёты ваших проектов только на чтение: он может спросить про видимость, конкурентов, источники, тональность и изменения прогона, но ничего не меняет и не запускает.
- Адрес сервера — https://api.tarnowsky.ru/mcp. Транспорт — Streamable HTTP; ответы приходят обычным JSON, отдельного потока событий нет.
- Доступ выдаётся персонально агентствам и корпоративным аккаунтам — так же, как к публичному API. Раздел «Интеграции» в кабинете показывает адрес, шаги подключения и список подключённых приложений.
- Есть два способа войти: через ваш аккаунт (OAuth) для ChatGPT и Claude и ключ API для Cursor и скриптов.
ChatGPT и Claude: вход через аккаунт
- ChatGPT
«Настройки» → «Приложения и коннекторы» → «Создать». Вставьте адрес сервера, тип входа — OAuth.
- Claude
«Настройки» → «Коннекторы» → «Добавить свой коннектор». Вставьте адрес сервера и нажмите «Подключить».
- Страница согласия
Приложение откроет страницу нашего кабинета. Войдите в аккаунт, если вас попросят, отметьте проекты и нажмите «Разрешить».
- Проверка
В разделе «Интеграции» подключение появится в списке «Подключённые приложения». После первого вызова ассистента там же видно время последнего обращения.
Что вы увидите на странице согласия:
- Адрес, на который вернётся приложение после вашего решения. Смотрите на него внимательнее, чем на название: имя приложения при подключении задаёт само приложение, а адрес возврата подделать труднее.
- Строку «Проверенное приложение: <название>» для известных ассистентов или предупреждение «Это приложение не проверено»: разрешайте доступ такому приложению, только если сами начали подключение и доверяете адресу возврата.
- Список проектов, из которого нужно отметить хотя бы один. Приложение получит доступ только к отмеченным, и только в пределах ваших прав: чужие проекты в список не попадают.
- Что будет доступно: «отчёты и показатели» (разрешение reports:read) и, если приложение запросило, «фрагменты ответов моделей» (answers:read) с отдельным предупреждением, что это недоверенный текст.
- Кнопки «Разрешить» и «Отклонить». Ссылка на согласие одноразовая и действует недолго; если она устарела, начните подключение в приложении заново.
В разделе «Интеграции» нажмите «Отключить» у приложения: оно потеряет доступ сразу, и подключение придётся повторить. Доступ приложений также закрывается при смене пароля и при выходе из аккаунта на всех устройствах. Сам доступ короткий: токен действует 15 минут, приложение продлевает его само, пока подключение не отозвано и приложением пользуются; после 90 дней без обращений подключение придётся повторить.
Cursor и скрипты: ключ API
Для программ, где нет входа через браузер, используйте ключ API организации (как его выпустить — на странице «Публичный API»). Ключ передаётся как Bearer-токен тем же заголовком Authorization. В Cursor создайте запись в файле mcp.json и подставьте свой ключ:
- { "mcpServers": { "tarnowsky": { "url": "https://api.tarnowsky.ru/mcp", "headers": { "Authorization": "Bearer <ключ>" } } } }
Перезапустите Cursor. В файле ключ хранится открытым текстом, поэтому не добавляйте mcp.json с настоящим ключом в репозиторий. Кнопка «Проверить подключение» в разделе «Интеграции» покажет время последнего обращения и то, через какой ключ или приложение оно пришло.
Что доступно ассистенту
Инструменты аналитики — те же, что у REST, с теми же описаниями. Все они только читают и помечены как безопасные для чтения.
| Инструмент | Что даёт |
|---|---|
| list_projects, list_runs | Проекты, доступные подключению, и история готовых прогонов |
| get_project_card | Карточка проекта: бренд, рынок, срезы, модели, итоговая видимость |
| get_visibility | Видимость и доля голоса по моделям, типам вопросов, срезам и локациям |
| get_run_changes | Что изменилось с прошлого прогона |
| get_prompt_matrix | Вопросы прогона и результат по каждому, постранично |
| get_competitors | Кого называют рядом и вместо бренда |
| get_tone | Тональность ответов тремя слоями |
| get_sources | Какие сайты и площадки цитируют модели |
| get_brand_facts | Что модели утверждают о бренде и вердикт сверки |
| get_data_quality | Надёжность замера: база, шум, пропуски |
| get_answer_excerpts | Фрагменты ответов моделей — только если выдано разрешение answers:read; текст недоверенный |
- Ресурсы (resources): карточка каждого доступного проекта по адресу card://<id проекта> и две статьи этой базы знаний — «Правила продвижения в GEO» и «Как читать отчёт и превращать его в план».
- Подготовленные сценарии (prompts): девять стартовых вопросов — те же сценарии, что предлагает помощник проекта в кабинете («Почему изменилась видимость?», «Кого советуют вместо нас?», «Что изменилось с прошлого прогона?» и другие). У сценария есть необязательный аргумент — id проекта.
- Права подключения — это пересечение ваших прав на проекты и проектов, отмеченных при согласии (или проектов ключа). Чужой или несуществующий проект даёт один и тот же ответ «не найден».
- Отчёт, закрытый тарифом организации, не отдаётся: инструмент вернёт ошибку entitlement_required.
Лимиты и безопасность
- Лимит вызовов — 120 единиц в минуту на аккаунт; вес вызова инструмента такой же, как у запроса к REST. Вызовы через MCP идут в общий бюджет организации вместе с API: месячная квота, суточный и минутный бюджет общие, обойти лимиты API через MCP нельзя.
- Результат одного вызова ограничен по размеру (около 25 тысяч знаков). Длинную выдачу сервер сокращает и помечает, а у постраничных инструментов продолжение берётся по курсору.
- Первый вызов с новым сочетанием параметров может потребовать сборки отчёта: инструмент ответит «идёт сборка» и подскажет, через сколько секунд повторить.
- Сервер проверяет заголовок Origin: запросы из браузера допускаются только от известных приложений. Cursor и серверные клиенты заголовка не шлют и проверку проходят по токену.
- Если токен не подошёл, сервер отвечает 401 или 403 с подсказкой, где взять доступ; при временной недоступности — 503 с Retry-After, а при исчерпании лимита — 429.
- Если у вашей организации не включено право «Интеграции», сервер отвечает 403 entitlement_required, а страница согласия сообщает, что интеграции не включены: напишите в чат поддержки.
- Поля с текстом нейросетей и сайтов-источников помечены как недоверенные. Не давайте ассистенту выполнять инструкции, которые найдены внутри таких фрагментов: это данные для чтения.