Maven Tools Mcp Server について
Maven Tools MCP Server は、Maven Central のライブデータを用いて JVM 依存関係を調べるための MCP サーバーです。単純なバージョン検索以上の機能が必要な開発者やエージェント向けで、安定版フィルタリング、アップグレード比較、CVE・ライセンス情報の確認に対応します。
主な機能
- 01安定版のフィルタリングとアップグレード比較
- 02依存関係の経過年数とリリース頻度の分析
- 03親 POM と BOM を考慮した POM 解析
- 04需要確認のフラグ付き構造化アップグレード案
- 05任意の Context7 ドキュメント照会
活用シーン
- 01pom.xml の依存関係について新しいバージョンとリスクを確認
- 02依存関係の脆弱性とライセンスの監査
- 03エージェントが検証・適用できる Maven アップグレード計画
MCP 対応
本プロジェクトは、Maven 依存関係の照会、POM 解析、アップグレード提案のツールを MCP クライアントに提供する MCP サーバーです。Docker イメージとして配布され、STDIO または HTTP で接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Maven Tools MCP サーバー
Maven Tools MCP Server は、MCP 対応クライアントが Maven Central の最新データを使って JVM の依存関係を実用的に調査できるようにします。
単純なバージョン検索にとどまらず、安定性による絞り込み、アップグレードの比較、依存関係の健全性に関するシグナル、ライセンス情報、CVE チェック、Context7 によるオプションのドキュメント検索を必要とする開発者やエージェント向けに構築されています。

役立つ場面
- バージョンの確認: 安定版を見つけ、メジャー/マイナー/パッチの情報を踏まえてアップグレードを比較します。
- 依存関係の監査: 経過期間、リリース頻度、既知の脆弱性、ライセンス情報を調査します。
- POM の分析: プロジェクトをビルドせずに、親 POM や BOM を介して宣言された依存関係のバージョンを解決します。
- アップグレード計画: エージェントが検証して適用できる構造化された編集内容を取得します。メジャーアップグレード、競合、オーバーライドにはレビューが必要であることが示されます。
- ドキュメント: オプションの Context7 ツールを使ってライブラリのドキュメントを検索します。
座標ベースのツールは Maven、Gradle、SBT、Mill のプロジェクトで動作します。POM 分析ツールとアップグレード計画ツールは Maven の pom.xml ファイルを受け取ります。
クイックスタート
前提条件: Docker がインストールされ、実行されていること。ローカルに Java をインストールする必要はありません。Docker を使わずにセットアップする方法については、JAR のビルドと実行を参照してください。
Claude Desktop
Claude Desktop の設定に maven-tools エントリーを追加します(設定ファイルの場所を参照してください)。
{
"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 | はい | Streamable HTTP クライアントとサイドカーワークフロー |
現在のリリースは v3.2.3 です。バージョンを固定する場合は、:3.2.3、:3.2.3-noc7、または :3.2.3-http を使用してください。いずれも Linux AMD64 と ARM64 に対応しています。
CONTEXT7_API_KEY は任意です。ほとんどの環境では、キーなしで開始できます。環境で Context7 認証が必要な場合、または匿名利用の制限を避けたい場合は、-e CONTEXT7_API_KEY を指定して Docker に渡してください。
JAR やネイティブコンテナーの使用方法、Docker Compose、環境に関する注意事項など、詳しいセットアップ手順については docs/setup.md を参照してください。
利用可能なツール
デフォルトのイメージでは 11 個の MCP ツールが公開され、-noc7 ではコアツール 9 個が公開されます。
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 | 宣言された依存関係のバージョンを解決し、その出所を特定して、BOM の競合を明らかにします |
recommend_pom_upgrades | 実行可能な POM アップグレードの推奨事項を作成し、レビューが必要な変更を指摘します |
Context7 ドキュメントツール
| ツール | 機能 |
|---|---|
resolve_library_id | ドキュメントライブラリの識別子を検索します |
query_docs | Context7 のライブラリ ID を使ってドキュメントを取得します |
パラメーター、例、ツールごとの説明については、docs/tools.md を参照してください。
POM を考慮した依存関係分析
2 つの POM ツールは、親の継承、プロパティ、依存関係管理(インポートされた BOM を含む)に Apache Maven Model Builder を使用します。生の POM XML と、未リリースの親や兄弟モジュール向けの任意の sideloadedPoms バンドルを受け付けます。
analyze_pom_dependenciesは、有効なバージョンを返し、宣言をEXPLICIT、MANAGED、EXPLICIT_OVERRIDEに分類して、管理している BOM と競合を特定します。recommend_pom_upgradesは、機械的な編集向けのdeterministicActionsと、メジャーアップグレード、BOM の競合、明示的なオーバーライド向けのneedsAttentionを返します。アクションには、入力 POM で編集するバージョンフィールドまたはプロパティが示されます。
推奨事項の対象は、編集可能な親/BOM のバージョン、明示的な依存関係、ルートの依存関係管理エントリー、直接のビルド/プラグイン依存関係です。入力 POM 内で編集箇所を一意に特定できない宣言はスキップされます。サーバーは推奨事項を返し、クライアントまたはエージェントが検証して適用します。
分析対象は宣言された依存関係であり、推移的な依存関係グラフ全体ではありません。プロファイルの有効化は、デフォルトで有効なプロファイルに限定されます。POM 分析の詳細と制限を参照してください。
例
Copilot や Claude でよく使われるプロンプトは次のとおりです。
pom.xmlにある依存関係の最新バージョンをすべて確認し、リスクがあるものを指摘してください。
クライアントはツールの結果を組み合わせ、次の内容を報告できます。
- 現在のバージョンと最新バージョン
- アップグレードがメジャー、マイナー、パッチのいずれにあたるか
- 最新リリースが安定版かどうか
- 依存関係が新しい、古くなりつつある、または古い状態に見えるか
- 注意すべき既知の CVE やライセンス上の懸念があるか
「どのライブラリを選ぶべきか」といった、より広範な質問には、Maven のメタデータを Context7 のドキュメントや、エコシステムの背景情報を得るためのクライアント側ウェブ検索と組み合わせてください。
ツールの選択と組み合わせ方については、プロンプトの例またはmaven-tools エージェントスキルを参照してください。
ドッグフーディング
このリポジトリでは、週次の依存関係更新ワークフローで独自のツールを使用しています。Python エージェントが POM を recommend_pom_upgrades に送信し、マイナー/パッチアクションを検証して適用したうえで、レビュー用の PR を作成します。XML エディターは現在のバージョンを確認し、書式を保持します。メジャーアップグレードの手動レビューには GitHub Copilot SDK を使用します。通常の更新に LLM は必要ありません。
エージェント、GitHub Actions ワークフロー、認証情報、手動トリガーについては、ドッグフーディングガイドを参照してください。
よくある質問
- Renovate や Dependabot の代わりになりますか? このサーバーは依存関係の分析とアップグレードの推奨を提供します。ファイルの編集、テスト、スケジュール設定、PR の作成には、別のエージェントまたはワークフローが必要です。同梱のエージェントでは、Maven POM の更新における使用例を示しています。
- オフラインで動作しますか? 完全には動作しません。キャッシュされていないメタデータのクエリには、Maven Central または設定済みのリポジトリへのアクセスが必要です。脆弱性チェックと Context7 のドキュメントにも、外部サービスを使用します。
- Gradle、SBT、Mill のビルドファイルを解析できますか? できません。座標ベースのツールでは、それらの依存関係の Maven 座標を使用してください。ファイル全体の分析で受け付けるのは Maven POM XML です。
その他の使用上の注意については、docs/examples.md の FAQ セクションをご覧ください。
謝辞
com.arvindand.mcp.maven.pom の effective POM リゾルバーは、maxxq-org/maxxq-maven(MIT、Guy Chauliac)の解決方法に倣い、ここでは宣言済み依存関係の解決に範囲を限定しています。NOTICE をご覧ください。
その他のドキュメント
docs/setup.md- インストール、クライアント設定、イメージのバリエーション、ソースからのビルド方法docs/tools.md- ツールの全カタログ、パラメーター、応答の動作docs/examples.md- 実用的なプロンプト、高度なユースケース、再利用可能なコマンド、FAQ の補足docs/dogfooding.md- 毎週のセルフアップデートワークフローとエージェントの統合docs/troubleshooting.md- よくある環境の問題と解決方法docs/architecture.md- 設計原則、トランスポート/ランタイムの選択肢、技術的な補足CORPORATE-CERTIFICATES.md- 制限されたネットワーク向けのカスタム CA 証明書のサポート
関連記事
コントリビューション
ローカルでビルドまたはテストする場合は、docs/setup.md と build/ 内のヘルパースクリプトから始めてください。
main ブランチは 3.2.4-SNAPSHOT です。現行リリースをソースからビルドするには、v3.2.3 をチェックアウトしてください。
プロジェクトの履歴とリリースノートは CHANGELOG.md にあります。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。LICENSE をご覧ください。
作者
Arvind Menon
- GitHub: @arvindand
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。