Skip to main content

WriteStat MCP Server

WriteStat MCP Banner

PyPI version Tests Python 3.10+ Code style: ruff License: MIT

MCP server for text readability analysis and AI pattern detection. Helps writers identify AI-like patterns and improve readability.

Created by Du'An Lightfoot | @labeveryday

Installation

pip install writestat-mcp

# Optional: ML-based detection (~500MB for torch/transformers)
pip install writestat-mcp[ml]

# Required: NLTK data
python -c "import nltk; nltk.download('punkt_tab')"

Tools

Tool Description
analyze_text Readability metrics (Flesch-Kincaid, SMOG, etc.)
find_hard_sentences Complex sentences with explanations
check_ai_phrases Pattern-based AI detection (60+ patterns)
detect_ai_ml ML detection via GPT-2 perplexity (optional)
batch_analyze Process multiple texts in parallel
compare_texts Before/after comparison

Claude Desktop Setup

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "readability": {
      "command": "writestat-mcp"
    }
  }
}

With Claude Code

# After PyPI publish
# Pattern detection only (lightweight)
claude mcp add writestat-mcp -- uvx writestat-mcp

# Or with ML detection (~500MB download)
claude mcp add writestat-mcp -- uvx "writestat-mcp[ml]"

# From local source
cd /path/to/writestat-mcp
pip install -e .
claude mcp add writestat-mcp -- writestat-mcp

Example Prompts

Full analysis workflow:

I just wrote this blog post. Check the readability, find any difficult sentences, and flag anything that sounds too AI-generated. Then suggest improvements:

Editing pass:

This is my draft and my revised version. Compare them and tell me if the readability improved and if I removed the AI-sounding phrases. {First_draft} vs {second_draft}

Quick AI check:

Does this paragraph have any AI tells? Be specific about which phrases to fix:

Target audience check:

I'm writing for high school students. Is this text at the right reading level? Which sentences are too complex:

AI Detection: What to Expect

This tool uses heuristic pattern matching and zero-shot perplexity scoring—not a fine-tuned classifier.

How It Works

  • Pattern detection: Catches stylistic markers (em dashes, filler phrases, buzzwords)
  • ML detection: Measures perplexity, vocabulary diversity, burstiness

Accuracy Context

Research shows fine-tuned RoBERTa models achieve ~99% F1 on ChatGPT detection (Guo et al., 2023). Our lightweight approach won't match that. It's designed for:

  • Quick pattern screening
  • Catching obvious AI tells
  • Educational awareness about AI writing patterns

Not suitable for: Academic integrity decisions, high-stakes verification

What the Research Found

The HC3 paper identified key ChatGPT markers we detect:

  • Lower perplexity (more predictable) ✓
  • Lower vocabulary diversity ✓
  • Formal conjunctions ("Furthermore", "It's important to note") ✓
  • Organized structure with clear transitions ✓

Score Interpretation

Readability (Flesch-Kincaid Grade)

Grade Audience
5- Elementary
6-8 Middle school
9-12 High school
13+ College

AI Probability (ML)

Score Interpretation
0-30 Likely human
30-60 Uncertain
60-100 Likely AI

Requirements

  • Python 3.10+
  • Core: fastmcp, textstat, nltk
  • Optional [ml]: torch, transformers

License

MIT

References

Metadata

Release files for writestat-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for writestat-mcp 0.1.0
File Size Uploaded
writestat_mcp-0.1.0.tar.gz 39.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for writestat-mcp 0.1.0
File Interpreter ABI Platform
writestat_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 77.9 kB

Release files / writestat_mcp-0.1.0.tar.gz

Download URL writestat_mcp-0.1.0.tar.gz
Size 39.9 kB
Tags Source
SHA-256 checksum
How to use checksums
f8d3149cf3f4d1742fd0b3cc16436bd2fc1612572d9fdc638c6b0381b980c4cf
BLAKE2b-256 checksum
How to use checksums
79895f85f4e9def05d61feaea7f4b92312453ee21973aa93235b2316ca8807d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / writestat_mcp-0.1.0-py3-none-any.whl

Download URL writestat_mcp-0.1.0-py3-none-any.whl
Size 38.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c100683650b67c6787cfe2157b7e121fe3f828bf3f2110a79c07951850b06785
BLAKE2b-256 checksum
How to use checksums
14161ef439bbe0a1e0bfa121447cc2e71d45543e0b3aede7e0becf41045b098e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page