
Интеграция LLM с внешними сервисами – сложная головоломка. Количество моделей постоянно растёт, а вместе с ними возрастают и ожидания аудитории от AI-ассистентов. Каждое новое подключение ИИ требует уникального решения, что отнимает время разработчика.
Компания Anthropic решила изменить эту ситуацию. В ноябре 2024 года она представила Model Context Protocol (MCP) – стандартизированный протокол для интеграции больших языковых моделей со сторонними сервисами. Он позволяет подключать множество AI-агентов к сервису и предоставлять им доступ к информации и контексту без необходимости разрабатывать отдельные коннекторы для каждого источника данных. Решение универсально и подходит как для облачных, так и локальных моделей.
С 12 по 29 апреля на Codenrock пройдет соревнование IT_ONE Cup. ML Challenge – отличный повод проверить возможности MCP на практике.
В этой статье разберемся, что такое MCP, как он устроен, какие функции поддерживает и каким образом поможет побеждать на хакатонах по разработке ИИ-решений.
- Как работает MCP
- Ключевые особенности MCP
- Пример использования
- Как настроить MCP-сервер
- Документация и SDK
- Создание и проверка сервера
- Простой пример
- Сложный пример
- IT_ONE Cup. ML Challenge: проверь возможности MCP на практике
- Динамические контекстные подсказки для системного аналитика
- AI-генератор дизайн-макетов по описанию требований
- Система визуализации BPMN-диаграмм
- Почему стоит участвовать
- О компании IT_ONE
- Model Context Protocol в вопросах и ответах
Как работает MCP
Архитектура MCP состоит из трех ключевых компонентов:
- MCP-сервер предоставляет доступ к данным и функциям внешних систем.
- MCP-клиент использует эти сведения для выполнения задач.
- Слой связи обеспечивает безопасное и надежное взаимодействие между клиентами и серверами.

Рассмотрим каждый пункт подробнее.
MCP-сервер – это компонент, который выступает шлюзом между LLM и источниками данных: репозиториями кода, текстовыми редакторами, бизнес-инструментами и другими системами, которым необходима интеграция с ИИ. Например, один сервер может быть настроен для работы с Google Drive, другой – для GitHub, третий – для базы данных PostgreSQL. Такой подход упрощает интеграцию, потому что позволяет использовать готовые решения вместо создания собственных коннекторов и централизованно управлять доступом к данным.
MCP-клиенты – это приложения или инструменты, которые используют информацию, предоставленную MCP-сервером. Как правило, это AI-агенты и языковые модели, которым требуется контекст из внешних источников для выполнения задач. Клиент отправляет запрос через стандартный протокол, сервер обрабатывает его и возвращает данные в понятном для клиента формате. Это позволяет ИИ-системам получать доступ к информации из множества источников без необходимости знать их внутреннее устройство.
Слой связи – механизм, который обеспечивает взаимодействие между MCP-клиентом и MCP-сервером. Он отвечает за передачу данных, проверку прав доступа, шифрование и другие аспекты безопасности.
Ключевые особенности MCP
MCP предоставляет набор инструментов и примитивов для создания гибкого и безопасного взаимодействия между ИИ-моделями, серверами и клиентами.
- Resources – основной примитив в MCP, который позволяет серверам предоставлять контент клиентам: файлы, данные или инструкции. Некоторые клиенты, например, Claude Desktop, требуют явного выбора ресурсов пользователем. Другие могут автоматически выбирать ресурсы на основе правил.
- Prompts – готовые шаблоны, которые помогают ИИ-моделям выполнять задачи. Они делают работу проще и быстрее, потому что уже содержат заранее подготовленные описания решений для разных сценариев.
- Tools – инструменты, которые сервер предоставляет клиентам. Они могут выполнять определенные действия, например, анализировать данные, взаимодействовать с внешними системами или выполнять команды. ИИ сам может выбирать и запускать нужные инструменты, чтобы решать задачи.
- Sampling – способ попросить модель закончить текст или предсказать следующие слова. Например, если вы вводите начало фразы, ИИ может предложить, как продолжить. Обеспечивает сложное агентное поведение, например, принятие решений на основе данных. Однако не все модели умеют это делать.
- Roots – URL, которые помогают серверу понять, где найти нужные ресурсы или куда отправить запросы. Ссылки задают границы, в которых сервер может работать. Например, если системе нужно получить какие-то данные, она будет искать их в указанной области.
- Transports обеспечивает коммуникацию между клиентами и серверами в рамках MCP. Обрабатывают механику отправки и получения сообщений. Протокол использует формат JSON-RPC 2.0 для передачи сообщений. Транспортный слой преобразует сообщения MCP в JSON-RPC и обратно.
Пример использования
Перед разработчиком стоит задача написать систему интеллектуальных подсказок для Notion, которая будет помогать писать документацию на базе уже существующей базы справочной информации в компании. Это решение может быть реализовано через классические протоколы вроде SOAP или WSDL, но они имеют ряд недостатков:
- Используют синтаксис XML для передачи данных, который более громоздкий и сложный для анализа, чем формат JSON, который поддерживается MCP. Это особенно важно при работе с ИИ-моделями, где скорость и легковесность играют ключевую роль.
- Требуют строгой предварительной настройки и описания всех методов и параметров. Например, при необходимости добавить поддержку документации в формате YAML могут возникнуть проблемы, если изначально система настроена на работу с Markdown – потребуется тотальная перенастройка всех компонентов.
- Не предназначены для работы с ИИ. SOAP и WSDL разработаны для традиционных веб-сервисов. Они не учитывают специфику обмена данными с LLM: не поддерживают динамическое взаимодействие или контекстное понимание.

Но для MCP подобный сценарий использования – ключевой. Как это работает:
Настраиваем MCP-сервер в качестве универсального шлюза. Он может поддерживать несколько коннекторов: один для справочной документации, второй для взаимодействия с пользовательским текстом в Notion. Поэтому необходимо подключить к серверу базу данных и реализовать поиск релевантной информации в документе через API редактора.
В качестве MCP-клиента настраиваем любую языковую модель, которая поддерживает протокол, например, Claude.
Использование облачных моделей, несмотря на свою гибкость, сопряжено с рисками и трудностями. Выбор локальных моделей позволит создать решение, которое легко адаптировать и использовать без привязки к внешним сервисам.
В процессе написания текста в Notion клиент будет отправлять запросы на сервер, чтобы получить доступ к содержимому документов и справочной информации.
На слое связи будет происходить следующее взаимодействие:
- Claude отправляет запрос на MCP-сервер «Получить текущий текст из Notion». Сервер извлекает содержимое редактора через соответствующий коннектор.
- Claude отправляет второй запрос «Найти подходящие фрагменты в текущей документации». MCP-сервер ищет необходимые данные через другой коннектор.
- Результаты передаются обратно нейросети, которая формирует предложения по автодополнению.
В результате получается система интеллектуальных подсказок для Notion, основанная на современной технологии взаимодействия с LLM. Решение отличается универсальностью, гибкостью и ориентацией на ИИ, может быть легко масштабировано для поддержки новых моделей, редакторов или источников данных.
Как настроить MCP-сервер
Правильная настройка MCP-сервера – ключевой этап успешной интеграции ИИ-ассистентов с внешними системами. Он влияет на производительность, безопасность, масштабируемость и удобство использования всей системы. К счастью, разработка собственного сервера для работы с протоколом – несложная задача благодаря доступному SDK, четкой документации и поддержке современных инструментов, которые позволяют быстро создавать решения даже начинающим разработчикам.
Документация и SDK
На сайте Anthropic представлена подробная справочная информация по работе с Model Context Protocol. В документации можно найти базовые сведения о протоколе, обучающие материалы, примеры решений, а также разбор основных концепций стандарта: архитектуры, ресурсов, шаблонов промптов, сэмплинг и другие. SDK доступен на пяти языках:
- Python
- TypeScript
- Java
- Kotlin
- C#
В этой статье приведены примеры кода на Python как на самом популярном языке.
Создание и проверка сервера
Для начала установим Python SDK. Для этого достаточно одной команды:
pip install mcp
После этого можно приступать к созданию первого MCP-сервера. Добавим простую функцию: подсчет количества слов в документации.
@mcp.tool("Подсчитывает количество слов в заданном тексте.")
def count_words(text: str) -> int:
"""
Подсчитывает количество слов в тексте.
Args:
text (str): Текст для анализа.
Returns:
int: Количество слов в тексте.
"""
# Разделяем текст по пробелам и убираем пустые строки
words = text.split()
return len(words)
if __name__ == "__main__":
mcp.run()
На что важно обратить внимание в этом примере:
- Функция «def count_words» определена с декоратором `@mcp.tool`, который указывает, что это инструмент MCP.
- В качестве аргумента декоратора передано описание инструмента, которое будет использоваться ИИ-моделью.
- Функция принимает текстовую строку и возвращает количество слов в ней.
- Сервер запускается методом run().
Следующий шаг – настройка клиента. Подойдет любая LLM, которая поддерживает протокол MCP. Для примера выберем Cursor. В настройках сервиса необходимо выбрать раздел MCP и создать новый сервер:
- Укажите название, например, «Калькулятор слов».
- Выберите тип «command».
- В поле «команды» введите «mcprun» и полный путь к файлу с кодом сервера.
После этого ваш MCP-сервер будет доступен для использования как AI-агент в Cursor. Теперь достаточно отправить агенту запрос «Посчитай количество слов в этом тексте». Система определит, что для этой задачи нужно использовать MCP-сервер, вызовет функцию «def count_words» и вернет результат 6.
Простой пример
Автоматизируем создание новых MCP-серверов и сделаем процесс доступным даже для разработчиков, не владеющих документацией протокола и синтаксисом MCP, а также пользователей, плохо знакомых с программированием. Для этого предоставим ИИ контекст, необходимый для запуска сервера.
Используем Cursor:
- Найдите ссылку на README в файлах репозитория SDK.
- В Cursor перейдите в раздел «Документы».
- Добавьте новый документ, вставив ссылку на README.
- Дайте документу название, например, «python-mcp-sdk».
Теперь AI будет опираться на предоставленную документацию, чтобы понимать синтаксис, структуру и особенности работы с MCP. Это позволяет упростить процесс создания серверов и сделает его доступным без глубокого понимания специфики протокола.
Можно добиться еще лучшего результата, если преобразить сложную или неструктурированную документацию в формат, который легко понимают языковые модели. Вот как это сделать:
- Замените в URL GitHub часть «hub» на «ingest» (например, «github.com → gitingest.com»).
- Git Ingest конвертирует репозиторий в базу знаний для LLM.
- Скопируйте результат и предоставьте его любой языковой модели.
После этого информация о документации MCP станет более доступной для сервера, и пользователь сможет более эффективно получать ответы на вопросы и генерировать код. Пример запроса для ИИ: «Изучи этот файл с функцией извлечения данных и реализуй его в MCP сервере. Сервер должен принимать ссылку в качестве параметра и возвращать результат в формате markdown». Нейросеть проанализирует предоставленный код и документацию, а затем сгенерирует полноценный MCP сервер, соответствующий вашим требованиям.
Сложный пример
Создадим более продвинутый MCP-сервер, который способен взаимодействовать с API Figma.
Начало работы
from mcp import MCP
import requests
import re
mcp = MCP()
Импортируем библиотеки, создаем экземпляр класса.
Регистрация функции как инструмента MCP
@mcp.tool("Получает данные файла Figma по URL.")
def get_figma_file(url: str) -> dict:
"""
Извлекает данные файла Figma по его URL.
Args:
url (str): URL файла Figma.
Returns:
dict: Данные файла Figma.
"""
Декоратор @mcp.tool регистрирует функцию get_figma_file как инструмент, доступный для вызова через MCP-сервер. Функция get_figma_file принимает URL файла Figma, извлекает из него ключ, делает запрос к API Figma и возвращает данные файла в формате JSON.
- Аргумент url: str — строка, содержащая URL файла Figma.
- Возвращаемое значение dict — данные файла Figma в виде словаря Python (JSON).
Извлечение ключа файла из URL
file_key_match = re.search(r'file\/([a-zA-Z0-9]+)', url)
if not file_key_match:
return {"error": "Некорректный URL файла Figma"}
file_key = file_key_match.group(1)
Регулярное выражение r’file\/([a-zA-Z0-9]+)’ ищет подстроку вида file/<ключ> в URL. Например, из URL https://www.figma.com/file/abcdef123456/example извлекается ключ abcdef123456. Если ключ не найден, функция возвращает ошибку.
Настройка запроса к API Figma
api_url = f"https://api.figma.com/v1/files/{file_key}"
headers = {
"X-Figma-Token": "ваш_токен_figma_api"
}
Формируется URL для запроса к API Figma: https://api.figma.com/v1/files/<ключ>. Добавляется заголовок авторизации (X-Figma-Token) с токеном API Figma, необходимый для аутентификации запроса.
Выполнение запроса
response = requests.get(api_url, headers=headers)
if response.status_code == 200:
return response.json()
else:
return {"error": f"Ошибка API: {response.status_code}", "message": response.text}
if __name__ == "__main__":
mcp.run()
Отправляется GET-запрос к API Figma с помощью requests.get. Если статус ответа равен 200 (успех), данные преобразуются в словарь Python с помощью метода .json() и возвращаются. Если статус ответа отличен от 200, возвращается сообщение об ошибке с кодом статуса и текстом ответа.
Выводы из этих примеров:
- MCP сервер – это простая система ввода-вывода, которая позволяет AI получать доступ к контексту и эффективно использовать его для решения большого спектра задач.
- MCP – универсальный стандарт для интеграции AI-агентов с различными системами, который минимизирует сложность разработки.
- Любая платформа с API может быть контролируема через AI-агента с помощью MCP.
IT_ONE Cup. ML Challenge: проверь возможности MCP на практике
IT_ONE Cup. ML Challenge от IT_ONE и Sk FinTech Hub – отличный повод потренироваться в работе с Model Context Protocol на реальных задачах по созданию AI-ассистентов и разделить призовой фонд в 1 500 000 рублей.
Три трека соревнования.
Динамические контекстные подсказки для системного аналитика
Необходимо разработать систему автодополнения текста для системных аналитиков, которая помогает писать документацию к программным продуктам и требованиям на этапе их разработки.
- Решение использует базу документации для дообучения моделей LLM и построения RAG-системы.
- Система отслеживает статистику принятых предложений и оптимизирует рекомендации.
- Предусмотрена поддержка голосового ввода с автоматическим преобразованием в структурированные текстовые требования.
Чем может помочь MCP: обеспечит универсальную интеграцию ИИ-инструментов для обработки голоса, взаимодействия с базой данных и генерации подсказок.
AI-генератор дизайн-макетов по описанию требований
Необходимо разработать сервис, который вносит правки в существующую веб-страницу. Решение должно:
- Проанализировать данный сайт или веб-страницу.
- Применить предложенные пользователем правки.
- Выдать работающий в браузере веб-сайт или веб-страницу.
Чем может помочь MCP: позволит загрузить данные исходного сайта, адаптировать их под требования и загрузить в дизайн-систему.
Система визуализации BPMN-диаграмм
Необходимо разработать сервис, который поможет аналитикам формировать диаграммы процессов:
- Аналитик описывает процесс голосом.
- Система генерирует диаграмму и отображает ее аналитику.
- Система в режиме чата с аналитиком вносит правки в диаграмму.
Чем может помочь MCP: обеспечит генерацию диаграмм по запросу и необходимый контекст для внесения правок по текстовому описанию.
Почему стоит участвовать
- Призовой фонд разделят 9 победителей: по три в каждом треке.
- Работа с современными технологиями и стандартами: LLM, NLP, RAG, MCP.
- Разработка полезного AI-ассистента под руководством экспертов отрасли Sk FinTech Hub и IT_ONE.
О компании IT_ONE
Соревнование IT_ONE Cup. ML Challenge проводит постоянный организатор IT-мероприятий – компания IT_ONE. В 2024 году хакатон «IT_ONE Cup. Базы данных» одержал победу в первой национальной премии «Хакатоны России» в номинации «Лучший чемпионат в формате PvP-сражения».
Помимо организации соревнований, IT_ONE разрабатывает программное обеспечение для российского бизнеса на современном стеке технологий. Основные направления работы компании:
- FinTech.
- Проекты для коммерческих компаний.
- Собственные проекты.
За 4 года IT_ONE значительно расширила свои масштабы – число сотрудников возросло с 200 человек до 3 000.
Регистрация на IT_ONE Cup. ML Challenge открыта до 13 апреля.