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
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, 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. Scripts execute as separate processes with filtered environment.
Every version bump automatically publishes to crates.io via GitHub Actions. Always up to date.
Built-in skillz://guide resource that automatically updates when new tools are added.
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 |
| 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 |
| add_root | Add a workspace root for script file access. | Core |
| list_roots | List all workspace roots available to scripts. | Core |
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
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AI Assistant (Claude, Cursor, etc.) β
βββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β MCP Protocol
βββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββ
β Skillz MCP Server β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β WASM Tools β β Script Tools β β Sequential β β
β β (Rust β WASM) β β (Any Language) β β Creation β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Tool Registry & Dependency Manager β β
β β β’ Virtual environments (Python venv, Node modules) β β
β β β’ Auto-install pip/npm packages β β
β β β’ Persistent tool storage β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
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.