maven-tools-mcp

by arvindand (community) · Claude Desktop, Claude Code, OpenCode, любой MCP-клиент, Java 21+, Docker, Spring Boot 4.1.0+, Spring AI 2.0.0+

MCP MCP Servers Open Source v3.2.1 · 19.08.2026 активный

MCP-сервер, дающий AI-ассистентам данные о зависимостях Maven Central для всех JVM-инструментов сборки (Maven, Gradle, SBT, Mill). Интеграция с Context7 для документации.

v3.2.1
19.08.2026 current

Установка
# STDIO + Context7 (стандартный вариант для десктопных MCP-клиентов)
docker run -i --rm arvindand/maven-tools-mcp:latest

# STDIO без Context7 (если Context7 заблокирован или не требуется)
docker run -i --rm arvindand/maven-tools-mcp:latest-noc7

# HTTP-транспорт (для стриминговых HTTP-клиентов и сайдкаров)
docker run -i --rm arvindand/maven-tools-mcp:latest-http
показать оригинал переведено ИИ

Maven Tools MCP Server

Ява Spring Boot Spring AI MCP Protocol Лицензия Последний релиз на GitHub Docker Загрузки Docker Звёзды на GitHub

Сервер Maven Tools MCP Server предоставляет клиентам, поддерживающим MCP, практическое средство для анализа зависимостей JVM с использованием данных из живого Maven Central.

Он предназначен для разработчиков и агентов, которым нужно больше, чем просто поиск версии: фильтрация по стабильности, сравнение версий для обновления, сигналы о состоянии зависимостей, данные о лицензиях, проверка уязвимостей (CVE) и необязательные запросы документации через Context7.

Demo

С чем помогает

Используйте Maven Tools MCP, когда хотите:

  • проверять последнюю стабильную версию библиотеки, не покидая редактор
  • сравнивать текущий набор зависимостей с доступным сейчас
  • планировать обновления с учётом контекста основных/малых/патч-версий
  • проверять проект на наличие устаревших, рискованных или слабо поддерживаемых зависимостей
  • предоставлять ИИ-ассистенту структурированные и актуальные метаданные о зависимостях вместо того, чтобы заставлять его сканировать документы или веб-страницы
  • разрешать всю pom.xml в эффективные версии для каждой зависимости — просматривая цепочку родителей, применяя <dependencyManagement>, импортируя BOM-файлы — без фактической сборки проекта (полезно для проверок перед CI, запросов на обновление зависимостей, многомодульных монорепозиториев и любого проекта, где обновление библиотеки означает обновление BOM вместо этого)
  • получать детерминированный и применимый план обновления, который не-LLM агент может выполнить за один раунд, с разделением основных версий, конфликтов и явных переопределений для человеческого или LLM-суждения

Этот проект работает с любым JVM-инструментом сборки, который полагается на Maven Central. Входные данные — это стандартные координаты Maven, поэтому те же данные применимы к проектам Maven, Gradle, SBT и Mill.

Почему это важно

Этот проект наиболее полезен, когда простой поиск пакета недостаточен.

  • он предоставляет клиентам MCP структурированные данные о зависимостях вместо того, чтобы заставлять их сканировать веб-страницы
  • он сохраняет проверки на обновления на основе актуальных метаданных Maven Central
  • он добавляет сигналы о стабильности, возрасте, уязвимостях (CVE) и лицензиях в одном месте
  • он хорошо работает в связке с workflow-процессами агентов, которым необходимы данные о зависимостях перед редактированием кода или открытием запросов на pull request

Новое применение

Одним из более интересных применений этого проекта является поддержка зависимостей, управляемая агентами.

Основной сервер не открывает pull request-ы сам по себе, но предоставляет агенту достаточно актуального контекста о зависимостях, чтобы принимать более безопасные решения об обновлениях по сравнению с workflow-процессом слепого увеличения версии. Инструмент recommend_pom_upgrades был создан именно для такого сценария: не-LLM агент передаёт ему сырой pom.xml, применяет каждую запись deterministic_actions[] на её идентифицированном поле версии или свойстве, и выводит needs_attention[] для отдельного обзора человеком или LLM. Нет развертывания по координатам и нет рекомендаций, которые агент не может применить — транзитивно управляемые BOM-файлы и управляемые объявления без корневого места редактирования фильтруются.

Самый яркий пример — это собственный еженедельный процесс самообновления этого репозитория: GitHub Actions управляет выполнением, один вызов MCP возвращает список действий, агент применяет изменения, и результатом становится pull request для обзора. Проверка основных обновлений — это единственный путь, который просит Copilot помочь с оценкой и формулированием миграции.

Именно поэтому настройка dogfooding важна не только для этого репозитория. Она демонстрирует, в небольшом и конкретном виде, тот же подход, на который могут опираться более широкие GitHub Agentic Workflows: оркестратор workflow, структурированный вывод инструментов для детерминированных изменений, ИИ-работник только там, где полезно суждение, и в конце концов изменение, проверенное человеком.

Быстрый старт

Claude Desktop

Добавьте это в конфигурацию Claude Desktop:

{
  "mcpServers": {
    "maven-tools": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "arvindand/maven-tools-mcp:latest"]
    }
  }
}

VS Code + GitHub Copilot

Создайте .vscode/mcp.json в вашем рабочем пространстве:

{
  "servers": {
    "maven-tools": {
      "type": "stdio",
      "command": "docker",
      "args": ["run", "-i", "--rm", "arvindand/maven-tools-mcp:latest"]
    }
  }
}

Варианты образов

Тег Транспорт Context7 Лучше для
:latest STDIO Да Использование MCP по умолчанию на настольном ПО
:latest-noc7 STDIO Нет Сети, где Context7 блокируется или не нужен
:latest-http HTTP Да Клиенты потокового HTTP и рабочие процессы sidecar

CONTEXT7_API_KEY необязательно. Большинство конфигураций могут начать без него. Если ваша среда требует аутентификации Context7 или вы хотите избежать анонимных ограничений, передайте его через Docker с помощью -e CONTEXT7_API_KEY.

Для более полного руководства по настройке, включая использование JAR/нативный, Docker Compose и примечания по окружению, смотрите docs/setup.md.

Основные инструменты

Сервер предоставляет 11 инструментов MCP.

Инструменты для анализа Maven

Инструмент Что делает
get_latest_version Находит последнюю версию с учётом стабильности
check_version_exists Проверяет конкретную версию и классифицирует её стабильность
check_multiple_dependencies Массовый поиск координат зависимостей
compare_dependency_versions Сравнивает текущие версии с доступными обновлениями
analyze_dependency_age Классифицирует возраст зависимости
analyze_release_patterns Анализирует частоту релизов и сигналы поддержки
analyze_project_health Проводит более широкую аудиторскую проверку здоровья зависимостей
analyze_pom_dependencies Зависимость от POM: разрешает эффективные версии из сырого pom.xml, классифицирует как EXPLICIT / MANAGED / EXPLICIT_OVERRIDE, выявляет конфликты множественных BOM
recommend_pom_upgrades Зависимость от POM: возвращает детерминированные явные, BOM и корневые записи управления зависимостями для применения агентом, а также список needs_attention с мажорными / конфликтами / переопределениями для проверки человеком или ИИ

Инструменты документации Context7

Инструмент Что делает
resolve-library-id Находит идентификатор библиотеки документации
query-docs Получает документацию по идентификатору библиотеки Context7

Для параметров, примеров и замечаний по каждому инструменту смотрите docs/tools.md.

Анализ зависимостей с учётом POM

Два инструмента принимают целый POM (сырой XML), а не одну координату. Оба обходят цепочку родительских POM, применяют <dependencyManagement>, разрешают импорты <scope>import</scope> BOM по Maven Central, локализуют ${project.version} для каждого POM, чтобы заглушки импортированного BOM разрешались в версию этого BOM (а не импортера), и принимают необязательный пакет sideloadedPoms для монорепозиторных братьев / нерелизованных родителей.

  • analyze_pom_dependencies — возвращает каждую объявленную зависимость с эффективной версией + классификацией (EXPLICIT / MANAGED / EXPLICIT_OVERRIDE) + координатами управляющего BOM + любыми конфликтами multi-BOM. Используйте, когда хотите получить сырой анализ ("что мой POM фактически разрешает?").
  • recommend_pom_upgrades — расширяет анализатор и возвращает два списка: deterministic_actions (механические правки — explicit_bump для объявленных зависимостей, bom_bump для управляемых пользователем BOM, managed_decl_bump для прямых корневых записей управления зависимостями и plugin_dep_bump для прямых зависимостей сборки/плагинов) и needs_attention (мажорные, конфликты множественных BOM и явные переопределения). Действия для собственных объявлений включают метаданные о месте правки; действия для плагинов также указывают владельца плагина, чтобы клиент мог редактировать нужный блок напрямую.

Рекомендации по обновлению ограничены параметрами, которые вызывающий может фактически изменить в исходном POM: прямой <parent>, корневые импорты BOM, явные зависимости и прямые неимпортируемые записи управления зависимостями с буквальной версией или точной собственной корневой свойством. Транзитивно импортированные BOM, унаследованные свойства и составные выражения свойств тихо пропускаются, так как не имеют однозначного места правки в исходном файле.

Пример

Распространённый запрос в Copilot или Claude:

Проверьте все последние версии зависимостей в моём pom.xml и укажите на потенциально опасные.

Хороший ответ от этого сервера даёт клиенту структурированную информацию, такую как:

  • текущая версия по сравнению с последней версией
  • является ли обновление мажорным, минорным или патч-версией
  • является ли самая новая версия стабильной
  • выглядит ли зависимость как свежая, стареющая или устаревшая
  • есть ли известные уязвимости (CVE) или вопросы лицензий, которые стоит заметить Это сохраняет рабочий процесс привязанным к реальным данным репозитория, а не к догадкам.

Для более широких вопросов вроде "какую библиотеку мне выбрать?", полезный шаблон заключается в следующем: позвольте модели использовать Maven Tools MCP для получения актуальных координат, сигналов версии/стабильности и контекста обновлений, затем объедините это с документацией Context7 (доступной через инструменты, предоставляемые образом по умолчанию), и, при необходимости, клиентским веб-поиском для получения контекста экосистемы, который этот сервер не предоставляет самостоятельно.

Для дополнительных примеров prompt-ов смотрите docs/examples.md. Также существует maven-tools навык в отдельном репозитории agent-skills, который предоставляет агентам общие рекомендации по эффективному использованию Maven Tools MCP в различных сценариях, тогда как локальные примеры prompt-ов и агент для самопроверки определяют более конкретные пути.

Самопроверка

Этот репозиторий запускает еженедельный workflow самообновления, который использует локального Python-агента против собственного pom.xml и открывает просмотрочный PR для безопасных обновлений зависимостей. Агент передаёт сырой POM в recommend_pom_upgrades и применяет возвращённые deterministic_actions[] напрямую — без распараллеливания по координатам, без разбора XML на Python. Единственный режим, который использует GitHub Copilot SDK, — это ручные запуски major-review.

Этот процесс задокументирован в docs/dogfooding.md, включая:

  • workflow GitHub Actions
  • подпроект агента в agents/copilot-maven-tools-agent/
  • прямой режим MCP minor/patch против режима major-review на базе Copilot
  • необходимую настройку COPILOT_BOT_PAT для создания PR и запусков major-review
  • инструкции по ручному запуску

FAQ

  • Это заменяет Renovate или Dependabot? Для проектов JVM на базе Maven Central — да. Maven Tools MCP является слоем интеллекта по зависимостям, а поведение замены определяется workflow агента, построенного поверх него. В этом репозитории еженедельный workflow самообновления уже заменяет рутинные PR на безопасные minor и patch обновления через прямые вызовы MCP, оставляя major обновления для ручного обзора с поддержкой Copilot.
  • Работает ли это в офлайне? Не полностью. Незакэшированные запросы требуют доступа к сети Maven Central.
  • Подходит ли это для Gradle или других JVM-средств сборки? Да, при условии, что проект зависит от библиотек, разрешаемых через координаты Maven Central.

Для дополнительных замечаний по использованию смотрите раздел FAQ в docs/examples.md.

Благодарности

Разрешитель эффективного POM под com.arvindand.mcp.maven.pom следует структуре разрешения maxxq-org/maxxq-maven (MIT, Guy Chauliac), ограниченной здесь разрешением объявленных зависимостей. Смотрите NOTICE.

Дополнительные документы

  • docs/setup.md - установка, конфигурация клиента, варианты образов, варианты сборки из исходников
  • docs/tools.md - полный каталог инструментов, параметры и поведение ответов
  • docs/examples.md - практические prompt-ы, продвинутые сценарии использования, переиспользуемые команды и замечания FAQ
  • docs/dogfooding.md - еженедельный workflow самообновления и интеграция агента
  • docs/troubleshooting.md - распространённые проблемы окружения и их решения
  • docs/architecture.md - принципы проектирования, варианты транспорта/времени выполнения и технические замечания
  • CORPORATE-CERTIFICATES.md - поддержка настраиваемых корневых сертификатов для закрытых сетей

Дополнительное чтение

Участие в разработке

{
  "servers": {
    "maven-tools": {
      "type": "stdio",
      "command": "docker",
      "args": ["run", "-i", "--rm", "arvindand/maven-tools-mcp:latest"]
    }
  }
}

Если вы хотите собрать или протестировать локально, начните с docs/setup.md и вспомогательных скриптов в build/.

История проекта и примечания к выпускам находятся в CHANGELOG.md.

License

Этот проект лицензирован по лицензии MIT. См. LICENSE.

Author

Arvind Menon

Войдите, чтобы оставить комментарий