Skillz is a self-extending MCP server. Create WASM tools from Rust or register scripts in any languageβPython, Node.js, Ruby, Bashβat runtime. Now with automatic dependency management.
Get started in seconds with cargo
# Install WASM target
rustup target add wasm32-wasip1
# Install Skillz
cargo install skillz
Then add to your editor's MCP config:
{
"mcpServers": {
"skillz": {
"command": "skillz"
}
}
}
Works with your favorite editor
Environment variables to control behavior
Colon-separated list of allowed workspace roots.
/home/user/project:/data
Isolation mode for script tools (Linux only).
bubblewrap | firejail | nsjail
Allow network access in sandbox (set to 1).
export SKILLZ_SANDBOX_NETWORK=1
Everything you need to build dynamic AI tools
Compile Rust code to WebAssembly at runtime. Tools run in a secure sandbox with memory isolation and near-native performance.
Register tools in Python, Node.js, Ruby, Bash, Perl, PHP, or any language. Scripts communicate via JSON-RPC 2.0 protocol.
Automatic pip/npm dependency installation. Each tool gets its own isolated virtual environment that persists across restarts.
Build skills step-by-step with guided workflow: Design β Implement β Test β Finalize. Perfect for complex tools.
Resources, roots, logging, progress updates, elicitation, and sampling support. Complete MCP compatibility.
Tools, dependencies, and environments persist across restarts. Build your AI's toolbox over time.
WASM tools run in isolated WebAssembly environment. Optional bubblewrap/firejail isolation for scripts.
Mark tools with hints: readOnlyHint, destructiveHint, idempotentHint. Helps AI understand tool behavior.
Compose multiple tools via Python/JS code. Reduces token usage by 98% (150k β 2k tokens)!
Autocomplete suggestions for tool arguments. Helps AI provide correct values.
Built-in skillz://guide resource that automatically updates when new tools are
added.
Import tools from GitHub repos or Gists. Share your tools with the community!
Built-in tools for creating and managing your AI toolkit
| Tool | Description | Type |
|---|---|---|
| build_tool | Compile Rust code β WASM tool. Automatically handles cargo build. | Core |
| register_script | Register script tool with optional dependencies (pip/npm packages). | Core |
| create_skill | Step-by-step skill creation: Design β Implement β Test β Finalize. | Core |
| import_tool | Import tools from git repos or GitHub gists. | Core |
| call_tool | Execute any registered tool (WASM or script) by name. | Core |
| list_tools | List all available tools grouped by type. | Core |
| install_deps | Install dependencies for existing script tools. | New |
| delete_tool | Delete a tool and clean up its files and environments. | New |
| test_validate | Validate Rust code before building (syntax check). | Core |
| execute_code | Run Python/JS code that composes multiple tools. 98% token savings! | New |
| complete | Get autocomplete suggestions for tool arguments. | New |
Create tools with just a few lines of code
// Build a Fibonacci generator
build_tool(
name: "fibonacci",
code: "fn main() {
let mut a = 0u64;
let mut b = 1;
for _ in 0..20 {
print!(\"{} \", a);
let t = a + b;
a = b;
b = t;
}
}",
description: "Generates Fibonacci numbers"
)
Clean, modular design
Visual overview of the tool creation and execution flow
From code to execution in seconds
AI writes Rust code for WASM tools or scripts in any language (Python, Node.js, etc.). Specify dependencies if needed.
WASM tools are compiled using cargo. Scripts are saved with appropriate interpreter. Dependencies are installed in isolated environments.
WASM runs in Wasmtime sandbox. Scripts execute via subprocess with JSON-RPC 2.0 protocol using their virtual environment.
Tools, dependencies, and environments are stored on disk. Available across server restarts. Build your AI's toolbox over time.