> For the complete documentation index, see [llms.txt](https://docs.voicemoat.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.voicemoat.com/assistants/assistants/openclaw.md).

# OpenClaw

OpenClaw is an open-source gateway that links chat apps to AI agents. It can connect with the sign-in or with a personal key; the key is simplest on a server.

**What you need**

* A VoiceMoat plan that includes assistants: **Pro**, **Enterprise**, or the **$5 Pro trial**.
* A personal key. In VoiceMoat, open **Settings**, then **Assistants**, then **Personal keys**, press **Create key** and pick **OpenClaw**. Under **What can it do?**, tick **publish** if OpenClaw should be able to post straight away. It starts unticked: without it, OpenClaw can read, draft and schedule, but a request to post now is refused. Copy the key when it shows: you will not see it again.

{% hint style="info" %}
The address is the same for every assistant: `https://app.voicemoat.com/api/mcp`. Your key goes in a header as `Bearer` followed by the key.
{% endhint %}

***

**Connect it**

1. Add VoiceMoat as an MCP server with transport `streamable-http` (set it: OpenClaw defaults to SSE): `openclaw mcp add voicemoat --url https://app.voicemoat.com/api/mcp --transport streamable-http`
2. In the server's config under `mcp.servers.voicemoat`, add a `headers` entry.
3. Set `Authorization` to `Bearer` followed by your key.

```json
"voicemoat": {
  "url": "https://app.voicemoat.com/api/mcp",
  "transport": "streamable-http",
  "headers": { "Authorization": "Bearer vm_live_your-key" }
}
```

Prefer the sign-in? Set `"auth": "oauth"` instead of the header. Stop the Gateway (`openclaw gateway stop`), run `openclaw mcp login voicemoat`, then start the Gateway again: login only runs while the Gateway is stopped.

***

**Try it**

Once it is connected, ask OpenClaw things like:

* "Does this read like me?" (paste a draft)
* "What did I post last week and how did it do?"
* "Give me three post ideas in my voice for LinkedIn"
* "Schedule that for tomorrow at 9am"

Nothing posts on the first request: VoiceMoat sends OpenClaw a preview with the exact text and the account, and OpenClaw has to call again with the code it got back. That second call is not you approving the post: OpenClaw can make it on its own. To see every post before it goes out, keep OpenClaw's tool approval (asking you before it runs a tool) switched on.

**If it does not work**

* **401 or "unauthorized":** check the header is `Authorization: Bearer` followed by the whole key, with one space after `Bearer`.
* **"does not include using VoiceMoat from an assistant":** your plan does not include assistants yet.
* **"This personal key isn't allowed to post":** the key was made without **publish**. A key can't be changed once it is made, so create a new one with **publish** ticked and revoke the old one.
* **Stopped working:** the key may have been revoked, or someone pressed **Disconnect** in Settings. Create a new key.
* **Wrong address:** it must be exactly `https://app.voicemoat.com/api/mcp` (with `app.`).

**Stop it**

In VoiceMoat, open **Settings**, then **Assistants**, and press **Revoke** next to the key. OpenClaw stops working with VoiceMoat at once.

*Steps checked November 2026. If OpenClaw's screens look different, the idea is the same: a custom MCP server, our address, and the Authorization header.*
