Your voice, in any AI.
Add Idiolect AI to Claude, ChatGPT, or your coding agent once. From then on, when it writes for you, it follows your Writing Profile. Voice Match is a separate check that you can ask for when you need it.
Add it to your AI.
Idiolect AI is one URL. Paste it into your AI’s connector settings and sign in — nothing to install, no key to manage.
https://idiolect.app/api/mcpWhere that goes, app by app:
Chat apps
Idiolect AI is in Claude's connector directory. Go to Settings → Connectors, find Idiolect and sign in. Or add the URL under Settings → Connectors → Add custom connector. This works on web, desktop and mobile.
The directory lists it as Idiolect. The directory link opens in claude.ai, so sign in there first. The connector URL works without that. Claude's Free plan allows one custom connector.
Go to Settings → Connectors → Advanced. Turn on Developer mode. Add a connector with the URL. Then sign in.
ChatGPT allows custom connectors only in Developer mode. The ChatGPT free plan cannot add one now.
Open the Perplexity connector settings. Add a custom connector with the URL. Then sign in.
Perplexity allows custom connectors only on paid plans.
Coding agents
Run one command. Then sign in from Claude Code.
claude mcp add --transport http idiolect https://idiolect.app/api/mcp/mcpIn the panel that opens, select idiolect → Authenticate. To use it in every project, add --scope user.
Or let Claude Code set itself up
Add the Idiolect AI MCP server for me: run `claude mcp add --transport http idiolect https://idiolect.app/api/mcp`, then tell me to run /mcp and choose Authenticate.Get a key in Settings → Developer. Then run one command.
codex mcp add idiolect \
--env IDIOLECT_API_KEY=your-key-here \
--env IDIOLECT_BASE=https://idiolect.app \
-- npx -y idiolect-mcpThis command adds an [mcp_servers.idiolect] entry with your key to ~/.codex/config.toml. You do not need to export the key in your shell.
Or let Codex set itself up
Set up the Idiolect AI MCP server in Codex: run `codex mcp add idiolect --env IDIOLECT_API_KEY=<my key> --env IDIOLECT_BASE=https://idiolect.app -- npx -y idiolect-mcp`, then confirm it's registered.Editors
Select Add to Cursor. Then sign in. Or add the URL below in Settings → Tools & MCP.
Add to CursorSelect Add to VS Code. Then sign in. Over SSH, use the command below.
Add to VS Codecode --add-mcp '{"name":"idiolect","type":"http","url":"https://idiolect.app/api/mcp"}'Whole workspace
These are set up once for a tenant. Everyone on it keeps their own voice — the connector resolves each person separately when they sign in.
On your agent, go to Add a tool → New tool → Model Context Protocol. Add the URL. Select Dynamic discovery as the OAuth 2.0 type. Copilot Studio then completes the setup.
Using something else? Any client that supports remote MCP servers can use the same URL — Zed, Windsurf, Cline, Amazon Q, and Docker's MCP Toolkit all take it as-is.
Nothing new to learn — just ask for writing the way you already would. Your AI reaches for Idiolect AI on its own.
- “Reply to this email in my voice.”
- “Score this LinkedIn post against how I actually write.”
- “Rewrite this paragraph so it sounds like me, and tell me whether it got closer.”
- “Draft a newsletter intro from these notes, in my voice.”
What it can do.
write and rewrite apply the authenticated user's Writing Profile automatically.
Cached profile calls remain compatible.
| Tool | Input |
|---|---|
| write | `profile`, `request`, `format`, `instructions`, `language`, `requestAuthor`, `evidence`, `contextHints`, `situation`, `setup` |
| rewrite | `profile`, `text`, `format`, `instructions`, `language`, `sourceAuthor`, `evidence`, `contextHints`, `situation`, `setup` |
| refine_writing | `writingJobVersionId`, `outputReference`, `change`, `format`, `language`, `situation`, `outcome`, `finalText`, `comment`, `decisionSource`, `editAuthor`, `templateId` |
| view_writing_profile | `profile`, `samples`, `cursor` |
| manage_profile | `action`, `profile`, `evidence`, `name`, `writingJobVersionId`, `rule`, `scope`, `ruleId`, `sampleId`, `templateId`, `clear` |
Creates new prose from the user's facts and directions.
What the model sees
Drafts an email, message, post, reply, doc, or report in the user's style. Use for new writing for or on behalf of the user, using their current Writing Profile when available. It writes from their request, facts, notes, or an outline, without inventing missing facts. The tool produces the draft. There is no need to draft it first. Works without a Writing Profile. Put the user's directions in `instructions`. It returns finished writing for direct presentation. When presenting the writing, preserve its wording.
Changes supplied prose while preserving its meaning, facts, and deliberate details.
What the model sees
Rewrites text: 'make this sound like me', 'less AI', shorter, or clearer. Use for writing for or on behalf of the user, including drafts the host wrote for them. It rewrites in the user's style using their current Writing Profile when available. It covers an email, message, post, reply, or doc, from a grammar fix to a complete rewrite. Covers asks such as 'make this less AI-written' or 'make it less formal'. Changes include grammar, spelling, clarity, length, structure, tone, style, audience, or format. It can summarize, expand, simplify, paraphrase, or repurpose. Works without a Writing Profile. Unless the user asks to change them, it keeps supplied facts and protected wording. Put the user's change request in `instructions`. It returns finished writing for direct presentation. When presenting the writing, preserve its wording.
What the model sees
Changes writing Idiolect AI returned, such as 'make it shorter and warmer'. The user does not need to name Idiolect AI again. It covers follow-ups on writing from `write`, `rewrite`, or `refine_writing`. The `refine_writing` tool revises returned writing, applies a ready-made template, or records its use. Send the latest `writingJobVersionId`, or `outputReference` when no version was returned, but not both. Send one of `change`, `templateId`, or `outcome`. If the change sets a new form, language or fact of the situation, send it in `format`, `language` or `situation`. The `finalText` field may come alone or with `outcome`. When the user reports use or the host observes completed use, send `outcome` with its `decisionSource`. When the final wording is known, send it in `finalText`. Set `editAuthor` to whoever edited it.
What the model sees
Shows the user's current Writing Profile and rules, and lists their Writing Profiles. To view another Writing Profile, set `profile` to its id or name. To list its writing samples, set `samples` true. Writing Profiles update continuously as the user writes, so read the current one here each time instead of keeping a saved copy.
What the model sees
Change the user's Writing Profiles and default writing template. Choose an `action`: `create_profile`, `add_samples`, `remove_sample`, `add_rule`, `remove_rule`, `rename_profile`, `set_current_profile`, or `set_default_template`. When the user shares writing they authored in this conversation, save it with `add_samples`. Without a Writing Profile, use `create_profile`. When the user states a lasting writing preference, save it with `add_rule`. Keep stated rules in the user's words and preserve their scope. Do not save inferred patterns as stated rules. Reuse that permission for the rest of this conversation without asking again. The user can delete a whole Writing Profile on the Idiolect AI website.
Building on this directly? The connector speaks Streamable HTTP and authenticates with OAuth 2.1; the same endpoint also accepts a personal API key as a bearer token. There’s a REST Score API too.
If something’s off.
It asks you to sign in again
The connection expired or was never completed. Remove the connector, add it again, and finish the sign-in. In ChatGPT, check Developer Mode is still on — switching it off drops the connection.
“No voice saved on this account yet”
You’re signed in, but this account has no voice yet. Make one at idiolect.app/start — and check you signed into the connector with the same account.
Rewrite or draft says you don’t have access
Reload the connector and try once more; if the message remains, contact hello@idiolect.app.
“Rate limit reached”
Writing and scoring are capped at 30 calls every 5 minutes. It clears on its own.
Your AI never uses it
Check the connector is switched on for that conversation, then ask for the writing directly — “reply to this in my voice.” Some apps only pick up a new connector in a fresh chat.
Still stuck?
Email us. Tell us which app you connected from and roughly when it happened — that’s enough for us to find it. A person answers.
support@idiolect.app →What we do with your writing is set out in the privacy policy.