mcpField
S
SDKMAN Interactive CLI

SDKMAN Interactive CLI

本地服务
github.com/ocean-zhc开发工具179 周前更新

关于 SDKMAN Interactive CLI

SDKMAN Interactive CLI 为 SDKMAN 增加交互式浏览、筛选和安装功能,适合希望从格式化列表中选择版本,或通过 MCP 兼容 AI 助手管理 SDK 的用户。

主要功能

  1. 01交互式选择 SDK 版本
  2. 02按关键词筛选版本
  3. 03支持所有 SDKMAN 候选项
  4. 04列出、安装并查看当前 SDK

适用场景

  1. 01查找符合关键词的 Java 版本
  2. 02选择并安装 Kotlin 或 Gradle 版本
  3. 03通过 MCP 兼容助手管理 SDK

MCP 相关

它作为 MCP 服务运行,让兼容的 AI 助手调用 SDKMAN 功能,包括列出和安装版本、查看当前 SDK。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

SDKMAN 交互式 CLI

SDKMAN(Software Development Kit Manager)的交互式命令行界面,让浏览、筛选和安装 SDK 变得更加轻松。

中文文档

功能

  • 交互式版本选择,并以格式化列表显示
  • 按关键字筛选版本(例如,输入“21”查找 Java 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.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 助手:

  1. 将助手配置为使用此模块作为 MCP 服务
  2. 提供模块路径:src.sdkman_mcp.sdk_commands
  3. 确保环境可以访问你的 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 提供增强界面:

  1. 通过 shell 执行 SDKMAN 命令
  2. 解析并格式化输出
  3. 提供交互式选择界面
  4. 通过适当的确认步骤处理安装

故障排除

常见问题及解决方案:

  • 未找到 SDKMAN:确保 SDKMAN 已正确安装在 ~/.sdkman,或设置 SDKMAN_DIR 环境变量
  • 权限被拒绝:检查 SDKMAN 脚本是否具有执行权限
  • 未找到命令:确保系统上有 bash(运行 SDKMAN 命令时必需)
  • MCP 集成问题:检查 AI 助手是否具有执行命令所需的权限

贡献

欢迎贡献!欢迎提交 Pull Request。

许可证

此项目采用 MIT License 许可,详情请参阅 LICENSE 文件。

致谢

  • SDKMAN - Software Development Kit Manager
  • 感谢所有为此项目作出贡献的人

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。