Skip to main content
IronClaw’s tool system is designed for extensibility and safety. The agent can use pre-built tools, load external tool servers via MCP, execute sandboxed WASM tools, and even build new tools on-demand using LLM-driven code generation.

Architecture

Tool Types

Built-in

Core tools written in Rust (shell, file ops, HTTP, memory)

MCP Servers

External tool servers via Model Context Protocol

WASM Tools

Sandboxed WebAssembly tools with capability-based security

Built-in Tools

IronClaw includes essential tools out of the box:

File Operations

Shell Execution

Shell commands require approval by default. Configure TOOL_APPROVAL_MODE=auto to skip prompts.

HTTP Requests

Memory Operations

MCP Integration

Model Context Protocol allows connecting to external tool servers:

Configuration

Create ~/.ironclaw/mcp_servers.json:

OAuth Authentication

For hosted MCP servers that require OAuth:

Available MCP Servers

Filesystem

Read/write access to specified directories

GitHub

Repository operations, issues, PRs, workflows

GitLab

Project management and CI/CD

PostgreSQL

Query and schema operations

Slack

Send messages, list channels

Google Drive

File operations in Drive

Tool Discovery

WASM Tools

WebAssembly tools run in a sandboxed environment with strict security controls:

Security Model

Constraints

Capabilities

Tools declare required capabilities in tool_name.capabilities.json:

Creating a WASM Tool

IronClaw provides a Rust template:

Building WASM Tools

Use the build_software tool to have the agent build WASM tools for you at runtime.

Dynamic Tool Building

The agent can build new tools on-demand using LLM-driven code generation:

Build Process

  1. Analyze: Parse natural language requirement
  2. Scaffold: Generate project structure
  3. Implement: Write code with LLM
  4. Build: Compile with appropriate toolchain
  5. Fix: Parse errors and iterate
  6. Test: Run test harness
  7. Validate: Check WASM interface (for WASM tools)
  8. Register: Auto-register if successful

Example: Build a Tool

The agent will:
  1. Create a Cargo project
  2. Write the tool implementation
  3. Add HTTP endpoint to capabilities
  4. Build to wasm32-wasip2
  5. Register the tool for immediate use

Builder Configuration

Supported Languages

Rust

Native WASM support, best performance

Python

For scripts and data processing

TypeScript

For web API interactions

Go

For systems tools

JavaScript

Interpreted, no build step

Bash

Shell scripts

Tool Registry

The ToolRegistry manages all available tools:

Tool Execution

Approval System

Sensitive tools require user approval:

Configuration

Approval Flow

Rate Limiting

Per-tool rate limits prevent abuse:

Next Steps

Workspace

Learn about persistent memory

Sandbox

Explore Docker-based job execution