# Make Gemini write in your voice: measured profile, Gems and Gemini CLI · ScriptGrain

> Make Gemini write in your voice two ways: a measured one-page prompt for a Gem, or the full profile over MCP in Gemini CLI, with a voice-match score on every draft. The profile, the connector and scoring are free.

Canonical: https://scriptgrain.com/works-with/gemini

# 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

1. Measure your voice, free. One profile, one full writing analysis across 45 attributes, no card required.
2. 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.
3. 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](https://scriptgrain.com/research/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](https://scriptgrain.com/works-with/claude) or [Cursor](https://scriptgrain.com/works-with/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 humanise 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](https://scriptgrain.com/works-with/chatgpt) and [Claude](https://scriptgrain.com/works-with/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 humanise 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.
