Java SDK
Официальный Java SDK для MCP, выпуск 2.0.1 - работает только в эпохе Legacy до редакции 2025-11-25, поддержка 2026-07-28 пока существует лишь как план линии 3.x
сверено с выпуском 2.0.1 4 октября 2026
Что это
Заголовок раздела «Что это»Java SDK - набор модулей для серверов и клиентов MCP на Java, с синхронным и асинхронным интерфейсом. В списке официальных SDK у него второй уровень (Tier 2). То же сказано в плане развития SDK: «The Java SDK is an official Tier 2 SDK».
По правилам уровней второй уровень - это SDK, который активно сопровождается и движется к полной поддержке спецификации.
Модули выпуска перечислены в README:
| Модуль | Что в нём |
|---|---|
mcp-bom | согласованные версии зависимостей |
mcp-core | основная реализация: stdio, клиент на HttpClient из JDK, сервер на Servlet |
mcp-json-jackson3 | работа с JSON через Jackson 3 |
mcp-json-jackson2 | работа с JSON через Jackson 2 |
mcp | удобный набор: mcp-core и Jackson 3 |
mcp-test | общие средства тестирования |
Выпуск и установка
Заголовок раздела «Выпуск и установка»Проверенный выпуск - 2.0.1 от 19 августа 2026: выпуск на GitHub, пакет io.modelcontextprotocol.sdk:mcp на Maven Central.
В тот же день вышли 1.1.4 и 0.18.4. По плану развития линии 1.x и 0.x получают только исправления безопасности.
Нужна Java 17 или новее: в pom.xml записано java.version 17.
Способ установки описан в руководстве по началу работы: сначала подключается BOM, затем модуль без номера версии.
<dependencyManagement> <dependencies> <dependency> <groupId>io.modelcontextprotocol.sdk</groupId> <artifactId>mcp-bom</artifactId> <version>2.0.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies></dependencyManagement>
<dependency> <groupId>io.modelcontextprotocol.sdk</groupId> <artifactId>mcp</artifactId></dependency>Пример взят из документации выпуска 2.0.1 и здесь не запускался.
В документации у BOM стоит номер 2.0.0 и просьба заменить его на последнюю версию с Maven Central. На 4 октября 2026 это 2.0.1.
Какие редакции понимает выпуск
Заголовок раздела «Какие редакции понимает выпуск»В файле ProtocolVersions.java четыре редакции: 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25. Все они относятся к эпохе Legacy.
Строки 2026-07-28 и server/discover во всём дереве выпуска встречаются только в файле ROADMAP.md, то есть в плане, а не в коде.
Что клиент отправляет по умолчанию
Заголовок раздела «Что клиент отправляет по умолчанию»Клиент начинает с initialize. По документации клиента встроенные транспорты StdioClientTransport и HttpClientStreamableHttpTransport объявляют все четыре редакции, поэтому согласование обычно останавливается на самой новой общей.
По коду выпуска клиент просит последнюю редакцию из списка своего транспорта. Для stdio и Streamable HTTP это 2025-11-25. Устаревший транспорт HttpClientSseClientTransport объявляет только 2024-11-05.
Если сервер ответит редакцией, которой нет в списке транспорта, initialize() завершится ошибкой McpError. Сузить список можно, переопределив protocolVersions() в своём транспорте.
Что принимает сервер
Заголовок раздела «Что принимает сервер»По коду McpAsyncServer сервер отвечает той редакцией, которую попросил клиент, если она есть в списке транспорта. Если нет, сервер предлагает самую новую из своих и пишет предупреждение в журнал.
В выпуске есть три вида серверного транспорта: stdio, Streamable HTTP на Servlet и устаревший HTTP+SSE на Servlet.
Встроенной авторизации для сервера нет. README выпуска описывает подключаемые точки авторизации и прямо говорит, что собственной реализации SDK не содержит.
Минимальный сервер
Заголовок раздела «Минимальный сервер»В документации сервера транспорт и сервер показаны отдельными фрагментами. Переменная schema - схема входных данных инструмента, её вы задаёте сами.
StdioServerTransportProvider transportProvider = new StdioServerTransportProvider(McpJsonDefaults.getMapper());var server = McpServer.sync(transportProvider) .toolCall( Tool.builder("echo", schema).description("Echoes input").build(), (exchange, request) -> CallToolResult.builder() .content(List.of(new McpSchema.TextContent(request.arguments().get("text").toString()))) .build() ) .build();Пример взят из документации выпуска 2.0.1 и здесь не запускался.
Минимальный клиент
Заголовок раздела «Минимальный клиент»McpTransport transport = HttpClientStreamableHttpTransport .builder("http://your-mcp-server") .endpoint("/mcp") .build();
McpSyncClient client = McpClient.sync(transport).build();
InitializeResult initResult = client.initialize();String negotiatedVersion = initResult.protocolVersion();Пример собран из двух фрагментов документации выпуска 2.0.1 и здесь не запускался.
Расширения
Заголовок раздела «Расширения»Tasks. Нет. Документация и план развития выпуска расширение не упоминают, а поиск слова task по исходному коду ядра выпуска и строки tasks/ по всему дереву ничего не нашёл.
MCP Apps. Неизвестно. Документация выпуска расширение не упоминает. Поиск строк io.modelcontextprotocol/ui и ui:// по дереву выпуска ничего не нашёл.
Устаревшие функции в выпуске
Заголовок раздела «Устаревшие функции в выпуске»| Функция | Как с ней обходится выпуск 2.0.1 |
|---|---|
initialize | Единственный способ установить связь |
| Сеансы | Транспорт Streamable HTTP работает с заголовком Mcp-Session-Id |
HTTP+SSE из 2024-11-05 | Транспорты поставляются, но помечены @Deprecated. План развития: «SSE transports deprecated in favor of Streamable HTTP» |
| Roots, Sampling, Logging | Методы roots/list, sampling/createMessage и logging/setLevel есть в McpSchema.java |
Выпуск, ветка main и план
Заголовок раздела «Выпуск, ветка main и план»Здесь три разных состояния, и смешивать их нельзя.
- Выпуск 2.0.1. Редакции до
2025-11-25, эпоха Legacy. - Ветка
main. На 4 октября 2026 она опережает меткуv2.0.1на 32 изменения, версия вpom.xml-2.1.0-SNAPSHOT. ФайлProtocolVersions.javaв ней по-прежнему заканчивается на2025-11-25. - План. В плане развития сказано, что следующая мажорная линия 3.x реализует редакцию
2026-07-28, включаяserver/discoverи жизненный цикл без состояния, а первые промежуточные выпуски 3.0.0 намечены на сентябрь 2026.
Что неизвестно
Заголовок раздела «Что неизвестно»- Когда выйдет первый выпуск линии 3.x: названный в плане срок прошёл, новой даты нет.
- Поддержка расширения MCP Apps: SDK о нём не говорит.
- Применяет ли клиент динамическую регистрацию клиента: в ядре нет встроенной авторизации, а код клиента на этот счёт здесь не разбирался.
- Кто сопровождает SDK: README выпуска и список официальных SDK этого не говорят.
Что читать дальше
Заголовок раздела «Что читать дальше»- Все SDK - сравнение официальных SDK по эпохам.
- Редакции и версии - чем Modern отличается от Legacy.
- Две эпохи на одном сервере - как сервер старой эпохи сосуществует с новыми клиентами.
- Kotlin SDK - официальный SDK для того же окружения JVM.