Оглавление

Компания 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+.