В мире стремительного развития искусственного интеллекта интеграция новых протоколов и инструментов становится залогом эффективности и гибкости систем. Одним из таких нововведений является Model Context Protocol (MCP) от компании Anthropic, который открывает возможности более глубокого взаимодействия между большими языковыми моделями и удалёнными серверами с пользовательским кодом. Недавно разработчик Эндрю Перкинс поделился своим опытом создания простой доски сообщений, доступной исключительно для ИИ Claude, где MCP помог реализовать удобный и расширяемый интерфейс взаимодействия. Выбор концепции доски сообщений, предназначенной только для общения между ИИ, кажется одновременно игривым и даже немного абсурдным, но именно здесь кроется уникальность идеи. Такая доска представляет собой куда больше, чем просто простой интерфейс обмена сообщениями — она становится тестовой площадкой для применения и демонстрации возможностей MCP.
MCP — это протокол, позволяющий языковой модели непосредственно вызывать удалённые функции, реализованные, например, на Python, и получать структурированные ответы. В отличие от классических инструментов, где вызов функций и обработка ответов могут требовать дополнительных парсеров или сложной логики, MCP предлагает более стандартизированный и «нативный» подход для взаимодействия. Разработка доски сообщений началась с выбора стека технологий и инструментов. Были использованы Python и FastAPI, что обеспечило легкость создания веб-сервера с возможностью быстрого построения API. Для хранения и управления данными применялся sqlite-utils — инструмент, позволяющий работать с SQLite базой данных с максимальным удобством и минимальными затратами времени на настройку.
Такой выбор позволил обеспечить как простоту, так и надежность системы. Основная задача MCP-сервера заключалась в предоставлении двух инструментов: функция для получения последних сообщений и функция для добавления нового сообщения. Каждый из этих инструментов был описан с использованием JSON-схемы, что помогло обеспечить четкое понимание структуры входных параметров и возвращаемых данных. Это важно для корректного взаимодействия с моделью Claude, которая теперь могла использовать эти функции без необходимости дополнительного ручного парсинга или создания сложных инструкций в запросе. Интересным аспектом реализации стала возможность использования MCP не только через API, но и через веб-интерфейс Claude, что обеспечивало доступность и удобство тестирования.
Claude мог запросить недавние сообщения или оставить собственный короткий отзыв, а система надежно сохраняла и предоставляла эти данные. Такой подход демонстрировал, как ИИ может не просто обрабатывать и генерировать текст, но и взаимодействовать с удаленными сервисами динамически, расширяя функциональность своих возможностей. Один из ключевых моментов в работе с MCP — понимание особенностей учёта токенов и связанных с этим издержек. Перкинс выявил, что счетчик токенов при взаимодействии с MCP добавляет существенные накладные расходы, даже если инструменты, предоставляемые сервером, непосредственно не используются. Это связано с тем, что до основного запроса происходит обмен информацией с сервером, например, получение списка доступных инструментов.
Такой механизм необходим для корректной работы, но значительно увеличивает общее число токенов, что влияет на стоимость и скорость откликов. Несмотря на эти технические трудности, эксперимент позволил понять преимущества MCP как стандартизированного способа взаимодействия с кастомизированным кодом. Исчезает необходимость создания и поддержки сложных структур для вызова функций внутри ответов ИИ — вместо этого можно определить набор удобных инструментов на стороне сервера и четко их описать. Кроме того, расширяемость протокола и система типизации делают интеграцию более прозрачной и гибкой. В качестве развертывания сервер был размещен вместе с веб-сайтом на одном цифровом сервере, что упрощало управление инфраструктурой.
Использование Kamal помогло организовать стабильное и надежное окружение для FastAPI-приложения, обеспечивая такие возможности, как проверка статуса сервера и управление процессами. Были также добавлены обычные HTTP-маршруты, чтобы обеспечить возможность просмотра недавних сообщений без использования MCP, что расширяло аудиторный охват и повышало удобство взаимодействия. Опыт разработки этой MCP-доски сообщений наглядно показал, как новые протоколы и средства могут влиять на процессы создания и поддержки ИИ-приложений. Хотя техническая реализация требует внимания к деталям и понимания особенностей взаимодействия с моделями и серверами, данный подход открывает большие возможности для создания кастомных приложений, сочетающих в себе мощь языковых моделей и гибкость традиционного программирования. В будущем можно ожидать, что подобные серверные реализации на MCP станут более оптимизированными с точки зрения использования токенов и производительности.
Это позволит создавать более сложные и полезные интеграции, не жертвуя скоростью и стоимостью. Также появится больше документации и примеров, что облегчит вхождение в новый протокол как для разработчиков, так и для исследователей. Итогом можно считать то, что создание собственных MCP-серверов, таких как доска сообщений для Claude, является прекрасным способом глубже понять взаимодействие современных ИИ с внешними инструментами и сервисами. Это также отличный способ расширить границы возможного в использовании языка программирования и искусственного интеллекта, исследовать новые пути автоматизации и творчества, делая технологии более доступными и человечными.