Tools reference

All tools available through mcp.clawnify.com via tools/call.

clawnify.execute

Run TypeScript on your agent’s managed runtime. Returns stdout, stderr, exit code, and duration.

Input:

FieldTypeRequiredDescription
codestringyesTypeScript source. Top-level await supported.
timeout_msnumbernoWall-clock timeout in milliseconds. Default 30000. Range 1000–300000.

Output:

{
  "execution_id": "<uuid>",
  "stdout": "...",
  "stderr": "...",
  "exit_code": 0,
  "duration_ms": 412,
  "timed_out": false,
  "substrate_id": "<opaque>",
  "runtime": "openclaw"
}

Notes:

  • Resource caps enforced: 512 MB memory, 50% CPU, 128 tasks.
  • Runs on your org’s managed runtime, isolated per-org. No cross-org compute.
  • The agent’s environment is pre-wired: file system, connected integrations, and scoped credentials are all available.

Search across your org’s apps’ procedure docs. Returns ranked hits.

Input:

FieldTypeRequiredDescription
querystringyesFree-text query, e.g. “send email” or “overdue invoices”.
app_slugstringnoRestrict search to one app.
limitnumbernoMax hits. Default 10.

Output:

{
  "hits": [
    {
      "app_slug": "quotes",
      "app_name": "Quotes",
      "procedure_name": "createQuote",
      "snippet": "Create a new quote for a customer with line items.",
      "score": 1.5
    }
  ]
}

Procedure-level hits outweigh app-level hits.

clawnify.list_apps

List the apps in your org.

Input: none.

Output:

{
  "apps": [
    {
      "id": "<uuid>",
      "slug": "quotes",
      "name": "Quotes",
      "description": "Customer quote generation",
      "status": "live",
      "created_at": "2026-..."
    }
  ]
}

clawnify.list_specialists

List the agents (servers) in your org.

Input: none.

Output:

{
  "specialists": [
    {
      "id": "<uuid>",
      "name": "Sales Agent",
      "status": "ready",
      "region": "eu",
      "created_at": "2026-..."
    }
  ]
}

clawnify.get_usage

Current plan + quota.

Input: none.

Output:

{
  "subscription": {
    "plan": "first_hire",
    "status": "active",
    "current_period_end": "2026-..."
  }
}

<app_slug>.<procedure> — per-app direct tools

For apps with five or fewer procedures, each procedure appears as a direct tool with the same name as the procedure. Parameters and return shape match the app’s manifest.

Example:

Your quotes app has a createQuote procedure that takes { customer_id, items }. It shows up as quotes.createQuote in tools/list. The agent calls it with the same arguments it would pass to the procedure directly.

Apps with more than five procedures don’t auto-project — the agent reaches them via clawnify.execute instead (write code that imports the typed client; clawnify.docs_search helps it find the right procedure).

Errors

All tools return MCP-shaped { content: [...], isError: true } on failure. JSON-RPC errors (auth, rate limit, malformed request) come back as standard JSON-RPC error responses.

Common error codes:

CodeMeaning
-32001Unauthorized — missing or invalid token.
-32002Tool not found.
-32603Internal error.
429Rate limit exceeded.