The bridge between human and AI tooling

Build MCP tools in minutes, not hours

No TypeScript boilerplate. No SDK complexity. Just write shell, Python, or Node and let AI agents discover your tools automatically.

# Runfile - Your MCP tools live here

# @desc Search the codebase for specific patterns
# @arg 1:pattern string The regex pattern to search for
search() {
    #!/usr/bin/env python
    import sys, os, re
    pattern = sys.argv[1]
    for root, dirs, files in os.walk('.'):
        for file in files:
            if file.endswith('.py'):
                print(f"Checking {file}...")
}

# @desc Deploy application to specified environment
# @arg 1:environment string Target environment (staging|prod)
deploy() {
    ./scripts/deploy.sh $1
}

Why run for MCP?

Built-in MCP Server

AI agents like Claude can discover and execute your tools automatically. Just add @desc and @arg annotations.

Zero Boilerplate

No TypeScript setup, no npm packages, no complex SDK. Write functions and they become MCP tools.

Use Any Language

Write tools in shell, Python, Node, Ruby, or PowerShell. Mix and match in a single Runfile.

Sandboxed by Default

AI agents can only execute functions you explicitly define. No arbitrary code execution.

JSON Schema Generation

Automatically generates proper MCP tool schemas with types and descriptions from your annotations.

5-Minute Setup

From zero to AI-accessible tools in minutes. No configuration files, no build step, no deployment.

Also a powerful task runner for humans

Everything that makes run great for AI also makes it perfect for your daily workflow. Zero-config task automation with polyglot support.

Shell Native

Use the syntax you already know. No new DSL to learn.

Global & Local

Project-specific ./Runfile or personal ~/.runfile for commands everywhere.

Platform Guards

Define OS-specific implementations. Write once, run anywhere.

Installation

macOS / Linux

brew install nihilok/tap/runtool

Windows

scoop bucket add nihilok https://github.com/nihilok/scoop-bucket scoop install runtool

Cargo (All Platforms)

cargo install run

Then add to your MCP client config:

{
  "run": {
    "command": "run",
    "args": ["--serve-mcp"]
  }
}