SDKMAN Interactive CLI について
SDKMAN Interactive CLIは、SDKMANでのSDKの参照、絞り込み、インストールを対話形式で行うツールです。バージョンを一覧から選びたいSDKMANユーザーや、MCP対応AIアシスタント経由でSDKを管理するユーザー向けです。
主な機能
- 01SDKバージョンの対話型選択
- 02キーワードによるバージョン絞り込み
- 03すべてのSDKMAN候補に対応
- 04SDKの一覧表示、インストール、状態確認
活用シーン
- 01キーワードに合うJavaバージョンの検索
- 02KotlinやGradleのバージョン選択とインストール
- 03MCP対応アシスタント経由でのSDK管理
MCP 対応
MCPサーバーとして動作し、対応するAIアシスタントからSDKMANのバージョン一覧、インストール、現在のSDK確認などを実行できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SDKMAN Interactive CLI
SDKMAN(Software Development Kit Manager)用のインタラクティブなコマンドラインインターフェースです。SDK の閲覧、絞り込み、インストールを簡単に行えます。
特長
- 整形された表示によるインタラクティブなバージョン選択
- キーワードによるバージョンの絞り込み(例:「21」で Java 21 を検索)
- すべての SDKMAN 候補に対応(Java、Kotlin、Gradle など)
- 充実したコマンドラインインターフェース
- バージョン情報を見やすく表示
前提条件
- Python 3.6+
- SDKMAN がインストールされ、設定済みであること
- Bash シェル環境
インストール
このリポジトリをクローンします。
git clone https://github.com/yourusername/sdkman-mcp.git
cd sdkman-mcp
使用方法
Python モジュールとして使用
from src.sdkman_mcp.sdk_commands import sdk_interactive_install
# Install Java with interactive selection
result = sdk_interactive_install("java")
# Install Java 21.x with filtering
result = sdk_interactive_install("java", "21")
コマンドラインインターフェース
パッケージにはすぐに使えるスクリプトが含まれています。
汎用 SDK インストーラー
任意の SDKMAN 候補をインストールします。
python examples/install_sdk.py java # Install any Java version
python examples/install_sdk.py java 21 # Install Java 21.x
python examples/install_sdk.py kotlin # Install Kotlin
python examples/install_sdk.py gradle 8 # Install Gradle 8.x
JDK 専用インストーラー
python examples/install_jdk.py # Install any JDK version
python examples/install_jdk.py 21 # Install JDK 21.x
メイン CLI
モジュールを直接実行することもできます。
python -m src.sdkman_mcp.sdk_commands install java --version 21
python -m src.sdkman_mcp.sdk_commands list java
python -m src.sdkman_mcp.sdk_commands current
AI アシスタントでの使用(MCP 連携)
SDKMAN Interactive CLI は、Model Context Protocol(MCP)に対応した AI アシスタントと連携できます。これにより、AI との会話を通じて SDK を直接管理できます。
Claude Desktop との連携
このツールを Claude Desktop で使用するには、Claude の設定ファイルを編集します。
- MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
次の設定を追加します。
{
"mcpServers": {
"sdkman": {
"command": "python",
"args": ["-m", "src.sdkman_mcp.sdk_commands"],
"env": {
"SDKMAN_DIR": "~/.sdkman" // Optional, defaults to ~/.sdkman
},
"alwaysAllow": [
"list",
"current"
]
}
}
}
その他の MCP 対応 AI アシスタントでの使用
MCP に対応したその他の AI アシスタントでは、次の手順を実行します。
- このモジュールを MCP サーバーとして使用するよう、アシスタントを設定します
- モジュールへのパスを指定します:
src.sdkman_mcp.sdk_commands - 環境から SDKMAN のインストール先にアクセスできることを確認します
利用可能な MCP コマンド
MCP と連携すると、自然言語を使って SDKMAN を操作できます。
- 「利用可能な Java のバージョンを一覧表示して」
- 「Java 21 をインストールして」
- 「現在インストールされている SDK を表示して」
- 「Gradle を最新バージョンに更新して」
- 「Java 17 をデフォルトバージョンに設定して」
AI アシスタントはこれらのコマンドを解釈し、適切な SDKMAN 関数を使って実行します。
出力例
インタラクティブインストーラーを実行すると、利用可能なバージョンが整形された一覧で表示されます。
=========================================================================
Available java versions (filter: '21') - 12 results
=========================================================================
Number Vendor | Use | Version | Dist | Status | Identifier
------ ------------ | ---- | ---------- | --------- | ----------- | -------------------------
1 Correto | | 21.0.7 | amzn | | 21.0.7-amzn
2 Correto | | 21.0.6 | amzn | | 21.0.6-amzn
3 GraalVM CE | | 21.0.2 | graalce | | 21.0.2-graalce
4 GraalVM Oracle| | 21.0.7 | graal | | 21.0.7-graal
5 GraalVM Oracle| | 21.0.6 | graal | | 21.0.6-graal
6 Java.net | | 21.0.2 | open | | 21.0.2-open
7 Liberica | | 21.0.7.fx | librca | | 21.0.7.fx-librca
8 Liberica | | 21.0.7 | librca | | 21.0.7-librca
9 Liberica | | 21.0.6.fx | librca | | 21.0.6.fx-librca
10 Liberica | | 21.0.6 | librca | | 21.0.6-librca
Note: >>> in the Use column indicates the current default version
Please select a version number (or enter 'q' to exit):
API リファレンス
このモジュールでは、次の関数を利用できます。
sdk_interactive_install(candidate, search_version=None):インタラクティブなインストールparse_sdk_versions(output, search_version=None):SDK バージョン一覧を解析- その他の標準的な SDKMAN 関数(list、install、current など)
仕組み
このツールは、次の方法で SDKMAN のインターフェースを拡張します。
- シェルを介して SDKMAN コマンドを実行します
- 出力を解析して整形します
- インタラクティブな選択インターフェースを提供します
- 適切な確認手順を踏んでインストールを実行します
トラブルシューティング
よくある問題と解決方法:
- SDKMAN が見つからない:SDKMAN が
~/.sdkmanに正しくインストールされていることを確認するか、SDKMAN_DIR環境変数を設定してください - アクセスが拒否される:SDKMAN スクリプトに実行権限があることを確認してください
- コマンドが見つからない:システムで Bash が使用可能であることを確認してください(SDKMAN コマンドの実行に必要です)
- MCP 連携の問題:AI アシスタントにコマンドを実行する適切な権限があることを確認してください
貢献
貢献を歓迎します。お気軽にプルリクエストを送信してください。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルを参照してください。
謝辞
- SDKMAN - Software Development Kit Manager
- このプロジェクトのすべてのコントリビューター
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。