ALPHA STATUS: This MCP server is currently in early alpha development with limited tooling available. The feature set will expand significantly over time. See the roadmap for planned features.
An official Model Context Protocol (MCP) server for SDKMAN!, enabling AI assistants like Claude to manage Software Development Kits through natural language interactions.
Status: Alpha v0.0.1 | Progress: 2/15 tools implemented
The SDKMAN! MCP Server allows AI assistants to manage development environments without switching to the terminal. Ask Claude to install SDKs, check versions, or manage your development tools directly through conversation.
- Rust 1.70 or higher
- Cargo (bundled with Rust)
git clone https://github.com/sdkman/sdkman-mcp-server.git
cd sdkman-mcp-server
cargo build --releaseThe binary will be available at target/release/sdkman-mcp-server.
cargo install --path .Add to your Claude Desktop configuration:
Linux: ~/.config/Claude/claude_desktop_config.json
macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"sdkman": {
"command": "/path/to/sdkman-mcp-server"
}
}
}Replace /path/to/sdkman-mcp-server with the actual binary path.
The server uses stdio transport per the MCP specification. Refer to your client's documentation for configuration.
Installs SDKMAN! using the official installer from https://get.sdkman.io.
Parameters:
update_rc_files(optional, boolean, default: true) - Update shell RC files
Features:
- Automatic platform detection (Linux, macOS, WSL, Git Bash)
- Existing installation detection
- Handles read-only RC files (eg, NixOS)
- Network retry with exponential backoff
- Installation verification
Retrieves SDKMAN! script and native version numbers.
Parameters: None
Returns: Version information from ~/.sdkman/var/version and ~/.sdkman/var/version_native
Based on the Product Requirements Document, the following features are planned for v1.0:
| Feature | Tool | Status |
|---|---|---|
| F0: SDKMAN! Installation | ||
install_sdkman |
✓ | |
| F1: Candidate Discovery | ||
list_candidates |
||
search_candidates |
||
list_versions |
||
get_default_version |
||
| F2: SDK Installation | ||
validate_version |
||
install_candidate |
||
| F3: SDK Removal | ||
uninstall_candidate |
||
| F4: Version Management | ||
set_default_version |
||
| F5: Installation Inspection | ||
get_installed_versions |
||
get_current_version |
||
get_platform_info |
||
| F6: Utility Commands | ||
get_candidate_home |
||
get_sdkman_version |
✓ | |
get_sdkman_config |
||
| MCP Resources | ||
sdkman://installed |
||
sdkman://installed/{candidate} |
||
sdkman://config |
Completed: 2/15 tools | Target: v1.0 with all 15 tools and 3 resources
# All tests
cargo test
# With debug output
RUST_LOG=debug cargo test
# Specific test
cargo test get_sdkman_version_integration_testsSet RUST_LOG environment variable:
RUST_LOG=info sdkman-mcp-server # Default
RUST_LOG=debug sdkman-mcp-server # Verbose
RUST_LOG=trace sdkman-mcp-server # Very verboseLogs are written to stderr to avoid interfering with stdio transport.
sdkman-mcp-server/
├── src/
│ ├── main.rs # MCP server implementation
│ ├── lib.rs # Library exports
│ ├── installation.rs # SDKMAN! installation logic
│ ├── versions.rs # Version detection
│ └── utils/ # Utility modules
├── tests/ # Integration tests
├── specs/ # Product specifications
└── Cargo.toml # Dependencies and metadata
| Platform | Support |
|---|---|
| Linux (x86_64, ARM64) | Supported |
| macOS (Intel, Apple Silicon) | Supported |
| Windows (WSL, Git Bash) | Supported |
| Windows (Native) | Not supported |
- Path validation prevents directory traversal
- HTTPS for all network communications
- SHA256 checksum verification for downloads
- No credential storage
- Fail-safe error handling
Report security issues via GitHub Issues.
- Rust (Edition 2021) - Systems programming language
- rmcp v0.11 - Rust MCP SDK
- Tokio - Asynchronous runtime
- serde - Serialization framework
- tracing - Structured logging
- SDKMAN! CLI - Official SDKMAN! command-line interface
- SDKMAN! Native CLI - Official SDKMAN! native 🦀 extensions
- Model Context Protocol - Protocol specification
- rmcp - Rust MCP SDK
See LICENSE file for details.