A Model Context Protocol (MCP) server that provides comprehensive text readability analysis using multiple established metrics. Built with FastMCP and Pydantic for reliable, structured analysis.
Project description
Readability Analysis MCP Server
A Model Context Protocol (MCP) server that provides comprehensive text readability analysis using multiple established metrics. Built with FastMCP and Pydantic for reliable, structured analysis.
Features
- Multiple Readability Metrics: Flesch Reading Ease, Flesch-Kincaid Grade Level, Gunning Fog Index, SMOG Index, ARI, and Coleman-Liau Index
- Text Statistics: Word count, sentence count, character count, syllable count, and estimated reading time
- Sentiment Analysis: Polarity and subjectivity analysis using TextBlob
- Intelligent Interpretations: Human-readable explanations and improvement recommendations
- Structured Output: JSON responses with Pydantic models for reliable parsing
All Platforms Configuration
Edit your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"readability": {
"command": "uvx",
"args": ["readability-mcp"]
}
}
}
Usage Examples
Once configured, restart Claude Desktop and you can use the readability tools directly in conversation:
Quick Readability Check
Can you analyze the readability of this text:
"The implementation of advanced algorithmic methodologies necessitates comprehensive evaluation protocols to ensure optimal performance characteristics across diverse operational parameters."
Claude will use your analyze_readability tool and provide structured analysis.
Sentiment Analysis
What's the sentiment of this customer feedback:
"I absolutely love this product! It's incredibly easy to use and has made my workflow so much more efficient."
Claude will use your analyze_sentiment tool.
Specific Metrics
What's the Flesch Reading Ease score for my blog post draft?
[paste your content]
Claude will use your flesch_reading_ease tool.
Integration Benefits
- Seamless Experience: Tools appear as native Claude capabilities
- Structured Analysis: Pydantic models ensure consistent, parseable responses
- Multi-tool Workflow: Claude can chain multiple readability tools together
- Context Aware: Claude can provide writing suggestions based on your analysis
Example Workflow
You: "Help me improve this paragraph for a general audience"
Claude: First, let me analyze the current readability... [Uses analyze_readability tool]
Based on the analysis showing a Flesch-Kincaid grade level of 14.2 (college level), here are some suggestions to make it more accessible:
- Break up the 45-word sentence into 2-3 shorter ones
- Replace "methodologies" with "methods"
- Simplify "necessitates" to "requires"
You: "Can you rewrite it and check the new version?"
Claude: [Rewrites the text, then uses analyze_readability again to verify improvement]
Usage
Available Tools
analyze_readability(text: str)
Comprehensive analysis including all metrics, statistics, sentiment, and recommendations.
Example:
{
"flesch_reading_ease": 65.2,
"flesch_kincaid_grade": 8.1,
"gunning_fog": 10.3,
"smog_index": 9.8,
"automated_readability_index": 8.7,
"coleman_liau_index": 9.2,
"reading_time_seconds": 45.6,
"text_stats": {
"sentence_count": 5,
"word_count": 87,
"character_count": 456,
"syllable_count": 132
},
"sentiment": {
"polarity": 0.2,
"subjectivity": 0.4,
"interpretation": "Positive tone, moderately subjective"
},
"interpretation": {
"flesch_ease_interpretation": "Standard (8th-9th grade level)",
"overall_difficulty": "High School",
"recommendations": ["Text readability is good!"]
}
}
flesch_reading_ease(text: str)
Returns only the Flesch Reading Ease score with interpretation.
flesch_kincaid_grade(text: str)
Returns only the Flesch-Kincaid Grade Level.
analyze_sentiment(text: str)
Returns sentiment analysis with polarity, subjectivity, and interpretation.
Readability Metrics Explained
| Metric | Range | Description |
|---|---|---|
| Flesch Reading Ease | 0-100 | Higher scores = easier to read |
| Flesch-Kincaid Grade | 0-18+ | Grade level required to understand |
| Gunning Fog Index | 6-17+ | Years of education needed |
| SMOG Index | 6-18+ | Simple Measure of Gobbledygook |
| ARI | 1-14+ | Automated Readability Index |
| Coleman-Liau | 1-16+ | Based on characters per word |
Reading Ease Interpretations
- 90-100: Very Easy (5th grade)
- 80-89: Easy (6th grade)
- 70-79: Fairly Easy (7th grade)
- 60-69: Standard (8th-9th grade)
- 50-59: Fairly Difficult (10th-12th grade)
- 30-49: Difficult (college level)
- 0-29: Very Difficult (graduate level)
License
MIT
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 readability_mcp-0.0.1.tar.gz.
File metadata
- Download URL: readability_mcp-0.0.1.tar.gz
- Upload date:
- Size: 22.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95f2f06b2e36bc5c142c6d593e4ae02d5444d850820632a9184351869f40f3ed
|
|
| MD5 |
4fe62392f0e0ebe6c936e1bf10b7e313
|
|
| BLAKE2b-256 |
3ebaaf71e86ebddc284648ab239e4e294330e75b9e5ac40ed1bd5a61388b50bc
|
Provenance
The following attestation bundles were made for readability_mcp-0.0.1.tar.gz:
Publisher:
publish.yaml on benomahony/readability_mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
readability_mcp-0.0.1.tar.gz -
Subject digest:
95f2f06b2e36bc5c142c6d593e4ae02d5444d850820632a9184351869f40f3ed - Sigstore transparency entry: 238205577
- Sigstore integration time:
-
Permalink:
benomahony/readability_mcp@3986711d8137179885e01c5b07e638bc43d95bc0 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/benomahony
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@3986711d8137179885e01c5b07e638bc43d95bc0 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file readability_mcp-0.0.1-py3-none-any.whl.
File metadata
- Download URL: readability_mcp-0.0.1-py3-none-any.whl
- Upload date:
- Size: 5.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47cc7a41eabfbe4142d4700720b2bf36be462fd4defb2bb80af91e79e8f52e73
|
|
| MD5 |
6fe3f1a7a2963fdf4bf2042cb66c2fa6
|
|
| BLAKE2b-256 |
4123d6d7ef178eac0580ab3489eca58e8c6410ab8458663c758fa6cfb32b65e0
|
Provenance
The following attestation bundles were made for readability_mcp-0.0.1-py3-none-any.whl:
Publisher:
publish.yaml on benomahony/readability_mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
readability_mcp-0.0.1-py3-none-any.whl -
Subject digest:
47cc7a41eabfbe4142d4700720b2bf36be462fd4defb2bb80af91e79e8f52e73 - Sigstore transparency entry: 238205582
- Sigstore integration time:
-
Permalink:
benomahony/readability_mcp@3986711d8137179885e01c5b07e638bc43d95bc0 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/benomahony
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@3986711d8137179885e01c5b07e638bc43d95bc0 -
Trigger Event:
workflow_dispatch
-
Statement type: