Sdkman MCP Server
No description available
Ask AI about Sdkman MCP Server
Powered by Claude Β· Grounded in docs
I know everything about Sdkman MCP Server. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
SDKMAN! MCP Server
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
Overview
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.
Installation
Prerequisites
- Rust 1.70 or higher
- Cargo (bundled with Rust)
Build from Source
git clone https://github.com/sdkman/sdkman-mcp-server.git
cd sdkman-mcp-server
cargo build --release
The binary will be available at target/release/sdkman-mcp-server.
Install with Cargo
cargo install --path .
Configuration
Claude Desktop
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.
Other MCP Clients
The server uses stdio transport per the MCP specification. Refer to your client's documentation for configuration.
Available Tools
install_sdkman
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
get_sdkman_version
Retrieves SDKMAN! script and native version numbers.
Parameters: None
Returns: Version information from ~/.sdkman/var/version and ~/.sdkman/var/version_native
Roadmap
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
Development
Running Tests
# All tests
cargo test
# With debug output
RUST_LOG=debug cargo test
# Specific test
cargo test get_sdkman_version_integration_tests
Logging
Set 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 verbose
Logs are written to stderr to avoid interfering with stdio transport.
Project Structure
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
| Platform | Support |
|---|---|
| Linux (x86_64, ARM64) | Supported |
| macOS (Intel, Apple Silicon) | Supported |
| Windows (WSL, Git Bash) | Supported |
| Windows (Native) | Not supported |
Security
- 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.
Technology Stack
- Rust (Edition 2021) - Systems programming language
- rmcp v0.11 - Rust MCP SDK
- Tokio - Asynchronous runtime
- serde - Serialization framework
- tracing - Structured logging
Related Projects
- SDKMAN! CLI - Official SDKMAN! command-line interface
- SDKMAN! Native CLI - Official SDKMAN! native π¦ extensions
- Model Context Protocol - Protocol specification
- rmcp - Rust MCP SDK
Resources
License
See LICENSE file for details.
