MCP server for analyzing and humanizing AI-generated text to bypass AI detection.
Project description
humanizer-mcp
An MCP (Model Context Protocol) server that measures AI-detection risk in a piece of text and tells you — line by line — what to change. Works with Claude Code, Claude Desktop, and any MCP-compatible client.
Rather than running your prose through a black-box "humanizer," this server analyzes it against known detection signals (vocabulary, burstiness, contraction usage, paragraph uniformity, em dashes, first-person voice) and returns a structured report with a 0–100 risk score and a concrete rewrite plan. The actual rewriting is left to the LLM that's driving the conversation — which is the point: a planner, not a laundering service.
Tools
| Tool | What it does |
|---|---|
humanizer_analyze_ai_tells |
Full analysis with risk score and fix recommendations. |
humanizer_quick_vocab_scan |
Fast word- and phrase-level scan with replacement suggestions. |
humanizer_get_rewrite_instructions |
Step-by-step rewrite plan, tailored to text type (blog / business / academic / email / general). |
humanizer_compare_before_after |
Side-by-side metrics for an original and a rewrite, with a PASS / IMPROVED / NEEDS MORE WORK verdict. |
humanizer_get_banned_words |
The full vocabulary and phrase ban list, for reference. |
Installation
With uvx (recommended — no install step)
uvx humanizer-mcp
With pip
pip install humanizer-mcp
humanizer-mcp
With npx
npx humanizer-mcp
The npm package is a thin launcher that delegates to uvx, pipx run, or python3 -m humanizer_mcp — whichever is available on the host.
Configure your MCP client
Claude Code
claude mcp add humanizer -- uvx humanizer-mcp
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"humanizer": {
"command": "uvx",
"args": ["humanizer-mcp"]
}
}
}
Config location:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Generic MCP client (stdio)
{
"command": "uvx",
"args": ["humanizer-mcp"]
}
HTTP transport
For remote access, run the server on a port and point your client at it:
humanizer-mcp --http --port 8000
Try it with the MCP Inspector
Poke at the tools without configuring a client:
npx @modelcontextprotocol/inspector uvx humanizer-mcp
Example prompts
With the server connected to Claude, you can say things like:
- "Analyze this blog post for AI tells and tell me what to change."
- "Run a quick vocab scan on this paragraph."
- "Give me rewrite instructions for this academic abstract — keep it formal but fix the burstiness."
- "Compare these two drafts. Did my edit actually lower the detection risk?"
Claude picks the right tool automatically.
How the risk score works
The 0–100 score combines eight signals:
- AI vocabulary hits — words statistically overrepresented in LLM output (
delve,crucial,leverage,myriad, …). - AI phrase hits — cliché structural tells (
it's important to note,in the ever-evolving,at the end of the day, …). - Burstiness — coefficient of variation of sentence lengths. AI writing clusters around a single length; humans mix short fragments and long digressions.
- Contractions — expanded forms (it is, do not) read as AI-formal; contractions read as conversational.
- Paragraph uniformity — AI tends to produce paragraphs of similar size.
- Rhetorical questions — near-absent in AI prose above 200 words.
- First-person voice — AI avoids I, we, my, our unless prompted.
- Em dashes — a ChatGPT signature; heavy use is a strong signal.
Each signal adds to the score independently; the total is clamped to 100 and bucketed into LOW (≤ 20), MEDIUM (21–50), or HIGH (51+).
Development
git clone https://github.com/aousabdo/humanizer-mcp
cd humanizer-mcp
pip install -e ".[dev]"
pytest
See CONTRIBUTING.md for more.
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file humanizer_mcp-0.1.0.tar.gz.
File metadata
- Download URL: humanizer_mcp-0.1.0.tar.gz
- Upload date:
- Size: 14.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f636a9e63382ac6e6e01a118912880e4a3942db39b645aa9717e8e051f24ae72
|
|
| MD5 |
f8d9a361fceedf907d23379f90734259
|
|
| BLAKE2b-256 |
ba9f1c82a46208e87759fc910e2b7087da83e756337ae91992b492df9f372b05
|
Provenance
The following attestation bundles were made for humanizer_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on aousabdo/humanizer-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
humanizer_mcp-0.1.0.tar.gz -
Subject digest:
f636a9e63382ac6e6e01a118912880e4a3942db39b645aa9717e8e051f24ae72 - Sigstore transparency entry: 1383515547
- Sigstore integration time:
-
Permalink:
aousabdo/humanizer-mcp@14612d47b5540d33e85369f0a13525af370be9e9 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/aousabdo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14612d47b5540d33e85369f0a13525af370be9e9 -
Trigger Event:
push
-
Statement type:
File details
Details for the file humanizer_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: humanizer_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
536b98ea6685b38849704aba6ac7f40c3d819b39f1f29657633c79b012ecb8d0
|
|
| MD5 |
058707f49610a06fa27f21fa0a77c7a6
|
|
| BLAKE2b-256 |
b2f7c0041d1d297657867e7326c9b846f6a19887a73172c964c55dfce21be6b4
|
Provenance
The following attestation bundles were made for humanizer_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on aousabdo/humanizer-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
humanizer_mcp-0.1.0-py3-none-any.whl -
Subject digest:
536b98ea6685b38849704aba6ac7f40c3d819b39f1f29657633c79b012ecb8d0 - Sigstore transparency entry: 1383515583
- Sigstore integration time:
-
Permalink:
aousabdo/humanizer-mcp@14612d47b5540d33e85369f0a13525af370be9e9 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/aousabdo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14612d47b5540d33e85369f0a13525af370be9e9 -
Trigger Event:
push
-
Statement type: