Maven Check MCP Server について
Maven Check MCP Serverは、LLMからMaven Centralのアーティファクトのバージョンや存在状況を照会できます。セマンティックバージョン比較、パッケージ形式とClassifierに対応し、依存関係の一括確認も行えます。
主な機能
- 01最新アーティファクトバージョンの取得
- 02指定バージョンの存在確認
- 03メジャー・マイナー・パッチ比較
- 04パッケージ形式とClassifierへの対応
- 05依存関係の一括確認
活用シーン
- 01Maven依存関係のバージョン確認
- 02メジャー・マイナー・パッチ更新の選択
- 03依存関係リスト内の複数バージョンの検証
MCP 対応
バージョン取得、存在確認、セマンティックバージョンの各要素の比較、依存関係の一括処理を行う5つのツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Maven Check MCP Server
LLM が Maven Central に問い合わせてアーティファクトのバージョンを取得できる、軽量な MCP サーバーです。このサーバーを使うと、Claude やその他の LLM が Maven 依存関係の最新バージョンを検索したり、特定のバージョンが存在するか確認したりできます。
特長
- 任意の Maven 依存関係(ライブラリ)の最新バージョンを検索
- 依存関係の特定のバージョンが存在するか確認
- パッケージングタイプ(jar、war、pom など)に対応
- POM 依存関係(-bom または -dependencies のサフィックスが付いたアーティファクト)を自動検出
- classifier に対応
- 適切なセマンティックバージョン比較
- 1 回のリクエストで複数の依存関係を一括処理
- Model Context Protocol(MCP)経由で接続
インストール
# Clone the repository
git clone https://github.com/danielscholl/maven-mcp-server.git
cd maven-mcp-server
# Install dependencies and the package
uv sync && uv pip install -e .
MCP サーバーの設定
この MCP サーバーをプロジェクトで使用するには、以下を .mcp.json に追加します。
{
"mcpServers": {
"maven-check": {
"type": "stdio",
"command": "uv",
"args": ["run", "maven-check"],
"env": {}
}
}
}
使用方法
サーバーを起動します。
uv run maven-check
デバッグログを有効にするには、以下を実行します。
uv run maven-check --debug
ツール
この MCP サーバーは 5 つのツールを提供します。
1. get_maven_latest_version
Maven 依存関係の最新バージョンを取得します。
パラメーター:
dependency(必須):'groupId:artifactId' 形式の依存関係packaging(任意):パッケージングタイプ。デフォルトは 'jar' です(-bom または -dependencies のサフィックスが付いた依存関係には、自動的に 'pom' を使用します)classifier(任意):classifier がある場合は指定します
使用例:
{
"dependency": "org.apache.commons:commons-lang3"
}
{
"dependency": "org.springframework.boot:spring-boot-dependencies"
}
戻り値: 最新バージョンを文字列で返します(例:"3.14.0")
2. check_maven_version_exists
Maven 依存関係の特定のバージョンが存在するか確認します。
パラメーター:
dependency(必須):'groupId:artifactId' 形式の依存関係version(必須):確認するバージョンpackaging(任意):パッケージングタイプ。デフォルトは 'jar' です(-bom または -dependencies のサフィックスが付いた依存関係には、自動的に 'pom' を使用します)classifier(任意):classifier がある場合は指定します
使用例:
{
"dependency": "org.apache.commons:commons-lang3",
"version": "3.14.0"
}
{
"dependency": "org.springframework.boot:spring-boot-dependencies",
"version": "3.2.0"
}
戻り値: バージョンが存在するかどうかを示すブール値("true" または "false")
3. find_maven_latest_component_version
セマンティックバージョニングのコンポーネント(major、minor、patch)に基づいて、Maven 依存関係の最新バージョンを取得します。
パラメーター:
dependency(必須):'groupId:artifactId' 形式の依存関係version(必須):セマンティックバージョン形式(MAJOR.MINOR.PATCH)のバージョンtarget_component(必須):最新バージョンを検索するコンポーネント。指定できる値は "major"、"minor"、"patch" のいずれかですpackaging(任意):パッケージングタイプ。デフォルトは 'jar' です(-bom または -dependencies のサフィックスが付いた依存関係には、自動的に 'pom' を使用します)classifier(任意):classifier がある場合は指定します
使用例:
{
"dependency": "org.apache.commons:commons-lang3",
"version": "3.12.0",
"target_component": "minor"
}
{
"dependency": "org.springframework.boot:spring-boot-dependencies",
"version": "3.1.0",
"target_component": "minor"
}
戻り値: 最新バージョンを文字列で返します(例:"3.14.0")
対象コンポーネントごとの動作
- major:利用可能なすべてのバージョンの中で、最も大きい major バージョンを返します
- minor:指定された major バージョン内で、最も大きい minor バージョンを返します
- patch:指定された major.minor バージョン内で、最も大きい patch バージョンを返します
4. get_maven_all_latest_versions
1 回の呼び出しで、すべてのセマンティックバージョニング要素(メジャー、マイナー、パッチ)の最新バージョンを取得します。
パラメーター:
dependency(必須):'groupId:artifactId' 形式の依存関係version(必須):セマンティックバージョン形式(MAJOR.MINOR.PATCH)のバージョンpackaging(任意):パッケージングタイプ。既定値は 'jar' です(-bom または -dependencies 接尾辞が付いた依存関係には、自動的に 'pom' が使用されます)classifier(任意):存在する場合は classifier
例:
{
"dependency": "org.apache.commons:commons-lang3",
"version": "3.12.0"
}
{
"dependency": "org.springframework.boot:spring-boot-dependencies",
"version": "3.1.0"
}
戻り値: 各要素の最新バージョンを含む JSON オブジェクト:
{
"latest_major_version": "3.14.0",
"latest_minor_version": "3.12.0",
"latest_patch_version": "3.12.0"
}
5. batch_maven_versions_check
複数の Maven 依存関係の最新バージョンを 1 回のバッチリクエストで確認します。依存関係が多数あるプロジェクトで作業する際の API 呼び出し回数を減らせます。
パラメーター:
dependencies(必須):確認する依存関係オブジェクトのリスト。それぞれに以下を含みます:dependency(必須):'groupId:artifactId' 形式の依存関係version(必須):サポートされている任意の形式のバージョンpackaging(任意):パッケージングタイプ。既定値は 'jar' です(-bom または -dependencies 接尾辞が付いた依存関係には、自動的に 'pom' が使用されます)classifier(任意):存在する場合は classifier
例:
{
"dependencies": [
{
"dependency": "org.apache.commons:commons-lang3",
"version": "3.12.0"
},
{
"dependency": "org.springframework.boot:spring-boot-dependencies",
"version": "3.1.0"
},
{
"dependency": "org.json:json",
"version": "20231013"
}
]
}
戻り値: 各依存関係の概要と結果を含む JSON オブジェクト:
{
"summary": {
"total": 3,
"success": 3,
"failed": 0
},
"dependencies": [
{
"dependency": "org.apache.commons:commons-lang3",
"status": "success",
"versions": {
"latest_major_version": "3.14.0",
"latest_minor_version": "3.12.0",
"latest_patch_version": "3.12.0"
}
},
{
"dependency": "org.springframework.boot:spring-boot-dependencies",
"status": "success",
"versions": {
"latest_major_version": "3.2.0",
"latest_minor_version": "3.1.5",
"latest_patch_version": "3.1.0"
}
},
{
"dependency": "org.json:json",
"status": "success",
"versions": {
"latest_major_version": "20240303",
"latest_minor_version": "20240303",
"latest_patch_version": "20240303"
}
}
]
}
仕組み
サーバーは次の処理を行います:
- Maven Central Repository Search API にクエリを送信します
- 依存関係の形式を解析して検証します
- POM 依存関係を自動的に検出します:
- 「-bom」または「-dependencies」接尾辞が付いたアーティファクトを識別します
- これらのアーティファクトには「pom」パッケージングタイプを使用します
- 最新バージョンを照会する場合:
- アーティファクトのすべてのバージョンを取得します
- 適切なセマンティックバージョニングのルールに従って並べ替えます
- 最も新しいバージョンを返します
- バージョンの存在を確認する場合:
- 特定のバージョンについて Maven Central に直接クエリを送信します
- そのバージョンが存在するかどうかを返します
- バッチでバージョンを確認する場合:
- 複数の依存関係リクエストを 1 回の呼び出しで処理します
- 各依存関係について、成功/エラーのステータスを含む詳細な結果を返します
- 成功したリクエスト数と失敗したリクエスト数の概要を提示します
開発
テスト
すべてのテストを実行します:
uv run pytest
Claude での使用
サーバーをセットアップし、Claude Code を接続したら、次のようにツールを使用できます:
-
Maven 依存関係の最新バージョンを取得する:
What is the latest version of org.springframework:spring-framework-bom -
特定のバージョンが存在するか確認する:
Does version 3.14.0 of org.apache.commons:commons-lang3 exist? -
最新のパッチバージョンを取得する:
I'm using version 2.0.2 of org.springdoc:springdoc-openapi-starter-webmvc-ui what is the latest patch? -
BOM および POM 依存関係を扱う:
What is the latest version of org.springframework.boot:spring-boot-dependencies?サーバーは「-dependencies」または「-bom」接尾辞が付いた依存関係を自動的に検出し、POM パッケージングタイプを使用します。
-
1 回の呼び出しですべての最新バージョンを取得する:
Check latest versions org.springframework.boot:spring-boot-dependencies (currently using 3.1.0)これにより、メジャー、マイナー、パッチの各最新バージョンを 1 回の呼び出しで取得でき、アップグレードの選択肢を効率よく把握できます。
-
バッチ処理で複数の依存関係を一度に確認する:
I need to check the latest versions for: - org.apache.commons:commons-lang3 (currently using 3.12.0) - org.springframework.boot:spring-boot-dependencies (currently using 3.1.0) - org.json:json (currently using 20231013)バッチ処理ツールは、すべての依存関係を 1 回のリクエストで確認するため、複数の依存関係があるプロジェクトでの効率が向上します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。