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-..."
}
}
company_knowledge_search
Search your org’s Company Knowledge — your single source of truth for policies, pricing, brand, SOPs, and FAQs — and get back the most relevant passages with a citation. Use it whenever you need a company fact, then cite the answer as Per <Title> v<N>.
Input:
| Field | Type | Required | Description |
|---|---|---|---|
query | string | yes | What you need, in plain language (e.g. “refund window for annual plans”). |
topK | number | no | How many passages to return. Default 10. |
doc_type | string | no | Optionally narrow to one document category. |
Returns the matching passages with their title, version, and citation. An empty result means nothing matched — answer from another source.
company_knowledge_get
Read a full Company Knowledge document by id (from a search result). Returns the complete document, including links to related ones. Only published documents are visible.
Input: id (required) — the document to read; version (optional) — a specific version, otherwise the latest.
projects_list
List the Projects available to the agent — its own workspace, the company file library, and any shared client or engagement Projects. Projects hold scoped working reference for one client or engagement, separate from org-wide Company Knowledge.
Input: none. Returns each Project’s id, name, and kind.
project_search
Search within one Project (get its id from projects_list) for reference about that specific client or engagement.
Input:
| Field | Type | Required | Description |
|---|---|---|---|
project_id | string | yes | The Project to search (from projects_list). |
query | string | yes | What you’re looking for, in plain language. |
topK | number | no | How many passages to return. Default 10. |
memory_recall
Search the agent’s long-term memory and return the most relevant durable memories — preferences, past commitments, and facts it saved earlier.
Input:
| Field | Type | Required | Description |
|---|---|---|---|
query | string | yes | What you’re trying to remember, in plain language. |
topK | number | no | How many memories to return. Default 5. |
memory_write
Save something the agent should remember across sessions — a preference, a commitment, or a stable fact. Not for throwaway task state.
Input:
| Field | Type | Required | Description |
|---|---|---|---|
type | string | yes | The kind of memory (e.g. a preference, commitment, or fact). |
content | string | yes | The memory, written as a complete sentence so it makes sense on its own later. |
<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. |