This guide describes how to build native binaries for mcp-tasks from source code.
GRAALVM_HOME environment variable# Build CLI JAR first
clj -T:build jar-cli
# Build native binary for your platform
GRAALVM_HOME=/path/to/graalvm clj -T:build native-cli
# Binary created at: target/mcp-tasks-<platform>-<arch>
# Build server JAR first
clj -T:build jar-server
# Build native binary for your platform
GRAALVM_HOME=/path/to/graalvm clj -T:build native-server
# Or use Babashka task (builds both JAR and native binary)
bb build-native-server
# Binary created at: target/mcp-tasks-server-<platform>-<arch>
| Feature | Babashka Uberscript | Native Binary |
|---|---|---|
| Size | 48 KB | 38.3 MB |
| Startup Time | ~66ms (help commands) | ~instant (<10ms typical) |
| Runtime Dependency | Requires Babashka installed | None - fully standalone |
| Distribution | Single portable script | Platform-specific executable |
| Best For | Systems with Babashka, scripting | Standalone deployment, no dependencies |
Use Native Binary when:
Use Babashka Uberscript when:
Build failures with GraalVM:
native-image --versionGRAALVM_HOME points to GraalVM root directoryMalli validation warnings during build:
Installation script fails with "Permission denied" (Unix):
/usr/local/bin requires elevated privilegesInstallation script fails with "curl/wget not found" (Unix):
# Install curl on Debian/Ubuntu
sudo apt-get install curl
# Install curl on macOS
brew install curl
# Or install wget as alternative
sudo apt-get install wget # Debian/Ubuntu
brew install wget # macOS
Installation script fails with network errors:
curl -I https://github.com"Permission denied" errors after manual installation (Unix):
chmod +x mcp-tasks
macOS "unidentified developer" warning:
# First run: Right-click → Open, then click "Open"
# Or remove quarantine attribute:
xattr -d com.apple.quarantine mcp-tasks
Windows SmartScreen warning:
"Library not found" errors:
Post-installation verification:
# Verify CLI installation
mcp-tasks --help
# Verify server installation
mcp-tasks-server --help
Configure the server binary in your MCP client:
# Using system-wide installation
claude mcp add mcp-tasks -- /usr/local/bin/mcp-tasks-server
# Or using local binary
claude mcp add mcp-tasks -- /path/to/mcp-tasks-server
Edit your Claude Desktop configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonAdd the server configuration:
{
"mcpServers": {
"mcp-tasks": {
"command": "/usr/local/bin/mcp-tasks-server"
}
}
}
For other MCP-compatible clients, configure the server binary path according to your client's configuration format. The server uses stdio transport and requires no additional arguments.
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |