Install
$ agentstack add mcp-justinritchie-prose-rich-mcp ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
prose-rich-mcp
> One local Model Context Protocol (MCP) server that wraps five free prose linters — proselint, alex, write-good, blocklint, textstat — plus a small built-in AI-tell detector. Gives Claude (and any MCP client) six independent lenses on a draft without per-word subscription costs or sending your text to a cloud service.
[](LICENSE) [](https://www.python.org/downloads/) [](https://modelcontextprotocol.io/)
Why this exists
The "writing improvement" MCP landscape is fragmented — every paid tool (Grammarly, ProWritingAid, DeepL Write, HumanTone, Sapling) wants a subscription and pushes someone else's opinion of good writing on you. The free tools (proselint, alex, write-good, blocklint, textstat) each give Claude a different lens on the same draft, but they all need to be installed and called separately.
This is the single connector that wires them all together. ~600 lines of Python, no API keys, no network, runs forever for free.
Pair it with Vale for your own house-style enforcement, and with the Writing Tools MCP for objective "does this still read like an LLM" signals (perplexity + stylometric), and you have a complete free local writing-improvement stack.
Tools
| Tool | What it catches | | --- | --- | | lint_proselint | Adverbs, clichés, hyperbole, redundancy, vague modifiers — Bryan Garner / DFW / Pinker / Orwell-inspired rules. | | lint_alex | Gender-favoring, ableist, racial, and other insensitive language. Markdown/MDX/HTML aware. | | lint_writegood | Passive voice, weasel words ("many", "various"), lexical illusions, "so/there is" openers. | | lint_blocklint | Non-inclusive identifiers and code-style language alex sometimes misses (master/slave, blacklist/whitelist). | | readability_stats | Flesch, Flesch-Kincaid, Gunning Fog, SMOG, Coleman-Liau, ARI, Dale-Chall, syllable/lexicon/sentence counts, reading time — via textstat. | | check_ai_tells | Built-in detector for signature LLM phrases ("delve", "leverage", "tapestry", "It's important to note", Moreover/Furthermore/Additionally openers, etc.). | | audit_all | Run all six in one call and return a merged report with a roll-up. |
Every tool accepts either an inline text string or an absolute path to a local file. Outputs are structured JSON with line / column locations.
Install
pip install prose-rich-mcp
The Python deps (textstat, proselint, blocklint, fastmcp) install automatically. The Node-ecosystem linters need a separate install:
npm install -g alex write-good
If alex or write-good aren't on PATH, the corresponding tools return TOOL_NOT_INSTALLED and the rest still work — audit_all reports the gap in its tools_missing list instead of failing.
Run
prose-rich-mcp # stdio MCP server
Configure in Claude Desktop
{
"mcpServers": {
"prose-rich": {
"command": "uvx",
"args": ["--from", "git+https://github.com/justinritchie/prose-rich-mcp", "prose-rich-mcp"]
}
}
}
Security
- All processing is local. No network calls, no API keys.
PROSE_RICH_ALLOWED_ROOTSis opt-in (not on by default). Leave unset and the server reads any path your user account can read. Set to a colon-separated list of dirs only if you want to sandbox.PROSE_RICH_MAX_FILE_BYTESdefaults to 10 MB.
What this isn't
- Not a grammar checker. For that, run LanguageTool self-hosted in Docker (~10 GB with n-grams) or just rely on Claude's native grammar.
- Not a style-guide enforcer. For your rules (banned words, preferred phrasings), use Vale — pair this with Vale, don't replace it.
- Not an AI-text humanizer. The
check_ai_tellsdetector flags patterns; it doesn't rewrite. If you want to defeat detectors specifically, see HumanTone et al. (but for most use cases, fixing the flagged patterns by hand or via the LLM produces better results).
License
MIT — see [LICENSE](LICENSE).
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: justinritchie
- Source: justinritchie/prose-rich-mcp
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.