> 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/connect-voicemoat-to-an-assistant.md).

# Connect VoiceMOAT to an assistant

#### What this is

You can connect VoiceMoat to an AI assistant that supports MCP, such as Claude, ChatGPT, or Claude Code, so the assistant can read your voice profile, your posts and your analytics, draft in your voice, and post for you.

It is the same audenAI that powers Content Studio, reached from wherever you already work instead of from the dashboard.

Once connected you can ask things like:

* "Does this read like me?"
* "What did I post last week and how did it do?"
* "Give me three angles on this, in my voice"
* "Post that to LinkedIn"

Available on **Pro** and **Enterprise**.

|                         | Free | Pro Trial | Creator | Lifetime Creator | Pro | Enterprise |
| ----------------------- | ---- | --------- | ------- | ---------------- | --- | ---------- |
| Connect to an assistant | No   | No        | No      | No               | Yes | Yes        |

Note that a **Pro Trial does not include it**. It is on the paid Pro plan and on Enterprise.

Connecting works on any plan. The tools refuse with an explanation if your plan does not include it, so you can set it up before upgrading and it starts working the moment you do, without reconnecting.

{% hint style="info" %}
No VoiceMoat account? The **free Claude skills** work in Claude, ChatGPT, and Codex without one, and get sharper once you connect. See Free Claude skills.
{% endhint %}

***

#### Connect it

You need the VoiceMoat account you already sign in with, and an assistant that supports MCP.

1. In your assistant, add a connector pointing at `https://voicemoat.com/api/mcp`
2. Your browser opens VoiceMoat and asks you to sign in
3. Sign in the way you normally do
4. You are returned to your assistant, connected

In Claude Code the first step is:

```
claude mcp add -t http voicemoat https://voicemoat.com/api/mcp
```

then `/mcp` to sign in.

Nothing is shared until you sign in, and the connection only ever reaches your own account.

***

#### What it can do

Fifteen tools. You do not call them by name, you ask for what you want and the assistant picks.

**Reading**

| Tool                 | What it gives you                                                              |
| -------------------- | ------------------------------------------------------------------------------ |
| `get_me`             | Which VoiceMoat account is connected, and your plan                            |
| `list_profiles`      | The Twitter and LinkedIn profiles on your account                              |
| `get_voice_profile`  | Your writing persona, tone, traits and sample posts                            |
| `get_voice_insights` | Your Voice Lab analysis: hooks, rhythm, vocabulary, topics                     |
| `get_analytics`      | Impressions, engagement and your top post for a window, on Twitter or LinkedIn |
| `list_posts`         | Your best performing posts on either platform, ranked by engagement            |
| `get_post`           | One post in full, with its numbers                                             |

**Inspiration**

| Tool                 | What it gives you                                                                                        |
| -------------------- | -------------------------------------------------------------------------------------------------------- |
| `list_creators`      | The creators you study, with their topics and signature openings                                         |
| `search_inspiration` | Public LinkedIn posts from the creators the VoiceMoat community tracks, searched by topic. LinkedIn only |

These are the only two tools that return writing by people other than you. Your assistant is told to treat that text as material to learn from, never as instructions.

Reading costs no credits.

{% hint style="info" %}
**Where your numbers come from.** Twitter engagement is synced from the Twitter API. LinkedIn engagement is collected by the VoiceMoat browser extension while you browse LinkedIn, because LinkedIn's own API does not give it to us. Both show up in `get_analytics` and `list_posts`.

The practical difference is freshness: your LinkedIn numbers are only as recent as your last sync. If a window looks empty, the tools tell your assistant when you last synced, so an unsynced week is never reported as a quiet one.
{% endhint %}

**Writing**

These spend credits from the same pool as the dashboard, at the same prices.

| Tool                | What it does                                         | Credits |
| ------------------- | ---------------------------------------------------- | ------- |
| `score_voice_match` | Scores any text against your trained voice, 0 to 100 | 1       |
| `get_post_ideas`    | Distinct angles on a topic                           | 2       |
| `suggest_hooks`     | Three opening lines from different angles            | 2       |
| `improve_post`      | Runs a draft through the real Improve engine         | 3 or 5  |

`improve_post` costs 3 for alternatives to choose between, 5 for one deep pass with an explanation of what changed.

Nothing here posts anything. Everything comes back to you.

**Posting**

| Tool            | What it does                        |
| --------------- | ----------------------------------- |
| `publish_post`  | Posts to LinkedIn or Twitter, now   |
| `schedule_post` | Adds a post to your queue for later |

Both are covered in the next section, because they behave differently on purpose.

***

#### Posting always asks twice

Neither posting tool acts the first time it is called.

1. The assistant calls it. Nothing is posted. It gets back the exact text, the account the post would go to, and a confirmation code.
2. It shows you that. You decide.
3. Only if you agree does it call again with the code, and the post goes out.

The confirmation code is tied to the exact text, the exact account and you. If anything changes between the two steps, it is refused and you get a fresh preview. It also works only once, so the same approval cannot post twice.

**What that does not do.** It cannot force an assistant to show you the preview, only to fetch one. Most assistants ask your permission before running a tool that posts, and that prompt is the thing that actually puts a human in the loop. If yours offers that setting, leave it on.

**Threads**

On Twitter, a line containing only three dashes splits a post into a thread. Each part is posted as a reply to the one before it.

```
First tweet.

---

Second tweet.
```

The preview shows the whole thing, so what you approve is what decides whether it is one tweet or five. LinkedIn has no threads and ignores this.

**Scheduling does not use the exact minute you ask for**

Every queued post is shifted by up to seven minutes at random, so your posts do not all land on round times. The reply tells you both the time you asked for and the time it will actually publish. The second one is the real one.

***

#### When something refuses

Every refusal says what happened and what to do. The common ones:

**"Connecting VoiceMoat to an assistant is available on the Pro and Enterprise plans."** Your plan does not include it. Upgrading turns it on immediately, with no need to reconnect.

**"Your LinkedIn connection expired. Reconnect LinkedIn in Settings, then Connected accounts."** LinkedIn connections last sixty days and cannot renew themselves. This is LinkedIn's rule, not ours. Reconnect and try again. Nothing was posted.

**"That confirmation was already used, so this would have been a duplicate post."** The approval was spent. Ask again and you get a fresh preview.

**"The post text changed since it was previewed."** The text is not the text you approved. Preview the new version and confirm that instead.

**"This VoiceMoat account has more than one LinkedIn account connected and none is set as active."** It will not guess which account to post to. Set an active account in the dashboard, or tell your assistant which one.

**"This account is making VoiceMoat requests too quickly."** Sixty requests a minute. The message tells you when to try again.

***

#### Which account it posts to

If you have one account on a platform, it uses that.

If you have more than one, it uses whichever is active in the dashboard. If none is set, it stops and asks rather than guessing. The preview always names the account, so check it before you confirm.

***

#### Disconnecting

Remove the connector in your assistant. That is where the connection was made, and removing it is what ends it: your assistant discards the token and stops calling us.

VoiceMoat has no disconnect button of its own, on purpose. The sign-in grant lives with our authentication provider rather than in the app, so a button here would look like it worked without actually revoking anything.

Disconnecting does not touch your Twitter or LinkedIn accounts in VoiceMoat, and does not change anything you have already posted or scheduled.

***

#### What it never does

* Post on a first request. Every post takes a second call carrying a code
* Reach any account but your own
* Reply to anyone else's posts, or read DMs or comments. The only posts by other people it can read are the public LinkedIn posts in Inspiration
* Delete anything
* Change your voice settings or your plan


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.voicemoat.com/connect-voicemoat-to-an-assistant.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
