Maven Dependencies MCP Server について
Maven Dependencies MCP Server は、Maven 依存関係のバージョンを確認する MCP サーバーで、Maven Central から最新の安定版を取得します。LLM で Maven 依存関係を検証したい開発者向けで、デフォルトではプレリリース版を除外します。
主な機能
- 01最新の安定版の取得
- 02依存関係バージョンの存在確認
- 03依存関係の最近のバージョン一覧
- 04プレリリース版の自動判定
- 05完全な Maven 座標への対応
- 06stdio および SSE トランスポートへの対応
活用シーン
- 01LLM による Maven 依存関係の最新安定版の確認
- 02指定した依存関係バージョンの存在確認
- 03依存関係の最近のリリース履歴の確認
MCP 対応
このプロジェクトは MCP サーバーであり、Maven Central の依存関係バージョンを照会するツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| dependency | string | はい | "groupId:artifactId[:version][:packaging][:classifier]" 形式の Maven 座標(例:"org.springframework:spring-core" または "org.springframework:spring-core:5.3.20:jar") |
| excludePreReleases | boolean | いいえ | プレリリースバージョン(alpha、beta、milestone、RC、snapshot)を除外するかどうか。デフォルト:true |
詳細
Maven 依存関係 MCP サーバー
Maven の依存関係バージョンを確認するツールを提供する MCP(Model Context Protocol)サーバーです。このサーバーを使うと、LLM は Maven の依存関係を検証し、Maven Central Repository から最新バージョンを取得できます。
インストール
この 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)に対応します
開発する場合:
- このリポジトリをクローンします
- 依存関係をインストールします:
npm install - サーバーをビルドします:
npm run build
設定
MCP 設定ファイルにサーバーを追加します。
{
"mcpServers": {
"maven-deps-server": {
"command": "npx",
"args": ["mcp-maven-deps"]
}
}
}
グローバルにインストールした場合は、次のようにすることもできます。
{
"mcpServers": {
"maven-deps-server": {
"command": "mcp-maven-deps"
}
}
}
トランスポートオプション
サーバーは、次の 2 つのトランスポートモードをサポートします。
- stdio(デフォルト)- 標準入力/出力による通信
- 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 接続の問題
- 不正な形式のレスポンス
- バージョン情報の欠落
開発
サーバーを変更または拡張するには:
src/index.tsを変更しますnpm run buildを使用して再ビルドします- 変更を適用するため、MCP サーバーを再起動します
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。