πŸš€ MCP Server for Dynamic Tool Creation

Let Your AI
Build Its Own Tools

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.

⚑ Quick Install

Get started in seconds with cargo

πŸ¦€ Terminal
# Install WASM target
rustup target add wasm32-wasip1

# Install Skillz
cargo install skillz

Then add to your editor's MCP config:

βš™οΈ MCP Config
{
  "mcpServers": {
    "skillz": {
      "command": "skillz"
    }
  }
}

Works with your favorite editor

πŸ–±οΈ Cursor πŸ€– Claude Desktop πŸ’» VS Code πŸ„ Windsurf ⚑ Zed

πŸ”§ Configuration

Environment variables to control behavior

πŸ“‚

SKILLZ_ROOTS

Colon-separated list of allowed workspace roots.
/home/user/project:/data

πŸ”’

SKILLZ_SANDBOX

Isolation mode for script tools (Linux only).
bubblewrap | firejail | nsjail

🌐

SKILLZ_SANDBOX_NETWORK

Allow network access in sandbox (set to 1).
export SKILLZ_SANDBOX_NETWORK=1

Powerful Features

Everything you need to build dynamic AI tools

πŸ¦€

WASM Tools (Rust)

Compile Rust code to WebAssembly at runtime. Tools run in a secure sandbox with memory isolation and near-native performance.

πŸ“œ

Script Tools (Any Language)

Register tools in Python, Node.js, Ruby, Bash, Perl, PHP, or any language. Scripts communicate via JSON-RPC 2.0 protocol.

πŸ“¦

Dependency Management

Automatic pip/npm dependency installation. Each tool gets its own isolated virtual environment that persists across restarts.

πŸ”§

Sequential Creation

Build skills step-by-step with guided workflow: Design β†’ Implement β†’ Test β†’ Finalize. Perfect for complex tools.

πŸ“‘

Full MCP Protocol

Resources, roots, logging, progress updates, elicitation, and sampling support. Complete MCP compatibility.

πŸ’Ύ

Persistent Tools

Tools, dependencies, and environments persist across restarts. Build your AI's toolbox over time.

πŸ”’

Secure Sandbox

WASM tools run in isolated WebAssembly environment. Optional bubblewrap/firejail isolation for scripts.

🏷️

Tool Annotations

Mark tools with hints: readOnlyHint, destructiveHint, idempotentHint. Helps AI understand tool behavior.

⚑

Code Execution Mode

Compose multiple tools via Python/JS code. Reduces token usage by 98% (150k β†’ 2k tokens)!

πŸ”

Completion API

Autocomplete suggestions for tool arguments. Helps AI provide correct values.

πŸ“–

Dynamic Guide

Built-in skillz://guide resource that automatically updates when new tools are added.

🌐

Tool Import

Import tools from GitHub repos or Gists. Share your tools with the community!

πŸ› οΈ Available Tools

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

Simple to Use

Create tools with just a few lines of code

πŸ¦€ Rust WASM Tool
// 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"
)

Architecture

Clean, modular design

Skillz Architecture Diagram

πŸ“Š How Skillz Works

Visual overview of the tool creation and execution flow

Tool Types & Execution Flow

MCP Server Skillz Runtime πŸ¦€ WASM Tools Rust + Dependencies WebAssembly βœ“ Sandboxed πŸ“œ Script Tools Python, Node.js, etc. JSON-RPC 2.0 βœ“ Isolated Env AI Editor / Client compile register execute

Tool Creation Lifecycle

1. Design Define inputs, outputs, schema πŸ“‹ 2. Implement Write Rust or Script code πŸ’» 3. Test Validate & compile check πŸ§ͺ 4. Finalize Register & persist tool βœ…

How It Works

From code to execution in seconds

1

Write Code

AI writes Rust code for WASM tools or scripts in any language (Python, Node.js, etc.). Specify dependencies if needed.

2

Compile & Register

WASM tools are compiled using cargo. Scripts are saved with appropriate interpreter. Dependencies are installed in isolated environments.

3

Execute

WASM runs in Wasmtime sandbox. Scripts execute via subprocess with JSON-RPC 2.0 protocol using their virtual environment.

4

Persist

Tools, dependencies, and environments are stored on disk. Available across server restarts. Build your AI's toolbox over time.

β˜• Support Skillz Development

Help keep this project growing! Your support enables new features and improvements.

Buy Me a Coffee