mcpField
M
Maven Check MCP Server

Maven Check MCP Server

ローカル
github.com/danielscholl開発ツール078 週間前に更新

Maven Check MCP Server について

Maven Check MCP Serverは、LLMからMaven Centralのアーティファクトのバージョンや存在状況を照会できます。セマンティックバージョン比較、パッケージ形式とClassifierに対応し、依存関係の一括確認も行えます。

主な機能

  1. 01最新アーティファクトバージョンの取得
  2. 02指定バージョンの存在確認
  3. 03メジャー・マイナー・パッチ比較
  4. 04パッケージ形式とClassifierへの対応
  5. 05依存関係の一括確認

活用シーン

  1. 01Maven依存関係のバージョン確認
  2. 02メジャー・マイナー・パッチ更新の選択
  3. 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": {}
    }
  }
}

VS Code に UVX でインストール

使用方法

サーバーを起動します。

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"
      }
    }
  ]
}

仕組み

サーバーは次の処理を行います:

  1. Maven Central Repository Search API にクエリを送信します
  2. 依存関係の形式を解析して検証します
  3. POM 依存関係を自動的に検出します:
    • 「-bom」または「-dependencies」接尾辞が付いたアーティファクトを識別します
    • これらのアーティファクトには「pom」パッケージングタイプを使用します
  4. 最新バージョンを照会する場合:
    • アーティファクトのすべてのバージョンを取得します
    • 適切なセマンティックバージョニングのルールに従って並べ替えます
    • 最も新しいバージョンを返します
  5. バージョンの存在を確認する場合:
    • 特定のバージョンについて Maven Central に直接クエリを送信します
    • そのバージョンが存在するかどうかを返します
  6. バッチでバージョンを確認する場合:
    • 複数の依存関係リクエストを 1 回の呼び出しで処理します
    • 各依存関係について、成功/エラーのステータスを含む詳細な結果を返します
    • 成功したリクエスト数と失敗したリクエスト数の概要を提示します

開発

テスト

すべてのテストを実行します:

uv run pytest

Claude での使用

サーバーをセットアップし、Claude Code を接続したら、次のようにツールを使用できます:

  1. Maven 依存関係の最新バージョンを取得する:

    What is the latest version of org.springframework:spring-framework-bom 
    
  2. 特定のバージョンが存在するか確認する:

    Does version 3.14.0 of org.apache.commons:commons-lang3 exist?
    
  3. 最新のパッチバージョンを取得する:

    I'm using version 2.0.2 of org.springdoc:springdoc-openapi-starter-webmvc-ui what is the latest patch?
    
  4. BOM および POM 依存関係を扱う:

    What is the latest version of org.springframework.boot:spring-boot-dependencies?
    

    サーバーは「-dependencies」または「-bom」接尾辞が付いた依存関係を自動的に検出し、POM パッケージングタイプを使用します。

  5. 1 回の呼び出しですべての最新バージョンを取得する:

    Check latest versions org.springframework.boot:spring-boot-dependencies (currently using 3.1.0)
    

    これにより、メジャー、マイナー、パッチの各最新バージョンを 1 回の呼び出しで取得でき、アップグレードの選択肢を効率よく把握できます。

  6. バッチ処理で複数の依存関係を一度に確認する:

    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 回のリクエストで確認するため、複数の依存関係があるプロジェクトでの効率が向上します。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。