VOOZH about

URL: https://glama.ai/mcp/servers/Bigsy/maven-mcp-server?locale=ru-RU

⇱ maven-mcp-server by Bigsy | Glama


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 claude

Related MCP server: Minecraft Plugin Documentation MCP Server

Функции

  • Получение последней стабильной версии любой зависимости Maven (по умолчанию исключает предварительные релизы)

  • Проверка существования зависимости Maven

  • Проверка существования конкретной версии зависимости

  • Список версий зависимостей Maven с опциональной фильтрацией предварительных релизов

  • Интеллектуальное обнаружение предварительных релизов (alpha, beta, milestone, RC, snapshot)

  • Поддержка полных координат Maven, включая упаковку (packaging) и классификатор (classifier)

  • Доступ в реальном времени к данным центрального репозитория Maven

  • Совместимость с различными форматами инструментов сборки (Maven, Gradle, SBT, Mill)

Для разработки:

  1. Клонируйте этот репозиторий

  2. Установите зависимости: npm install

  3. Соберите сервер: npm run build

Конфигурация

Добавьте сервер в файл конфигурации настроек MCP:

{
 "mcpServers": {
 "maven-deps-server": {
 "command": "npx",
 "args": ["mcp-maven-deps"]
 }
 }
}

Если сервер установлен глобально, вы также можете использовать:

{
 "mcpServers": {
 "maven-deps-server": {
 "command": "mcp-maven-deps"
 }
 }
}

Варианты транспорта

Сервер поддерживает два режима транспорта:

  1. stdio (по умолчанию) — обмен данными через стандартный ввод/вывод

  2. 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, -a

  • Beta: -beta, -b

  • Milestone: -milestone, -m, -M

  • Release Candidate: -rc, -cr

  • Snapshot: -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

  • Некорректные ответы

  • Отсутствие информации о версии

Разработка

Чтобы изменить или расширить сервер:

  1. Внесите изменения в src/index.ts

  2. Пересоберите проект с помощью npm run build

  3. Перезапустите MCP-сервер, чтобы применить изменения

Лицензия

MIT

A
license - permissive license
B
quality
B
maintenance

Maintenance

Maintainers
<1hResponse time
Release cycle
Releases (12mo)
Commit activity
Issues opened vs closed

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