Оглавление
Компания Spring объявила, что фреймворк Spring AI теперь предоставляет полноценную поддержку Model Context Protocol (MCP) через специальные Boot Starter-ы и аннотации Java. Это позволяет разработчикам создавать приложения на основе искусственного интеллекта, которые могут легко взаимодействовать с внешними системами и сервисами.
Что такое Model Context Protocol?
Model Context Protocol (MCP) представляет собой стандартизированный протокол, который обеспечивает структурированное взаимодействие между ИИ-моделями и внешними инструментами и ресурсами. По сути, это мост между вашими моделями ИИ и реальным миром, позволяющий им получать доступ к базам данных, API, файловым системам и другим внешним сервисам через единый интерфейс.
Архитектура клиент-сервер MCP
MCP следует архитектуре клиент-сервер, которая обеспечивает четкое разделение ответственности. MCP-сервер предоставляет определенные возможности (инструменты, ресурсы, промпты) из сторонних сервисов, в то время как MCP-клиенты, создаваемые хост-приложениями, общаются с конкретными MCP-серверами.
Протокол MCP гарантирует полную, независимую от языка программирования интероперабельность между клиентами и серверами. Вы можете иметь клиенты, написанные на Java, Python или TypeScript, которые общаются с серверами на любом языке, и наоборот.
Разделение разработчиков
Такая архитектура создает два отдельных сообщества разработчиков:
- Разработчики AI-приложений/хостов — занимаются оркестрацией множества MCP-серверов и интеграцией с AI-моделями
- Разработчики MCP-серверов — фокусируются на предоставлении возможностей из сторонних сервисов как MCP-серверов
Spring AI поддерживает эту архитектуру с помощью MCP Client и MCP Server Boot Starters, что позволяет Spring-разработчикам участвовать в обеих сторонах экосистемы MCP.
Возможности MCP
MCP предоставляет расширенный набор функций для бесшовной коммуникации между AI-приложениями и внешними сервисами:
- Предоставление инструментов, которые могут вызывать AI-модели
- Обмен ресурсами и данными с AI-приложениями
- Предоставление шаблонов промптов для последовательных взаимодействий
- Автодополнение аргументов для промптов и URI ресурсов
- Обработка уведомлений в реальном времени и обновлений прогресса
- Поддержка различных транспортных протоколов: STDIO, Streamable-HTTP и SSE
MCP — это не просто еще один протокол интеграции, а фундаментальный сдвиг в том, как мы думаем о взаимодействии ИИ с внешним миром. То, что Spring, один из столпов Java-экосистемы, активно участвует в развитии этого стандарта, говорит о серьезности намерений сделать MCP общеотраслевым решением. Особенно ценно, что разделение на клиентскую и серверную разработку позволяет экспертам в предметных областях создавать MCP-серверы, не погружаясь в тонкости работы с LLM, а AI-разработчикам — использовать эти серверы как черные ящики с четкими контрактами.
Создание MCP-сервера
Рассмотрим пример создания Streamable-HTTP MCP-сервера, предоставляющего информацию о прогнозе погоды в реальном времени.
Spring Boot приложение сервера
Создаем новое Spring Boot приложение (mcp-weather-server):
@SpringBootApplication
public class McpServerApplication {
public static void main(String[] args) {
SpringApplication.run(McpServerApplication.class, args);
}
}
С зависимостью Spring AI MCP Server:
<dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-starter-mcp-server-webmvc</artifactId> </dependency>
В application.properties для включения транспорта Streamable HTTP сервера:
spring.ai.mcp.server.protocol=STREAMABLE
Полный исходный код примера доступен в репозитории: MCP Weather Example.
Важно отметить, что представленный функционал доступен только в версиях Spring AI 1.1.0-SNAPSHOT или Spring AI 1.1.0-M1+.
Оставить комментарий