MCP-сервер для зависимостей Maven
MCP-сервер (Model Context Protocol), предоставляющий инструменты для проверки версий зависимостей Maven. Этот сервер позволяет LLM проверять зависимости Maven и получать их последние версии из центрального репозитория Maven (Maven Central Repository).
Установка
Вы можете установить этот MCP-сервер глобально с помощью npm:
npm install -g mcp-maven-depsИли запустить его напрямую с помощью npx:
npx mcp-maven-depsУстановка через Smithery
Чтобы автоматически установить сервер зависимостей Maven для Claude Desktop через Smithery:
npx -y @smithery/cli install maven-deps-server --client claudeRelated MCP server: Minecraft Plugin Documentation MCP Server
Функции
Получение последней стабильной версии любой зависимости Maven (по умолчанию исключает предварительные релизы)
Проверка существования зависимости Maven
Проверка существования конкретной версии зависимости
Список версий зависимостей Maven с опциональной фильтрацией предварительных релизов
Интеллектуальное обнаружение предварительных релизов (alpha, beta, milestone, RC, snapshot)
Поддержка полных координат Maven, включая упаковку (packaging) и классификатор (classifier)
Доступ в реальном времени к данным центрального репозитория Maven
Совместимость с различными форматами инструментов сборки (Maven, Gradle, SBT, Mill)
Для разработки:
Клонируйте этот репозиторий
Установите зависимости:
npm installСоберите сервер:
npm run build
Конфигурация
Добавьте сервер в файл конфигурации настроек MCP:
{
"mcpServers": {
"maven-deps-server": {
"command": "npx",
"args": ["mcp-maven-deps"]
}
}
}Если сервер установлен глобально, вы также можете использовать:
{
"mcpServers": {
"maven-deps-server": {
"command": "mcp-maven-deps"
}
}
}Варианты транспорта
Сервер поддерживает два режима транспорта:
stdio (по умолчанию) — обмен данными через стандартный ввод/вывод
SSE (Server-Sent Events) — обмен данными по HTTP с опциональным удаленным доступом
Чтобы использовать транспорт SSE, вы можете указать хост и порт:
# Local access only (default host: localhost)
npx mcp-maven-deps --port=3000
# Remote access
npx mcp-maven-deps --host=0.0.0.0 --port=3000При использовании транспорта SSE в настройках MCP:
{
"mcpServers": {
"maven-deps-server": {
"command": "npx",
"args": ["mcp-maven-deps", "--port=3000"]
}
}
}Для удаленного доступа используйте IP-адрес или имя хоста сервера в конфигурации клиента:
{
"mcpServers": {
"maven-deps-server": {
"command": "npx",
"args": ["mcp-maven-deps", "--host=your-server-ip", "--port=3000"]
}
}
}Доступные инструменты
get_latest_release
Получает последнюю стабильную версию зависимости Maven. По умолчанию исключает предварительные версии (alpha, beta, milestone, RC, snapshot), чтобы гарантировать получение версий, готовых к использованию в продакшене.
Схема входных данных:
{
"type": "object",
"properties": {
"dependency": {
"type": "string",
"description": "Maven coordinate in format \"groupId:artifactId[:version][:packaging][:classifier]\" (e.g. \"org.springframework:spring-core\" or \"org.springframework:spring-core:5.3.20:jar\")"
},
"excludePreReleases": {
"type": "boolean",
"description": "Whether to exclude pre-release versions (alpha, beta, milestone, RC, snapshot). Default: true",
"default": true
}
},
"required": ["dependency"]
}Пример использования:
// Get latest stable release (default behavior)
const result1 = await mcpClient.callTool("maven-deps-server", "get_latest_release", {
dependency: "org.springframework:spring-core"
});
// Returns: "6.2.8" (latest stable, excludes "7.0.0-M6" milestone)
// Include pre-releases if needed
const result2 = await mcpClient.callTool("maven-deps-server", "get_latest_release", {
dependency: "org.springframework:spring-core",
excludePreReleases: false
});
// Returns: "7.0.0-M6" (includes pre-releases)check_maven_version_exists
Проверяет, существует ли конкретная версия зависимости Maven. Версия может быть предоставлена либо в строке зависимости, либо как отдельный параметр.
Схема входных данных:
{
"type": "object",
"properties": {
"dependency": {
"type": "string",
"description": "Maven coordinate in format \"groupId:artifactId[:version][:packaging][:classifier]\" (e.g. \"org.springframework:spring-core\" or \"org.springframework:spring-core:5.3.20:jar\")"
},
"version": {
"type": "string",
"description": "Version to check if not included in dependency string"
}
},
"required": ["dependency"]
}Пример использования:
// Using version in dependency string
const result1 = await mcpClient.callTool("maven-deps-server", "check_maven_version_exists", {
dependency: "org.springframework:spring-core:5.3.20"
});
// Using separate version parameter
const result2 = await mcpClient.callTool("maven-deps-server", "check_maven_version_exists", {
dependency: "org.springframework:spring-core",
version: "5.3.20"
});list_maven_versions
Выводит список версий зависимости Maven в порядке развертывания (самые новые первыми) с опциональной фильтрацией предварительных релизов и контролем глубины. Вывод — по одной версии на строку.
Схема входных данных:
{
"type": "object",
"properties": {
"dependency": {
"type": "string",
"description": "Maven coordinate in format \"groupId:artifactId[:packaging][:classifier]\" (e.g. \"org.springframework:spring-core\" or \"org.springframework:spring-core:jar\")"
},
"depth": {
"type": "number",
"description": "Number of versions to return (default: 15)",
"minimum": 1,
"maximum": 100
},
"excludePreReleases": {
"type": "boolean",
"description": "Whether to exclude pre-release versions (alpha, beta, milestone, RC, snapshot). Default: true",
"default": true
}
},
"required": ["dependency"]
}Пример использования:
// Get last 15 stable versions (default - excludes pre-releases)
const result1 = await mcpClient.callTool("maven-deps-server", "list_maven_versions", {
dependency: "org.springframework:spring-core"
});
// Returns only stable versions: "6.2.8\n6.1.21\n6.2.7\n..."
// Get last 5 versions including pre-releases
const result2 = await mcpClient.callTool("maven-deps-server", "list_maven_versions", {
dependency: "org.springframework:spring-core",
depth: 5,
excludePreReleases: false
});
// Returns: "7.0.0-M6\n6.2.8\n6.1.21\n7.0.0-M5\n6.2.7"Детали реализации
Напрямую запрашивает
maven-metadata.xmlв Maven Central (https://repo1.maven.org/maven2/<g>/<a>/maven-metadata.xml) — это авторитетный файл, к которому обращаются Maven и Gradle при разрешении зависимостей. Он обновляется в течение нескольких секунд после развертывания, поэтому результаты всегда актуальны.Поддерживает полные координаты Maven (groupId:artifactId:version:packaging:classifier)
Интеллектуальное обнаружение предварительных релизов с использованием регулярных выражений
Возвращает версии в порядке развертывания (самые новые первыми), как указано в
maven-metadata.xmlВключает обработку ошибок для неверных зависимостей и проблем с API
Возвращает чистые, парсируемые строки версий для корректных зависимостей
Предоставляет логические ответы для проверок существования версий
Обнаружение предварительных релизов
Сервер автоматически обнаруживает предварительные версии, используя следующие шаблоны:
Alpha:
-alpha,-aBeta:
-beta,-bMilestone:
-milestone,-m,-MRelease Candidate:
-rc,-crSnapshot:
-snapshot
Примеры:
7.0.0-M6→ Предварительный релиз (milestone)6.2.8→ Стабильный релиз3.1.0-SNAPSHOT→ Предварительный релиз (snapshot)2.5.0-RC1→ Предварительный релиз (release candidate)
Примечание о критических изменениях: Инструмент был переименован из get_maven_last_updated_version в get_latest_release и теперь по умолчанию исключает предварительные релизы. Это гарантирует, что производственные приложения по умолчанию получают стабильные версии, при этом сохраняется возможность доступа к предварительным релизам при необходимости.
Обработка ошибок
Сервер обрабатывает различные случаи ошибок:
Неверный формат зависимости
Неверный формат версии
Несуществующие зависимости
Стабильные релизы не найдены (когда включена фильтрация)
Проблемы с подключением к API
Некорректные ответы
Отсутствие информации о версии
Разработка
Чтобы изменить или расширить сервер:
Внесите изменения в
src/index.tsПересоберите проект с помощью
npm run buildПерезапустите MCP-сервер, чтобы применить изменения
Лицензия
MIT
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Bigsy/maven-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
