SDKMAN交互式命令行界面
SDKMAN(软件开发工具包管理器)的交互式命令行界面,使浏览、过滤和安装SDK变得更加容易。
特性
- 带格式化显示的交互式版本选择
- 按关键字进行版本筛选(例如,Java 21的“21”)
- 支持所有SDKMAN候选人(Java、Kotlin、Gradle等)
- 全面的命令行界面
- 用户友好的版本信息显示
先决条件
- Python 3.6+
- SDKMAN已安装并配置
- Bash shell环境
安装
克隆此存储库:
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.xJDK特定安装程序
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可以与支持模型上下文协议(MCP)的AI助手集成,允许您通过与AI的对话直接管理SDK。
与Claude Desktop集成
要在Claude Desktop中使用此工具,请编辑Claude配置文件:
- MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%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功能(列表、安装、当前等)
运作原理
该工具通过以下方式为SDKMAN提供了增强的界面:
- 通过shell执行SDKMAN命令
- 解析和格式化输出
- 提供交互式界面供选择
- 通过适当的确认步骤处理安装
故障排除
常见问题和解决方案:
- 未找到SDKMAN:确保SDKMAN正确安装在
~/.sdkman或设置SDKMAN_DIR环境变量 - 权限不足:检查SDKMAN脚本是否具有执行权限
- 未找到命令:确保bash在您的系统上可用(运行SDKMAN命令所需)
- MCP集成问题:检查AI助手是否具有执行命令的适当权限
贡献
欢迎投稿!请随时提交拉取请求。
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
致谢
- SDKMAN -软件开发工具包管理器
- 此项目的所有贡献者
