Егор Урванов

MCP для ИИ-агентаКакую проблему решает и как поручить подключение агенту

MCP подключает агента к GitLab, Jira, Confluence и записям встреч. Какую проблему решает, как подключить за несколько минут и поручить это самому агенту, как экономит время и токены и почему агент меньше выдумывает.

MCP подключает агента к рабочим системам, и он читает факты из источника, а не из пересказа. Это легко и быстро: достаточно понять, какую проблему он решает, и поручить подключение самому агенту. Ниже: суть, подключение, что это даёт и какие права выдавать. Пример QA с MCP разобран в статье QA с агентом через MCP.

Что такое MCP

MCP — один общий разъём, как USB. Подключил агента к Jira или GitLab, и он сам берёт оттуда данные. Подробнее

На картинке два пути данных. В первом человек пересказывает задачу агенту, и детали теряются по дороге. Во втором агент читает саму систему через MCP и видит всё, что видит человек. MCP (Model Context Protocol) — открытый стандарт, который связывает ИИ-приложения с внешними системами. У агента есть MCP-клиент, у системы MCP-сервер, и сервер сообщает агенту, какие данные и действия доступны.

Пересказ или сама система
РУКАМИС АГЕНТОМJiraJira?ВыПересказАгентCtrl+CCtrl+VАгентВыАгент видит пересказАгент работает в самой Jira● модель, люди, системы, данные  ● агент и харнесс  ● риск, стоп, граница
Вывод
В этом примереАгент видит в Jira всё, что видит человек: саму задачу PAY-142, комментарии, историю изменений. Искать задачу и копировать её в диалог не нужно. Смежные задачи подтянет по просьбе. Может написать комментарий от вашего имени, создать задачу или сменить статус (после вашего подтверждения). При первом использовании должно быть «вау»: тогда всё настроено правильно. И это очень просто.
В общем случаеАгент смотрит шире человека: учитывает соседние задачи, статьи базы знаний, прошлые решения и находит нетривиальные ходы, которые по одной задаче не видны. Без MCP он знает только то, что ему вставили. Человек перестаёт быть курьером между окнами и остаётся проверяющим.
Что сделатьНачните с таск-трекера: это самый простой и быстрый старт. Как подключить Jira: смотрите ниже. Заодно посчитайте, сколько раз за день вы копируете текст в диалог: это список кандидатов на подключение.

Наш контекст и чужие

Наш контекст: всё, что агент видит сразу (диалог с агентом, файлы проекта). Другие контексты: всё остальное (GitLab, Jira, записи встреч, база знаний). Мост между ними — MCP: у агента MCP-клиент, у системы MCP-сервер.

НАШ КОНТЕКСТДРУГИЕ КОНТЕКСТЫДиалогФайлыХарнессагент и всё вокруг негоЛокальная машинаMCP-клиентMCP-серверGitLabКод и MRJiraЗадачи и требованияtldvЗаписи встречConfluenceБаза знанийИ другие● модель, люди, системы, данные  ● агент и харнесс

На картинке слева контекст агента: диалог с ним и файлы проекта, которые он видит сразу. Справа другие системы: GitLab, Jira, tldv с записями встреч, Confluence с базой знаний. Пока MCP не подключён, агент их не видит. Мост между ними состоит из двух частей: MCP-клиент у агента и MCP-сервер у системы.

Что такое контекст

Контекст — всё, что модель видит в данный момент. Чего нет в контексте, того агент не знает.

Контекст
LLMвидитокно контекстапромптдиалогфайлыданные системразмер окна считают в токенахза окномагент этого не знает● модель, люди, системы, данные  ● агент и харнесс  ● риск, стоп, границаМодель знает только то, что сейчас в окне контекста

Контекст можно представить как стол, на котором лежит всё, что модель видит прямо сейчас: сообщения диалога, открытые файлы, результаты вызовов. Чего на столе нет, того для модели не существует, пока это туда не положили. Поэтому главный вопрос при работе с агентом: что у него на столе.

Где лежит фактАгент видитЧто будет
Наш контекст: диалог, файлы проектасразуответ из данных
Чужой контекст: GitLab, Jira, записи встреччерез MCPагент сам забирает нужное
Нигде: в головах, в закрытой системенетдогадка вместо факта

Таблица показывает, что будет с фактом в зависимости от того, где он лежит. Факт в контексте агента (диалог, файлы проекта): агент отвечает по данным. Факт в другой системе (GitLab, Jira, записи встреч): агент заберёт его сам, но только через MCP. Факт нигде не записан (в головах людей, в закрытой системе): агент его не увидит и заменит догадкой. Отсюда практическое правило: записывайте решения туда, откуда агент может их взять.

Как агент забирает чужой контекст: ReAct

Агент работает по циклу ReAct: рассуждает, действует, читает результат и снова рассуждает. MCP — это шаг «действует»: результат вызова попадает в наш контекст.

Только рассуждениеLLMМысльМысльОтвет выдуманТолько действияДействиеДействиеДействиеБлуждаетReActLLMМысльДействиеНаблюдениеВерный ответ↻ снова мысль — с учётом наблюдения● модель, люди, системы, данные  ● агент и харнесс  ● риск, стоп, границаТолько рассуждение выдумывает, только действия блуждают, ReAct чередует их и приходит к ответу
Рассуждает«Нужны шаги бага PAY-142»
ДействуетВызывает MCP-сервер Jira
ЧитаетОтвет Jira попадает в контекст
Только рассуждаетЧужие контексты закрыты: модель выдумывает ответ.
Только действуетВызывает всё подряд без плана и тратит токены.
ЧередуетБерёт ровно то, чего не хватает, и отвечает по данным.

Пример цикла: агент рассуждает («нужны шаги бага PAY-142»), действует (вызывает MCP-сервер Jira), читает ответ (он попадает в контекст) и отвечает по данным. Три карточки показывают, что бывает, если цикл нарушен. Одни рассуждения дают выдуманный ответ, одни действия дают лишние вызовы и расход токенов, а чередование даёт ответ точно по данным.

Обоснование: у каждой части ответа есть опора

Ответ обоснован, когда каждая его часть получена из контекста. Такое соответствие без пустых мест называется эпиморфизмом.

данныеответэпиморфизм: у каждой части есть опорав данных пусто?нет опорымодель додумает — галлюцинация● модель, люди, системы, данные  ● агент и харнесс  ● риск, стоп, границаКаждая часть ответа получена из чего-то в данных; часть без опоры — пустое место для галлюцинации
Часть ответаОпора
Шаги воспроизведенияJira, заявка PAY-142
Где падает кодGitLab, файл и строка
Почему так решилиtldv, запись встречи

Таблица показывает проверку обоснованности на примере. Шаги воспроизведения берутся из заявки в Jira, место падения кода из GitLab, причина решения из записи встречи. Если у части ответа такой опоры нет, её перепроверяют вручную.

Галлюцинация: часть без опоры

Галлюцинация — уверенная догадка на месте, где опоры нет. Выглядит так же гладко, как ответ из данных. Подробно и с советами Anthropic — в разделе про галлюцинации ниже.

без источникаданных нетагент?уверенная выдумкафункции, ссылки, факты, которых нетс источником и проверкойисточникпроверкаответ с опорой● модель, люди, системы, данные  ● агент и харнесс  ● риск, стоп, границаБез опоры в источнике модель уверенно выдумывает; источник и проверка возвращают опору

Галлюцинация выглядит так же гладко, как ответ из данных, поэтому по тону их не различить. Отличает их только опора: она есть или её нет.

Почему именно эти

GitLabКод и запросы на слияние: агент читает настоящий код
Без него: Агент додумывает код по другим контекстам и часто ошибается, так появляются галлюцинации; человек вручную копирует файлы и изменения в диалог
Официальный MCPПодробнее
JiraЗадачи и требования: что просили на самом деле
Без него: Копировать приходится много, а история изменений пропадает
Официальный MCP AtlassianПодробнее
ConfluenceБаза знаний: правила, спеки, решения
Без него: Пропадает привычная всем разработчикам визуализация и отображение требований. Агента важно ограничивать и не отпускать далеко в сторону: старые требования могут устареть. Фактическую картину заставляйте смотреть в GitLab
Тот же MCP AtlassianПодробнее
tldvЗаписи встреч: решения, которых нет в тексте. По опыту автора доступ появляется через 5–10 минут после встречи, и сразу можно писать митинг-ноутсы и требования. Слабее корпоративная версия, контроль доступа и MCP, зато выше качество переводов и транскриптов
Без него: Решения остаются в головах, а митинг-ноутсы и требования пишутся по памяти спустя часы и с ошибками
Запись и открытый APIПодробнее
GranolaТоже записи встреч. MCP есть, но по опыту автора слегка уступает tldv: в русский текст проскакивают испанские слова, это портит пользовательский опыт и вызывает сопротивление при внедрении. Из документации: только активное рабочее пространство, на бесплатном тарифе заметки за 30 дней
Без него: То же, что без tldv: решения со встреч теряются
MCPПодробнее

Эти системы выбраны потому, что в них лежат четыре вида фактов: код, задачи, правила и решения со встреч. В каждой строке указано, что пропадёт без подключения. Для Confluence есть оговорка: его подключают, только если страницы вылизаны (есть владелец и дата проверки), а фактическую картину агент сверяет с кодом в GitLab. Ещё надёжнее хранить требования и спеки в Git: там у правок есть автор, дата и причина.

Вывод
В этом примереВы спрашиваете про баг, а шагов в диалоге нет. Агент ищет в файлах проекта, Jira ему закрыта, и он пишет шаги сам: уверенно, гладко, из головы. Вы идёте по несуществующему пути.
В общем случаеАгент редко отвечает «не знаю». Если ответа нет в нашем контексте, а чужие закрыты, он достраивает недостающее по общим закономерностям и подаёт как факт. Каждый подключённый источник убирает место для выдумки.
Что сделатьКаждый раз, когда агент галлюцинирует, найдите контекст, где лежит ответ, и дайте агенту туда доступ. Начните с последнего вопроса, на который он ответил выдумкой.

Как подключить Jira

Агент и его оболочка (харнесс) умеют подключаться сами. Инструкции: Atlassian и Claude Code.

Вручную или поручить
РУКАМИС АГЕНТОМ123JiraВыДобавитьВойтиПроверить«подключи Jira»входВыАгентВручную: три действияАгент делает сам, вы входите в браузере● модель, люди, системы, данные  ● агент и харнесс  ● риск, стоп, граница

Картинка сравнивает два способа. Руками: вы ищете инструкцию, вводите команды, входите в систему и проверяете результат. Поручить агенту: вы говорите одну фразу, агент подключает Jira сам, а вам остаётся только войти через браузер.

Скажите агенту

Подключи MCP-сервер Jira по инструкции Atlassian и проверь на задаче PAY-142: прочитай её и перескажи комментарии.

Команды агент запустит сам. От вас нужен только вход через браузер (OAuth): пароль агенту не передаётся. Если агент просит сделать это вас.

Что произойдёт

  1. 1
    Агент подключит Jira
    одной командой, вы ничего не вводите
  2. 2
    Откроется страница Jira — главный шаг
    там вам предложат дать агенту доступ к Jira; вы входите и подтверждаете, пароль агент не видит
  3. 3
    Агент прочитает PAY-142
    откроет задачу с комментариями и перескажет их

Главный шаг здесь второй: доступ выдаёте вы сами, входом через браузер. Агент не видит ваш пароль и получает только те права, которые вы подтвердили на странице Jira. Первый и третий шаги агент делает сам.

Только чтение. Выбрать доступ только на чтение на этой странице получится не всегда. Это безопасно: агент склонен читать и почти ничего не пишет, пока вы сами не попросите.

Как это делается рукамиmcp addAtlassianJira1Добавить сервер2Войти через браузер3Проверить на тестовой задаче● модель, люди, системы, данные  ● агент и харнесс  ● риск, стоп, граница
claude mcp add --transport http atlassian https://mcp.atlassian.com/v2/mcp
/mcp               # войти через браузер (OAuth)
claude mcp list     # статус: подключён / нужен вход / ошибка
Localвы · этот проектProjectвся командаUserвы · все проекты● модель, люди, системы, данные  ● агент и харнесс

Где хранится настройка и кто видит сервер: Области MCP в Claude Code.

Руками это три команды: добавить сервер, войти через браузер командой /mcp и проверить статус. Статус бывает трёх видов: подключён, нужен вход или ошибка. Схема выше показывает, как это выглядит по шагам, а ниже в областях сказано, где хранится настройка.

Вывод
В этом примереАгент сам запускает команды и проверяет подключение, задача PAY-142 читается целиком вместе с комментариями. Это и есть момент «вау».
В общем случаеПодключение занимает минуты. Область «Project» кладёт настройку в репозиторий, и вся команда получает те же серверы. Все три области разобраны в статье Области MCP в Claude Code.
Что сделатьПоручите подключение агенту и сверьте его ответ с тем, что видите в Jira сами.

Экономия

Экономия приходит от точности. Неточный запрос даёт неточный ответ, правка порождает новый запрос, и ошибки накапливаются от шага к шагу; при ручном копировании и пересказе человек вносит такие неточности незаметно. Агент берёт данные прямо из источника, поэтому цепочка короче и ошибок меньше. Платой становится рост расхода токенов на дистанции, и для него есть ограничители.

Накопление ошибок: руками или из источника
РУКАМИС АГЕНТОМ!!!!!!ЗапросОтветПравкаОтветЗапросАгентОтвет1 заход вместо 33 захода, ошибок всё большеНеточный запрос: ошибки копятсяТочный запрос: ответ из источникаОБЪЁМ НАКОПЛЕННЫХ ОШИБОК (СХЕМА УСЛОВНАЯ)1шаг 13шаг 26шаг 31шаг 1шаг 2шаг 3сэкономлено● модель, люди, системы, данные  ● агент и харнесс  ● риск, стоп, граница

Слева путь с ручным копированием: каждый шаг добавляет неточность, и к третьему заходу ошибки накопились. Справа путь из источника: один точный запрос и один ответ, без цепочки пересказов.

Неточные запросы и ответыПересказ и ручное копирование теряют детали, поэтому запрос выходит неточным, а ответ на него тоже.
Накопление ошибокКаждая правка рождает новый запрос с новой неточностью: ошибки складываются от шага к шагу.
Цена: токеныШагов становится меньше, но на дистанции расход токенов растёт; для него есть лимиты.

Ограничители расхода

Ответ подключённой системы попадает в диалог и занимает там место, а место измеряется в токенах. Поэтому Claude Code следит за размером ответа и ставит два порога.

До 10 000ответ идёт в диалог как есть10 000 – 25 000Claude Code предупреждает,что ответ большойБольше 25 000ответ сохраняется в файл,в диалоге только путь к нему10 00025 0000токенов в ответе

Шкала показывает размер ответа системы в токенах. До 10 000 токенов ответ проходит без замечаний. После 10 000 Claude Code предупреждает, что ответ большой. После 25 000 ответ не попадает в диалог целиком и сохраняется в файл.

Порог 25 000 можно поднять настройкой окружения MAX_MCP_OUTPUT_TOKENS, а порог предупреждения фиксирован.

Подробнее.

Вывод
В этом примереТри захода с растущими ошибками превращаются в один заход по точному запросу.
В общем случаеЭкономия состоит в отсутствии лишних кругов: точный запрос и ответ из источника не копят ошибки. Точные цифры дают только замеры на вашей работе.
Про лимитыЧем длиннее работа, тем больше токенов уходит, поэтому длинные ответы системы Claude Code ограничивает: предупреждает после 10 000 токенов и сохраняет в файл после 25 000.
Что сделатьЗамерьте на одной задаче две вещи: сколько минут и правок уходит на ручной перенос и сколько токенов тратит агент.

Меньше галлюцинаций

Галлюцинация: модель выдаёт текст, который выглядит верно, но неверен или не следует из данных. Ведёт она себя одинаково уверенно в двух случаях. Подробнее

Контекста малоМодель достраивает недостающее сама и не говорит, что это её догадка.
Контекст естьМодель ссылается на него бодро и уверенно, поэтому ссылку стоит открывать и сверять.
Где данных не хватает
«Какие шаги у бага PAY-142?»вопросищет??ДанныеJira закрытаОтветАгентВыЕсть в данныхответ из источникаНе хватаетагент додумывает● модель, люди, системы, данные  ● агент и харнесс  ● риск, стоп, граница

Ответ агента сопоставляется с данными: у каждой его части должна быть опора. В математике такое соответствие называется эпиморфизмом. Части без опоры модель заполняет догадкой, и они выглядят так же уверенно.

Что это значит на практике. Если системы не подключены, агент заполняет недостающее догадкой и пишет её тем же уверенным тоном: по тексту догадку от факта не отличить. Если системы подключены, на месте догадки стоят реальные данные со ссылкой, и проверка занимает один клик. Три совета Anthropic работают вместе: разрешить агенту сказать «не знаю», когда данных нет, просить опираться на дословный текст источника и требовать к каждому утверждению ссылку.

Что рекомендует Anthropic

«Не знаю»Разрешить признавать нехватку данных
ЦитатаОпираться на дословный текст источника
СсылкаК каждому утверждению свой источник

Три совета Anthropic закрывают дырки в данных. Разрешить «не знаю»: иначе модель заполнит пробел догадкой. Опираться на цитату: дословный текст источника можно проверить. Давать ссылку к каждому утверждению: её можно открыть и сверить.

Вывод
В этом примереJira закрыта, поэтому две части ответа агент додумал. Когда Jira подключена, на их месте стоят данные из заявки PAY-142 со ссылкой, и вы открываете её одним кликом.
В общем случаеДырки в данных агент заполняет догадкой и не говорит об этом. Три совета Anthropic закрывают их: разрешить «не знаю», опереться на цитату, дать ссылку на источник. Галлюцинации это не убирает полностью, проверка человеком остаётся.
Что сделатьТребуйте от агента источник к каждому факту: система, номер, поле. Как это делать в требованиях и протоколах встреч, в отдельной статье.

Риски и правила

В большинстве случаев защита уже встроена в устройство MCP в Claude Code. Остаётся выбрать доверенные серверы и не выдавать лишних прав. Подробнее

Стоит помнить о трёх рисках. Лишние права: сервер, которому выдали запись, может изменить или удалить данные, поэтому права выдают по минимуму. Недоверенный сервер: MCP-сервер сторонних авторов получает доступ к тому, что вы ему открыли, поэтому подключайте проверенные. Текст из систем: задача или комментарий могут содержать фразу, адресованную агенту, об этом подробно в статье про data plane и control plane.

РазрешениеClaude Code спрашивает разрешение, прежде чем использовать инструмент сервера.
Проектные серверыСерверы из файла .mcp.json в проекте нужно одобрить до первого использования.
ПраваДля серверов со входом можно ограничить, какие права они запрашивают.
Лестница прав
JiraЧтениеЗапись + подтверждениеЗапись без подтверждения● модель, люди, системы, данные  ● агент и харнесс  ● риск, стоп, граница

Лестница на картинке показывает порядок выдачи прав. Сначала чтение: агент только смотрит. Потом запись с подтверждением: агент предлагает, а человек одобряет каждую запись. Запись без подтверждения откладывается, пока доверие не накоплено. Поднимайтесь на одну ступень, только когда убедились, что предыдущая работает.

Вывод
В этом примереАгент читает прод, пишет только в тестовую таблицу и каждую запись показывает человеку.
В общем случаеПрава растут по лестнице: сначала чтение, потом запись с подтверждением. Запись без подтверждения откладывается до накопленного доверия.
Что сделатьВыдайте новому серверу только чтение и повысьте права после недели проверенной работы.

С чего начать

Начинать лучше с малого: один источник, один человек, который проверяет, и режим только чтения. Подключите Jira, задайте агенту пять вопросов про реальные задачи и сверьте ответы с тем, что видите сами. Так вы поймёте, насколько агенту можно доверять, до того как давать ему права на запись.

JiraJira1Один сервер на чтение25 запросов с проверкой руками3Запись с подтверждением● модель, люди, системы, данные  ● агент и харнесс
Вывод
В этом примереНачните с Jira на чтение и сверьте пять ответов агента с тем, что видите сами.
В общем случаеОдин источник, один проверяющий, один шаг прав за раз.
Что сделатьПодключите первый сервер сегодня и запишите, что агент прочитал верно, а что нет.

Другие кейсы

Один подход работает в разных задачах: агент читает источники, человек проверяет результат.

стендSentryGrafanaQA: воспроизвести баг →Отчёты: данные из базы →Инциденты: Sentry и Grafana →● модель, люди, системы, данные  ● агент и харнесс  ● риск, стоп, граница
КейсИсточникиЧто делает агентЧто проверяет человек
QAJira, стенд, браузервоспроизводит баг, сжимает путь, пишет отчётшаги руками на стенде
Отчёты и аналитикабаза, таблицы, документысчитает запросами, собирает сводкуодно число другим способом
ИнцидентыSentry, Grafanaсопоставляет ошибки, метрики и время релизагипотезу по графикам и событиям

Как читать таблицу. В каждой строке порядок один: агент читает источники, делает основную работу и приносит результат, а человек проверяет его одним коротким действием. В QA шаги отчёта повторяют руками на стенде. В аналитике одно число пересчитывают другим способом. В инцидентах гипотезу сверяют с графиками и событиями. Подробности в статьях по ссылкам.

Задача PAY-142 выдумана для примера.
© 2026 Егор Урванов