# Moltline Humanizer

> Find AI-isms with evidence and fingerprint a writing voice from samples. 3 of 5 free.

- name: com.moltlinestudio/humanizer
- version: 1.2.0
- connection class: R0 (autonomous)
- trust: 84/100 flags: duplicate-repo
- quality: 91/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.moltlinestudio%2Fhumanizer
- tools: https://api.protogrid.dev/v1/servers/com.moltlinestudio%2Fhumanizer/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "humanizer": {
      "type": "http",
      "url": "https://mcp.moltlinestudio.com/humanizer"
    }
  }
}
```


## Trust

- hygiene: 60
- liveness: 99
- freshness: 85
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-97% ~updated-42d-ago -duplicate-repo(22 names)
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 91/100 (strong)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 5 of 5 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,665 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 5, about 1,665 tokens to load them all
- tool set hash: 81fce6060a3d7f817515420d3716ab5b
- badge: [![protogrid quality](https://protogrid.dev/badge/com.moltlinestudio/humanizer.svg)](https://protogrid.dev/servers/com.moltlinestudio/humanizer)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://mcp.moltlinestudio.com/humanizer (streamable-http, auth none, reachable true, uptime30d 0.9652174)

## Packages

_none_

## Tools (5)

- `ai_tell_scan`: Scan a draft for the measurable tells of AI-generated prose. FREE.

Flags stock phrases (with exact quotes), structural reflexes, uniform
sentence rhythm, em-dash overuse, and hedging boilerplate — every flag
cites the actual text. Typical input {"text": "<draft>"} returns
{"reads_human_score": 0-100, "metrics": {"burstiness": ...,
"avg_sentence_len": ..., ...}, "evidence": [{"type": "stock_phrase",
"quote": "..."}], "note": "..."}.

Use for a first read on whether a draft carries machine-writing signals.
Reports measurable patterns, not a verdict on who wrote the text, and must
not be used to accuse a person of anything. Not for rhythm detail
(burstiness_report) or for a rewrite brief (humanize_plan). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "empty text"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
- `burstiness_report`: Map a draft's sentence rhythm and find where it goes flat. FREE.

Reports per-sentence lengths, the burstiness coefficient, and runs of
similar-length sentences. Typical input {"text": "<draft>"} returns
{"sentence_lengths": [12, 14, 13, 5, 28], "burstiness": 0.52,
"flat_runs": [{"sentences": "1-3", "lengths": [12, 14, 13]}],
"tip": "..."}.

Use when prose reads flat and sentence-length pattern is the suspect. Not
for a full inventory of tells (ai_tell_scan). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "need 3+ sentences"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
- `humanize_plan`: Produce a precise rewrite brief that de-AIs a draft, with numeric targets. PREMIUM (license).

Lists every flagged tell with its fix and sentence-rhythm surgery
targets; when a voice_fingerprint result is supplied, adds numeric
targets to hit that person's voice. Apply the brief with your agent,
then confirm with verify_rewrite. Typical input {"text": "<draft>",
"fingerprint": <voice_fingerprint result>} returns {"current_score":
0-100, "edit_list": ["..."], "numeric_targets": {...}, "process": ...,
"integrity_note": ...}.

Use after a scan has identified what to fix; returns a brief, not
rewritten prose. Not for checking whether a rewrite worked
(verify_rewrite). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
- `verify_rewrite`: Verify a rewrite actually improved: score delta, meaning check, voice distance. PREMIUM (license).

Compares reads-human score before/after, a meaning-preservation proxy,
and (with a fingerprint) numeric distance to the target voice. Typical
input {"original": "<draft>", "rewrite": "<edited draft>"} returns
{"score_before": N, "score_after": N, "score_delta": N,
"content_word_retention_pct": N, "remaining_tells": [...],
"verdict": "Improved — ship it" | "Marginal — ..."}.

Use only when both the before and the after text are available. Not for
scoring a single draft (ai_tell_scan). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "both texts must be non-empty"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
- `voice_fingerprint`: Build a measurable voice profile from samples of a person's real writing. FREE.

Feed it 2+ samples (emails, posts, essays — 150+ words total) and use
the result with humanize_plan / verify_rewrite. Typical input
{"samples": ["<email text>", "<blog post>"]} returns {"label":
"my-voice", "target_metrics": {"avg_sentence_len": ..., "burstiness":
..., ...}, "favorite_words": [...], "signature_habits": ["..."],
"words_analyzed": N}.

Use on samples the person actually wrote, to build a target profile. Not
for scoring an unknown draft (ai_tell_scan) and not on text the person did
not write. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "need 150+ words of real writing across the samples"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
