В мае я писал о том, что эх вот было бы неплохо попробовать вайбкодинг на работе в связке с MCP Confluence, где лежит документация по проекту. Кажется, что очень удобно совместить актуальные задачи, требования, тестовые сценарии и код в едином контексте, а потом в режиме чата просить доработать бекенд по изменениям в требованиях или написать новые тесты. Не зря же мы столько документируем на работе!
И пару дней назад мне, наконец, удалось! И не где-нибудь, а в кровавом энтерпрайзе Сбера и без миллиарда согласований 👀
Если вы не знакомы с понятием MCP, то это по сути прослойка между привычным API и языковой моделью. С помощью нее можно на естественном языке получать данные и исполнять команды точно также, как если бы вы это делали программно. Главная задача MCP - отдать понятное для LLM описание имеющихся инструментов (по сути API эндпоинтов), а потом перенаправить вызов этих инструментов от LLM оригинальному сервису по, например, REST API
В Сбере большинство внешних ресурсов не открываются с рабочих устройств, поэтому использование внешних LLM и других привычных инструментов довольно затруднительно. Но зато доступен GigaChat, и на том спасибо. Будем пользоваться тем, что есть, и прикручивать свои костыли
1. Базовый минимум - выкурчиваем вайбы для кодинга
Что понадобилось:
🔵Чуть адаптировать Proxy до GigaChat, который работает в режиме совместимости с OpenAI API, чтобы ходить бесплатно к нему по сертификатам
🔵Заставить Roo Code (аналог Cursor) поверить, что перед ним ChatGPT, а не GigaChat
Roo Code запустился, в целом, уже было очень классно - вайбкодинг на рабочем компе получили. Да, не такой вайбовый, как на личном компе, но зато 🤑бесплатновый! 🤑
2. Привлекательный оптимум - общаемся с рабочей документацией и задачками
Следующий вызов - пообщаться с актуальной документацией по проекту и с задачами в таск-трекере. Для этого нужно было поднять MCP сервер, который умел бы взаимодействовать со Сберовскими сервисами. А дальше два больших открытия для меня за последние дни:
🔵Большинство MCP серверов работают локально. Да, их можно развернуть на удаленном сервере, но оказалось, что в большинстве случаев можно и без этого обойтись
🔵Если мы работаем с локальным сервером, то можно не получать сервисный токен для работы с Confluence, Jira, а работать с пользовательским. Оказывается, оба этих продукта поддерживают авторизацию по API с обычным логином/паролем. И это очень хорошо сочетается с локальным MCP
На гитхабе есть несколько MCP для Jira, Confluence, написанных на разных языках. Но все они покрывают разные методы, а мне хотелось бы максимально возможного покрытия. Не беда - взяли три проекта, попросили Cursor (GigaChat мы такое не доверяем пока) переписать в едином стиле, объединив их, и через 15 минут у нас самый крупный MCP по Jira, Confluence.
3. Роскошный максимум - дополняем MCP новыми инструментами по Swagger
А сможем ли расширить сценарии работы MCP еще и до написания QA тестов? Ну, скажем, получили документацию по продукту, а потом сгенерировали кейсы в рамках одного чата. Для тест кейсов у нас используется Zephyr - плагин к Jira. MCP-серверов к нашей версии Zephyr я не нашел, но нашел очень хорошо описанный Swagger (OpenAPI). Ждем 5 минут, и получаем +20 инструментов, которые уже можно вызывать с помощью LLM. Вставляем команду для запуска MCP в RooCode и получаем швейцарский нож
Теперь будем тестировать в команде связки, с которыми можно работать таким образом. Удачными сценариями поделюсь с вами!
P.S. Мой доработанный MCP оставляю здесь