Capabilities
Capabilities define functions that a character can call. When a character has capabilities attached, it can autonomously decide to invoke them during a conversation — for example, moving to a location, opening a door, or querying an external system.
The Capability object
json
{
"id": "capability_5X51Einm2JqPi53D",
"createdAt": "2026-01-15T12:00:00Z",
"projectId": "project_abc123",
"name": "goToLocation",
"description": "Move the character to a specific location in the world.",
"type": "client_function_fire",
"parameters": [
{
"name": "x",
"type": "number",
"description": "X coordinate",
"required": true
},
{
"name": "z",
"type": "number",
"description": "Z coordinate",
"required": true
}
]
}| Field | Type | Description |
|---|---|---|
id | string | Unique identifier (capability_ prefix) |
createdAt | string | ISO 8601 timestamp |
projectId | string | Project this capability belongs to |
name | string | Function name (used in tool calls) |
description | string | null | What this capability does (shown to the AI) |
type | string | Capability type (see below) |
parameters | array | Function parameters |
Capability types
| Type | Description |
|---|---|
client_function_fire | Fire-and-forget call to the client |
client_function_call | Call to the client that returns a result |
server_function_fire | Fire-and-forget server-side function |
server_function_call | Server-side function that returns a result |
Parameter schema
Each parameter in the parameters array:
| Field | Type | Description |
|---|---|---|
name | string | Parameter name |
type | string | "string", "number", "boolean", or "integer" |
description | string | null | What this parameter is for |
required | boolean | Whether the parameter is required |
Create a capability
POST /capabilitiesRequest body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Function name |
description | string | null | No | Description shown to the AI |
type | string | Yes | One of the capability types above |
parameters | array | Yes | Array of parameter definitions |
sh
curl -X POST https://api.mindforge.ai/capabilities \
-H "Authorization: Bearer $MINDFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "goToLocation",
"description": "Move the character to a specific location in the world.",
"type": "client_function_fire",
"parameters": [
{ "name": "x", "type": "number", "description": "X coordinate", "required": true },
{ "name": "z", "type": "number", "description": "Z coordinate", "required": true }
]
}'List all capabilities
GET /capabilitiessh
curl https://api.mindforge.ai/capabilities \
-H "Authorization: Bearer $MINDFORGE_API_KEY"Retrieve a capability
GET /capabilities/{capabilityId}Update a capability
PATCH /capabilities/{capabilityId}All fields are optional.
| Field | Type | Description |
|---|---|---|
name | string | New function name |
description | string | null | New description |
parameters | array | New parameter definitions (replaces existing) |
Delete a capability
DELETE /capabilities/{capabilityId}json
{ "id": "capability_5X51Einm2JqPi53D", "deleted": true }