mcpField
M
Maven Dependencies MCP Server

Maven Dependencies MCP Server

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

Maven Dependencies MCP Server について

Maven Dependencies MCP Server は、Maven 依存関係のバージョンを確認する MCP サーバーで、Maven Central から最新の安定版を取得します。LLM で Maven 依存関係を検証したい開発者向けで、デフォルトではプレリリース版を除外します。

主な機能

  1. 01最新の安定版の取得
  2. 02依存関係バージョンの存在確認
  3. 03依存関係の最近のバージョン一覧
  4. 04プレリリース版の自動判定
  5. 05完全な Maven 座標への対応
  6. 06stdio および SSE トランスポートへの対応

活用シーン

  1. 01LLM による Maven 依存関係の最新安定版の確認
  2. 02指定した依存関係バージョンの存在確認
  3. 03依存関係の最近のリリース履歴の確認

MCP 対応

このプロジェクトは MCP サーバーであり、Maven Central の依存関係バージョンを照会するツールを MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"maven": {
"command": "npx",
"args": [
"-y",
"mcp-maven-deps"
]
}
}
}
起動コマンドnpx -y mcp-maven-deps

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-maven-deps

ツール

3

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
dependencystringはい"groupId:artifactId[:version][:packaging][:classifier]" 形式の Maven 座標(例:"org.springframework:spring-core" または "org.springframework:spring-core:5.3.20:jar")
excludePreReleasesbooleanいいえプレリリースバージョン(alpha、beta、milestone、RC、snapshot)を除外するかどうか。デフォルト:true

詳細

npm バージョン

Maven 依存関係 MCP サーバー

Maven の依存関係バージョンを確認するツールを提供する MCP(Model Context Protocol)サーバーです。このサーバーを使うと、LLM は Maven の依存関係を検証し、Maven Central Repository から最新バージョンを取得できます。

maven-mcp-server MCP サーバー

インストール

この MCP サーバーは、npm を使用してグローバルにインストールできます。

npm install -g mcp-maven-deps

または、npx を使用して直接実行できます。

npx mcp-maven-deps
Smithery 経由でのインストール

Smithery を使って、Maven Dependencies Server を Claude Desktop に自動的にインストールするには、次のコマンドを実行します。

npx -y @smithery/cli install maven-deps-server --client claude

機能

  • 任意の Maven 依存関係の最新の安定版リリースを取得します(デフォルトではプレリリースを除外します)
  • Maven 依存関係が存在するかどうかを確認します
  • 依存関係の特定のバージョンが存在するかどうかを確認します
  • オプションでプレリリースをフィルタリングして、Maven 依存関係のバージョンを一覧表示します
  • プレリリースをインテリジェントに検出します(alpha、beta、milestone、RC、snapshot)
  • packaging と classifier を含む完全な Maven 座標をサポートします
  • Maven Central Repository のデータにリアルタイムでアクセスします
  • 複数のビルドツール形式(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"
    }
  }
}

トランスポートオプション

サーバーは、次の 2 つのトランスポートモードをサポートします。

  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

MCP 設定で SSE トランスポートを使用する場合:

{
  "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 依存関係のバージョンをデプロイ順(新しいものから順)に一覧表示します。プレリリースのフィルタリングと深さの指定は任意です。出力は 1 行につき 1 バージョンです。

入力スキーマ:

{
  "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 Central 上の maven-metadata.xml(https://repo1.maven.org/maven2/<g>/<a>/maven-metadata.xml)を直接照会します。これは、Maven と Gradle が依存関係の解決時に参照する正式なファイルです。デプロイ後数秒以内に更新されるため、結果が古くなることはありません。
  • 完全な Maven 座標(groupId:artifactId:version:packaging:classifier)をサポートします
  • 正規表現パターンマッチングを使用してプレリリースをインテリジェントに検出します
  • maven-metadata.xml に記録されたデプロイ順(新しいものから順)でバージョンを返します
  • 無効な依存関係や API の問題を処理します
  • 有効な依存関係に対して、解析しやすいクリーンなバージョン文字列を返します
  • バージョンの存在確認ではブール値を返します

プレリリースの検出

サーバーは、次のパターンを使用してプレリリースバージョンを自動的に検出します。

  • アルファ版:-alpha、-a
  • ベータ版:-beta、-b
  • マイルストーン:-milestone、-m、-M
  • リリース候補:-rc、-cr
  • スナップショット:-snapshot

例:

  • 7.0.0-M6 → プレリリース(マイルストーン)
  • 6.2.8 → 安定版リリース
  • 3.1.0-SNAPSHOT → プレリリース(スナップショット)
  • 2.5.0-RC1 → プレリリース(リリース候補)

破壊的変更に関する注意: ツール名がget_maven_last_updated_versionからget_latest_releaseに変更され、デフォルトでプレリリースを除外するようになりました。これにより、本番アプリケーションではデフォルトで安定版を取得し、必要に応じてプレリリースにも引き続きアクセスできます。

エラー処理

サーバーは、さまざまなエラーケースに対応します。

  • 依存関係の形式が無効
  • バージョン形式が無効
  • 依存関係が存在しない
  • 安定版リリースが見つからない(フィルタリングが有効な場合)
  • API 接続の問題
  • 不正な形式のレスポンス
  • バージョン情報の欠落

開発

サーバーを変更または拡張するには:

  1. src/index.tsを変更します
  2. npm run buildを使用して再ビルドします
  3. 変更を適用するため、MCP サーバーを再起動します

ライセンス

MIT

コメント

MCP は初めてですか?

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

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