Each OpenClaw instance self-registers with the central MCP server, sending its own info:
```json
//Callregistertoolwith:
{
"hook":"https://lisa.nexlab.net/hooks/agent",
"token":"lisa-own-hook-token-123",
"capability_prompt":"Can run commands, manage Ganeti VMs, access cameras",
"skill_prompt":"To request a task from me, post a job with:\n- action: the command or action to perform\n- target: the target (e.g., ganeti1, ganeti2)\n- params: any additional parameters\n\nResults are returned as JSON with 'output' and 'error' fields."
}
```
The agent provides:
-**hook**: Its own webhook URL (where to receive jobs)
-**token**: Its own token (so MCP can authenticate callbacks to it)
-**capability_prompt**: Short summary (~500 chars) for listing
-**skill_prompt**: Full instructions (can be large, no limit)
This way each agent controls its own description and authentication.