ScriptGrain makes Gemini better at being you
By Jack Stovell · published 2026-09-21 · updated 2026-09-20
Gemini can write for you. It cannot measure you. That's the gap ScriptGrain closes: it measures your voice as a profile, then hands that measurement to Gemini, either as a measured prompt pasted into a Gem's instructions or, in Gemini CLI, as the full profile read live over MCP.
Start with the prompt builder below. Paste in a few writing samples and it produces a one-page measured prompt you can drop straight into a Gem, free, no account needed. It's the fastest way to see what "measured" actually means before you commit to anything.
How to connect
- Measure your voice, free. One profile, one full writing analysis across 45 attributes, no card required.
- For the Gemini app: paste the builder's prompt into a Gem's instructions. Gemini reads it as a fixed brief every time that Gem runs.
- For Gemini CLI: add the settings block below to your `settings.json`, then sign in.
```
{ "mcpServers": { "scriptgrain": { "httpUrl": "https://mcp.scriptgrain.com/mcp", "headers": { "Authorization": "Bearer sg_live_…" } } } }
```
That's it. No fourth step, no setup call.
What changes
Here's the thing about most AI writing advice: it describes a voice instead of measuring it. "Write casually, use short sentences" is a description. A profile with sentence length, contraction rate and formality score attached to it is a measurement. Gemini, like any model, follows descriptions loosely and numbers tightly.
That distinction has a scoreboard. In SGR-002, one author's five blog posts were split: three built a 2,447-word study profile, two were held out as briefs. Against that study profile, ScriptGrain's generation scored a mean voice match of 0.83. Bare GPT-5 scored 0.74. GPT-5 given the free prompt builder's one-page measured prompt scored 0.62, worse than writing with no guidance at all.
Look at why. The prompt asked for about 14 contractions per 1,000 words and a formality of 3.7. GPT-5 wrote 0.5 contractions per 1,000 words and landed at a judged formality of 7.2, while still obeying the countable rules: no em dashes, more short sentences. It followed the instructions it could count and ignored the ones it had to interpret. Bare GPT-5 wrote 2,309 words against a 1,393-word target, with 17.5 em dashes per draft. ScriptGrain's generation ran 1,302 words, with none.
Against the held-out post itself, the gap holds shape: 0.91 for ScriptGrain, 0.82 bare, 0.80 with the prompt. And detector "human" scores didn't track any of this: the prompt arm scored 0.78, ScriptGrain 0.67, bare GPT-5 0.52. Sounding human and sounding like you are different questions. Full detail sits in ChatGPT vs a measured voice, including the limits: two briefs, one author, one run per arm, not blind. Small study. Consistent direction.
Score bands work the same way on Gemini as anywhere else: 0.85 to 0.95 against a profile reads as on voice, 0.5 to 0.8 is partial, under 0.45 is a different writer wearing your byline. SGR-001 found similar movement on a banking brief: average sentence length fell from about 17 words to about 11, sentences under eight words doubled from 24% to 48%, contractions rose by roughly 70%, and ten em dashes became none, once a profile replaced a bare prompt. One run per arm, unedited, but the direction repeats.
Gemini CLI over MCP
The Gemini app won't currently connect to third-party MCP servers. That's a Google product limit, not a ScriptGrain one. Instructions saved in a Gem or in Saved info are static text, read once and reused.
Gemini CLI is different. It's Google's open-source terminal agent, and it reads the `mcpServers` block in its own `settings.json`. Point that block at `https://mcp.scriptgrain.com/mcp` with your bearer key, and Gemini CLI reads your full profile live: all 45 attributes, not the compressed one-page version. Same server, same 30 tools, as Claude or Cursor get over MCP. The loop is identical too: `create_profile`, `generate_content`, `check_voice_match`, `save_edit`. `check_voice_match` and `compare_voice` are free on every plan, including Free, so you can score a Gemini draft against your profile without spending a credit.
Worth naming the market gap here. The 2026-09-20 harvest of 175 personal-voice pages across the field found dedicated setup pages for ChatGPT and Claude only. Gemini showed up bundled inside general how-to posts, an afterthought rather than a destination. That's partly why this page exists.
What stays free
The profile is free: one voice profile, one full analysis, forever, on the Free plan, no card. The connector is free: MCP works on every plan including Free. Scoring and comparing are free: `check_voice_match` and `compare_voice` never cost a credit, on any plan.
Drafts cost credits. Polish and humanize cost credits (each with a free skip if the draft already passes). The monthly voice monitor is a paid-plan feature. That split is deliberate: measuring your voice and checking work against it should never have a toll gate. Writing fresh drafts is the paid part, because that's the part doing the work.
Free extractions are one per account, for the lifetime of that account; paid plans add monthly extractions on top. ChatGPT and Claude run the identical split. Gemini isn't a special case here. It's just the one nobody wrote the page for yet.
Questions
Does ScriptGrain work with the Gemini app or only Gemini CLI?
Both, differently. The Gemini app takes the prompt builder's one-page measured prompt pasted into a Gem's instructions, a static fallback. Gemini CLI connects over MCP and reads your full 45-attribute profile live through its `settings.json`. If you want the complete profile rather than a compressed prompt, use Gemini CLI.
Why did the measured prompt score lower than bare GPT-5 in SGR-002?
Because a prompt is a description, and models follow countable instructions more reliably than qualitative ones. GPT-5 hit the em-dash and sentence-length rules exactly but produced 0.5 contractions per 1,000 words against a target of 14, and formality of 7.2 against a target of 3.7. Descriptions get half-obeyed. Measurements, read live, don't have that failure mode.
Is checking my voice match on a Gemini draft free?
Yes. `check_voice_match` and `compare_voice` are free on every plan, including Free, with no credit cost. You can generate a draft anywhere, in Gemini, ChatGPT, wherever, and score it against your ScriptGrain profile without paying for the check itself. Only generation, polish and humanize draw down credits; the monthly monitor comes with the paid plans.
What's a good voice-match score to aim for?
Against a profile, 0.85 to 0.95 reads as on voice, 0.5 to 0.8 is partial (competent, on-brief, missing your fingerprint) and under 0.45 is off. SGR-002's ScriptGrain runs landed at 0.83 and 0.91 against two different reference texts.
Does a high detector "human" score mean the writing sounds like me?
No, and SGR-002 is fairly blunt about this. Detector scores ran 0.78 for the prompt arm, 0.67 for ScriptGrain, 0.52 for bare GPT-5, in reverse order from the voice-match results. A detector checks whether text reads as AI-written in general. Voice match checks whether it reads as written by you specifically. They're answering different questions entirely.