Writing Tools MCP: A Toolkit for Better Writing
I just released a new tool that I’m pretty excited about: Writing Tools MCP, a Model Context Protocol server that provides text analysis capabilities to help improve your writing.
What the heck is MCP?
If you’ve been following AI development, you’ve probably heard of “tools” or “function calling” that let AI assistants like Claude or GPT interact with external systems. The Model Context Protocol (MCP) takes this concept and standardizes it, creating a secure way for AI models to interact with tools on your local machine.
MCP servers act as a bridge between AI assistants and your local environment. They define a set of tools or functions that the AI can call, process those calls securely, and return the results. This means AI assistants can analyze your files, run local code, or interact with applications without needing direct access to your system.
It’s a bit like giving an AI assistant a specific set of tools it can use, but keeping those tools in your workshop and only letting the assistant send over instructions.
MCP vs. Function Calling: What’s the Difference?
To understand why MCP is important, let’s compare it to traditional function calling:
Feature | Traditional Function Calling | Model Context Protocol (MCP) |
---|---|---|
Code Location | Functions must be defined in the same environment as the AI | Tools can run on separate machines or processes |
Security | Limited - AI and tools share the same process | Enhanced - Tools run in isolated environments |
Standardization | Different for each AI provider | Unified protocol works across AI platforms |
Extensibility | Requires code changes to add new functions | Plug-and-play with any MCP-compatible tools |
Maintenance | AI and tools must be updated together | Tools can be updated independently |
Why are MCPs useful?
MCPs unlock a whole new level of utility for AI assistants:
- Local processing: Keep sensitive data on your machine rather than sending it to remote servers
- Custom capabilities: Add domain-specific tools that AI providers don’t offer out-of-the-box
- System integration: Connect AI assistants with your existing workflows and tools
- Privacy: Control exactly what the AI can access and do on your system
This is particularly powerful for developers using AI coding assistants like Cursor, where the AI can now help analyze your codebase, run tests, or even deploy applications without leaving your workflow.
Writing Tools MCP
My new MCP server provides a collection of text analysis tools designed specifically for writers. It integrates with AI assistants to help improve the quality of your writing - whether that’s blog posts, documentation, emails, or any other text.
How Writing Tools MCP Works Under the Hood
flowchart LR A[AI Assistant
Claude/Cursor/etc.] -->|1. Sends Request| B[Writing Tools MCP Server] B -->|2. Processes Request| C[Text Analysis Engine] C -->|3. Analyzes Text| D{Analysis Tools} D -->|Readability| C D -->|Keywords| C D -->|Style| C D -->|Spelling| C C -->|4. Returns Results| B B -->|5. Structured Response| A style A fill:#f9d5e5,stroke:#333,stroke-width:2px style B fill:#eeeeee,stroke:#333,stroke-width:2px style C fill:#dddddd,stroke:#333,stroke-width:2px style D fill:#d0e0ff,stroke:#333,stroke-width:2px
Writing Tools MCP follows a client-server architecture:
- MCP Client (your AI assistant like Claude or Cursor) sends requests to the MCP server
- MCP Server (Writing Tools MCP) receives those requests and calls the appropriate text analysis functions
- Text Analysis Engine processes your text using libraries like spaCy for NLP and textstat for readability metrics
- Results are passed back to the AI assistant through the standardized MCP response format
The technical stack includes:
- Python-based backend using the MCP SDK
- spaCy for natural language processing
- textstat for readability scoring
- pyspellchecker for spell checking
- NLTK for supplementary text analysis
# Simplified example of how a readability tool is implemented
@tool()
def readability_score(text: str, level: str = "full") -> dict:
"""
Calculates various readability scores for the input text.
Args:
text: The input string to analyze.
level: The granularity level for the analysis ("full", "section", or "paragraph").
Returns:
dict: A dictionary containing the readability scores.
"""
# Process based on level
if level == "full":
return {
"flesch": textstat.flesch_reading_ease(text),
"kincaid": textstat.flesch_kincaid_grade(text),
"fog": textstat.gunning_fog(text)
}
# Handle other levels...
What’s in the box?
The server comes loaded with text analysis tools:
- Basic stats: Character count, word count (I’ve found models are very bad at things like “write a title that is 100-150 characters” on their own, but with this they nail it.)
- Readability analysis: Flesch, Kincaid, and Fog readability scores
- Reading time estimates: How long it would take to read a text
- Keyword analysis: Density, frequency, and context for specific keywords
- Style checking: Passive voice detection and spellchecking
- Top keywords: Find the most frequently used words in your text
Interpreting Your Readability Scores
Understanding your readability scores helps you tailor your writing for your audience. Here’s what the scores mean:
Flesch Reading Ease | Readability | Education Level | Best For |
---|---|---|---|
90-100 | Very Easy | 5th grade | Children’s content, beginners |
80-89 | Easy | 6th grade | Conversational blog posts |
70-79 | Fairly Easy | 7th grade | Marketing, mass market |
60-69 | Standard | 8-9th grade | General audience content |
50-59 | Fairly Difficult | 10-12th grade | Professional blogs |
30-49 | Difficult | College | Academic, technical |
0-29 | Very Difficult | College graduate | Specialized technical |
Remember that simpler writing is generally more effective, even for educated audiences. Famous authors like Hemingway often wrote at a 4th-6th grade level for maximum clarity and impact.
Making the Most of Keyword Analysis
The keyword analysis tools help you understand patterns in your writing and optimize for both readability and SEO. Here’s how to interpret and use the results:
Keyword Density: Aim for natural distribution (usually 1-2%) for important terms. Higher percentages can indicate repetitive writing or keyword stuffing.
Top Keywords: Review to ensure they align with your topic. If unimportant words dominate, consider restructuring your content.
Keyword Context: Examine how keywords appear in sentences to identify awkward phrasing or opportunities for variety.
Action Steps:
- Replace overused words with synonyms
- Break up text clusters where a keyword appears too frequently
- Add related terms to expand topical coverage
- Remove unnecessary repetition while preserving clarity
How Writing Tools MCP Compares to Other Editing Tools
While there are many writing assistance tools available, Writing Tools MCP offers unique advantages:
Feature | Writing Tools MCP + LLM | Grammarly | Hemingway Editor | ProWritingAid |
---|---|---|---|---|
AI Integration | ✅ Direct integration with Claude, Cursor, etc. | ❌ Separate system | ❌ Separate system | ❌ Separate system |
Privacy | ✅ All local processing | ❌ Cloud-based | ✅ Local app available | ❌ Cloud-based |
Pricing | ✅ Free & open source | ❌ Subscription | ✅ One-time purchase | ❌ Subscription |
Customization | ✅ Fully customizable | ❌ Limited | ❌ None | ❌ Limited |
Contextual Feedback | ✅ AI provides context-aware advice | ✅ Limited context | ❌ No context | ✅ Limited context |
Technical Integration | ✅ Can integrate with workflows | ❌ Limited integration | ❌ No integration | ❌ Limited integration |
The unique advantage of Writing Tools MCP is that it combines powerful text analysis with the contextual understanding of AI assistants like Claude or GPT. This gives you both objective metrics AND intelligent, context-aware suggestions.
How to use it
Using the Writing Tools MCP is straightforward:
Detailed Installation Guide
For macOS
Install Claude Desktop (or another MCP-enabled AI tool)
- Download Claude Desktop
- Follow the installation wizard
- Launch and sign in to your Claude account
Install Python 3.10+
brew install python
- Verify with
python3 --version
- Verify with
Install uv (Python package manager)
brew install uv
- Verify with
uv --version
- Verify with
Configure Claude to use Writing Tools MCP
- Open Claude Desktop
- Go to Settings > MCP Servers
- Add a new server with these settings:
- Name:
writing_tools
- Command:
uv
- Args:
--directory
,/path/to/writing-tools-mcp
,run
,server.py
- Name:
- Click “Save”
For Windows
Install Claude Desktop (or another MCP-enabled AI tool)
- Download Claude Desktop
- Follow the installation wizard
- Launch and sign in to your Claude account
Install Python 3.10+
- Download Python from python.org
- During installation, check “Add Python to PATH”
- Verify with
python --version
in Command Prompt
Install uv (Python package manager)
pip install --user uv
- Verify with
uv --version
- Verify with
Configure Claude to use Writing Tools MCP
- Open Claude Desktop
- Go to Settings > MCP Servers
- Add a new server with these settings:
- Name:
writing_tools
- Command:
uv
- Args:
--directory
,C:\path\to\writing-tools-mcp
,run
,server.py
- Name:
- Click “Save”
For Cursor Users
Install Cursor
- Download from Cursor’s website
- Follow the installation instructions
Configure Cursor to use Writing Tools MCP
- Open Cursor Settings
- Navigate to AI > MCP Servers
- Add a new MCP server with the same configuration as above
Real-World Use Cases
Let’s look at three specific use cases to see how Writing Tools MCP can help in different scenarios:
Case 1: Optimizing a Blog Post
Before: You’ve written a technical blog post but aren’t sure if it’s readable for your audience.
With Writing Tools MCP:
You: Check the readability and keyword usage of this blog post draft: [paste your draft]
Claude: I've analyzed your blog post using Writing Tools MCP.
Readability scores:
- Flesch Reading Ease: 42.8 (Difficult)
- Flesch-Kincaid Grade: 12.3 (College level)
- Gunning Fog: 15.6 (College graduate)
Your post currently requires a college education to understand comfortably. Since your target audience includes beginners, I recommend simplifying your language.
Top keywords: "configuration" (17 times), "server" (14 times), "process" (11 times)
Some recommendations to improve readability:
1. Break down sentences in paragraphs 3, 7, and 10, which exceed 30 words
2. Replace technical terms like "implementation methodology" with simpler alternatives like "approach"
3. Add subheadings every 250-300 words to improve scanability
Would you like me to help edit specific sections to improve readability?
Case 2: Academic Writing
Before: You’ve drafted a research paper but need to ensure it meets academic standards while remaining clear.
With Writing Tools MCP:
You: Analyze this research paper introduction for academic tone and clarity: [paste introduction]
Claude: I've analyzed your research paper introduction:
Readability: Flesch-Kincaid Grade Level 16.2 - appropriate for academic writing.
Passive voice: 32% - slightly high but acceptable for academic writing.
Style issues detected:
1. Inconsistent use of terminology - you alternate between "methodology" and "method"
2. Several sentences exceed 40 words, reducing clarity
3. The third paragraph contains 4 instances of hedge words ("may," "potentially"), weakening your claims
I'd recommend maintaining consistent terminology, breaking down complex sentences, and being more assertive in your claims where evidence allows.
Case 3: Marketing Copy
Before: You need to write persuasive product descriptions that are clear and compelling.
With Writing Tools MCP:
You: Help me analyze this product description for readability and persuasiveness: [paste description]
Claude: I've analyzed your product description:
Readability: Flesch Reading Ease 68.5 (Standard) - good for marketing copy.
Reading time: 32 seconds - appropriate length.
Keyword analysis:
- "innovative" appears 5 times (3.2% density) - consider reducing
- "solution" appears 4 times (2.5% density) - consider alternatives
- Missing key benefit terms like "save," "improve," or "increase"
The description is readable but relies heavily on feature descriptions rather than benefit statements. I recommend:
1. Transform 3-4 feature statements into direct benefit statements
2. Reduce adjective usage by 30% for more impact
3. Add 1-2 specific metrics or results customers can expect
Would you like me to help revise this with these suggestions in mind?
More Ways to Use Writing Tools MCP
Start asking your AI to analyze your writing:
"Check this document for spelling mistakes."
"What's the readability score for this blog post?"
"How long would it take someone to read this article?"
"What are the most frequently used words in this text?"
"Show me all instances of passive voice in this draft."
How to Stay Updated
- Star the GitHub repository for updates
Where to find more
- GitHub: https://github.com/wdm0006/writing-tools-mcp
- MCP SDK: https://github.com/modelcontextprotocol/python-sdk
Get involved!
If you have ideas for features, find bugs, or want to contribute, head over to the GitHub repository and get involved!
I’d love to hear how you’re using Writing Tools MCP to improve your own writing. Drop me a line if you build something cool with it!
Subscribe to the Newsletter
Get the latest posts and insights delivered straight to your inbox.