MCP connector

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 writes as you — and can check the result against your own writing before you send it.

Connect

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.

Connector URL
https://idiolect.app/api/mcp

Where that goes, app by app:

Chat apps

claude.aievery plan, including Free

Idiolect AI is listed in Claude's connector directory — find it under Settings → Connectors and sign in. Or add it by URL: Settings → ConnectorsAdd custom connector. Works on web, desktop, and mobile.

Listed as Idiolect. The directory link opens inside claude.ai, so it needs you signed in there; the connector URL works either way. Claude's Free plan allows one custom connector.

View our listing in claude.ai's directory →

ChatGPTpaid plans

Settings → ConnectorsAdvanced → turn on Developer mode. Then add a connector with the URL and sign in.

ChatGPT keeps custom connectors behind Developer Mode for now, so the free tier can't add one yet. One-click install lands with our directory listing.

PerplexityPro, Max, and Enterprise

Add a custom connector in Perplexity's connector settings, paste the URL, and sign in.

Perplexity keeps custom remote connectors on its paid plans.

Perplexity setup guide →

Coding agents

Claude Codeno API key needed

One command, then sign in from inside Claude Code.

1. Add it
claude mcp add --transport http idiolect https://idiolect.app/api/mcp
2. Sign in
/mcp

Pick idiolectAuthenticate in the panel that opens. Add --scope user to use it in every project.

Or let Claude Code set itself up
Paste this in — it runs the setup for you
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.
Codexpersonal API key

One command — nothing to clone. Grab a key from Settings → API keys first.

Runs via npx — nothing to clone
codex mcp add idiolect \
  --env IDIOLECT_API_KEY=your-key-here \
  --env IDIOLECT_BASE=https://idiolect.app \
  -- npx -y idiolect-mcp

That writes an [mcp_servers.idiolect] entry to ~/.codex/config.toml with your key — no shell export needed.

Or let Codex set itself up
Paste this in — it runs the setup for you
Set up the Idiolect AI MCP server in Codex: run `codex mcp add idiolect --env IDIOLECT_API_KEY=<paste my key> --env IDIOLECT_BASE=https://idiolect.app -- npx -y idiolect-mcp`, then confirm it's registered.

Editors

Cursorevery plan, including Hobby

One click adds it, then sign in. Or add it by hand under Settings → Tools & MCP with the URL below.

Add to Cursor

Cursor setup guide →

VS Codewith GitHub Copilot

One click adds it, then sign in. The command line works too, and is the easier path over SSH.

Add to VS Code
Or from a terminal
code --add-mcp '{"name":"idiolect","type":"http","url":"https://idiolect.app/api/mcp"}'

VS Code setup guide →

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.

Microsoft Copilot Studioset up by a maker

On your agent: Add a toolNew toolModel Context Protocol. Paste the URL, then pick Dynamic discovery as the OAuth 2.0 type — this connector registers itself from there.

Copilot Studio dropped SSE in 2025; this connector speaks the Streamable transport it expects.

Microsoft Copilot Studio setup guide →

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.

Once it’s connected

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.
Tools

What it can do.

All 15 tools are free during beta. Draft and rewrite still require an authenticated account with a saved Voice Profile. get_credit_status is the source of truth for access; draft and rewrite results carry the same structured credit state.

The four native-onboarding tools are remote OAuth-only for Claude. The local stdio package intentionally remains the existing six-tool API-key surface; native orchestration is not silently advertised there.

ToolInputPlan
get_idiolect_stateremote OAuth onlynoneFree beta
select_onboarding_methodremote OAuth onlyworkflowId, baseVersion, methodFree beta
approve_voice_evidenceremote OAuth onlyworkflowId, baseVersion, idempotencyKey, confirmation, evidence with text and sourceTypeFree beta
record_voice_feedbackremote OAuth onlyworkflowId, baseVersion, outputId, status, correctionText, critique, idempotencyKeyFree beta
get_my_voicenoneFree beta
create_my_voicesamples and/or guided answers from the user; name and idempotencyKey optional; remote native mode uses workflowId and baseVersion and forbids samples/answersFree beta
list_writing_profilesnoneFree beta
create_writing_profilesamples and/or guided answers from the user; name optionalFree beta
add_samples_to_writing_profileprofileId and samplesFree beta
set_current_writing_profileprofileIdFree beta
delete_writing_profileprofileId; replacementProfileId when requiredFree beta
get_credit_statusnoneFree beta
score_voicetext — 1–8,000 charactersFree beta
rewrite_in_voicetext — 1–8,000 characters; targetRegister — email | slack | social | essay (optional); instructions — 1–4,000 characters (optional); `changeScope` — `polish` | `rewrite` | `transform` (optional); `effects` — up to 6 named effects (optional); situation (optional); onboarding optionalFree beta
draft_in_voicebrief — 1–8,000 characters; format — linkedin | x_post | x_thread | newsletter | email | generic (optional); `changeScope` — `polish` | `rewrite` | `transform` (optional); `effects` — up to 6 named effects (optional); situation (optional); onboarding optionalFree beta
get_idiolect_stateIdiolect AI: Get Native State

Starts or resumes Claude's versioned onboarding state and returns no private writing.

What the model sees

Start or resume the authenticated user's private native onboarding workflow and return only aggregate progress and the four setup options.

select_onboarding_methodIdiolect AI: Select Onboarding Method

Selects one of four setup methods for the current Claude workflow.

What the model sees

Select one of the four native onboarding methods for the authenticated user's versioned workflow.

approve_voice_evidenceIdiolect AI: Approve Voice Evidence

Stores only exact blocks the user selected under the server's canonical disclosure.

What the model sees

Persist only the exact writing blocks the authenticated user explicitly selected, under Idiolect AI's canonical disclosure and scope.

record_voice_feedbackIdiolect AI: Record Voice Feedback

Reports back on a real succeeded output — a verdict every time, the user's final text only when the assistant actually has it. What is kept is private profile evidence, kept because the user wrote it: the tool takes no permission argument and the assistant answers nothing on their behalf.

What the model sees

Record what the user did with an Idiolect AI draft or rewrite, against the outputId from its receipt. Report back every time they respond to one, not merely when something went wrong — a status by itself is useful. status is accepted, corrected_and_accepted, or rejected. Put what you observed in critique: what changed, why, or what they said. Send correctionText when you have their final text verbatim, and omit it otherwise; a summary of the edit belongs in critique.

get_my_voiceIdiolect AI: Load My Voice

Your Voice Card plus the structured profile behind it — tone, signature moves, rhythm, and the things you’d never write. Called once, before your AI writes.

What the model sees

Use this when you are about to write anything on the user's behalf — emails, posts, messages, commit messages, PR descriptions, docs. Loads the user's Idiolect AI voice so you write as them.

create_my_voiceCreate My Voice Profile

Builds your Voice Profile from writing you provide or approve, without sending the writing back in the tool response. If the evidence is too thin, it tells you exactly what is missing.

What the model sees

Compatibility setup action for creating a first Voice Profile from approved writing. Use create_writing_profile for explicit multi-profile creation.

list_writing_profilesList Writing Profiles

What the model sees

List the authenticated user's Writing Profiles and identify the current profile.

create_writing_profileCreate Writing Profile

What the model sees

Create a new Writing Profile from approved writing. This never changes an existing profile.

add_samples_to_writing_profileAdd Samples to Writing Profile

What the model sees

Add approved writing samples to the exact Writing Profile identified by profileId.

set_current_writing_profileSet Current Writing Profile

What the model sees

Make the exact Writing Profile identified by profileId current for future writing.

delete_writing_profileDelete Writing Profile

What the model sees

Delete the exact Writing Profile identified by profileId. A current profile may require a replacementProfileId.

get_credit_statusCheck Credit Status

Returns the server-resolved generation and credit state. During free beta, the starter balance is a preview and drafts and rewrites do not consume it.

What the model sees

Return the authenticated account's generation access and credit balance. During the free beta, the balance is a preview and drafting does not use it.

score_voiceScore Voice Match

Voice Match is relative: how much closer a draft reads to you than to generic model prose. Not a detector, and not forensic.

What the model sees

Check how close candidate prose is to the selected voice. Returns Voice Match only when the saved corpus and candidate are eligible; otherwise returns an unmeasured reason and safe evidence provenance.

rewrite_in_voiceIdiolect AI: Rewrite In Voice

If the rewrite scores worse than what you wrote, it keeps yours and says so, rather than handing back something flatter.

What the model sees

Rewrite supplied prose in the selected voice. Returns the safe recommendation, generated candidate, diagnostic delta, and measurement details; absolute Voice Match stays withheld unless independent held-out evidence and the target register support it. When the candidate regresses, the recommendation retains the original.

draft_in_voiceIdiolect AI: Draft In Voice

Writes from a brief in your voice. It matches how you write — never invents what you think.

What the model sees

Draft new prose in the selected voice from a supplied brief. Returns measurement details; absolute Voice Match stays withheld unless independent held-out evidence and the target register support it.

What comes back

Scores arrive with their own provenance, so a client can always tell a real measurement from an unmeasured one — and never present an estimate as more than it is.

score_voice
{
  "voiceMatch": 84,
  "measured": true,
  "validated": true,
  "instrument": "LUAR-MUD authorship embedding (validated)",
  "register": "reddit-casual",
  "approximate": true,
  "reason": null,
  "evidence": { "scoringEligible": true, "blockCount": 9, "characterCount": 4210 }
}

relativeThe delta is the robust signal; register names the corpus the absolute anchors were fit on, and approximate stays true while they are. Full method and limits: Voice Match.

Credit status

Free beta is explicit in both relay copy and machine fields. The starter balance is a preview, not a countdown; generation charges zero credits.

get_credit_status
{
  "state": "free_beta",
  "mode": "free",
  "balance": 30,
  "balancePreview": true,
  "unitCost": 0,
  "charged": 0,
  "generationAvailable": true,
  "purchaseRequired": false,
  "manageUrl": null,
  "message": "Free during beta. No credits are being used."
}

In the dormant credits-mode contract, a known zero balance returns a structuredpurchase_required tool error and the stable first-party management path. A temporary accounting outage returns accounting_unavailable without suggesting purchase. Retry safety is stated only for these pre-generation denials; paid enforcement remains disabled.

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.

Troubleshooting

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/onboard — and check you signed into the connector with the same account.

Rewrite or draft says you don’t have access

Generation is free during beta. 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.

You get the writing, but no Voice Match

There isn’t enough of your writing saved yet to score against — roughly 600 characters across four separate pieces. You still get the draft; we’d rather withhold the number than show one that doesn’t mean anything. Add more samples in your Voice Profile.

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.

Support

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.

Idiolect AI MCP connector - setup, tools, and troubleshooting | Idiolect AI