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:
| Field | Type | Required | Description |
|---|---|---|---|
code | string | yes | TypeScript source. Top-level await supported. |
timeout_ms | number | no | Wall-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.
clawnify.docs_search
Search across your org’s apps’ procedure docs. Returns ranked hits.
Input:
| Field | Type | Required | Description |
|---|---|---|---|
query | string | yes | Free-text query, e.g. “send email” or “overdue invoices”. |
app_slug | string | no | Restrict search to one app. |
limit | number | no | Max 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:
| Code | Meaning |
|---|---|
-32001 | Unauthorized — missing or invalid token. |
-32002 | Tool not found. |
-32603 | Internal error. |
429 | Rate limit exceeded. |