PlainGrade
English readability scores (Flesch, Flesch-Kincaid, Fog, SMOG) and text stats. Text never stored.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"plaingrade-api": {
"url": "https://plaingrade-api.mike-tusa.workers.dev/mcp"
}
}
}Remote endpoints
https://plaingrade-api.mike-tusa.workers.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (1)
🟢score_readability(text, lang, long_sentence_words, include_raw)
Compute readability scores for English text: Flesch Reading Ease, Flesch-Kincaid grade, Gunning Fog, SMOG, Coleman-Liau, ARI and a consensus grade, with plain-English interpretation, text statistics (words, sentences, syllables, reading and speaking time) and the sentences longer than a threshold. Read-only; the text is scored in memory and never stored or logged. Same engine as the PlainGrade JSON API (POST /v1/score).
Input Schema
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 20480,
"description": "English text to score, up to 20,480 bytes (UTF-8)."
},
"lang": {
"type": "string",
"maxLength": 20,
"default": "en",
"description": "Language code. Only English is supported: \"en\", \"en-US\", \"en-GB\", …"
},
"long_sentence_words": {
"type": "integer",
"minimum": 5,
"maximum": 200,
"default": 25,
"description": "A sentence with more words than this is listed as long (default 25)."
},
"include_raw": {
"type": "boolean",
"default": false,
"description": "Also return the full /v1/score JSON (every long sentence, unclipped) in structuredContent.raw. Larger output."
}
},
"required": [
"text"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"scores": {
"type": "object",
"properties": {
"flesch_reading_ease": {
"type": "number"
},
"flesch_kincaid_grade": {
"type": "number"
},
"gunning_fog": {
"type": "number"
},
"smog": {
"type": "number"
},
"coleman_liau": {
"type": "number"
},
"ari": {
"type": "number"
},
"consensus_grade": {
"type": "number"
}
}
},
"interpretation": {
"type": "object",
"properties": {
"flesch_reading_ease": {
"type": "string"
},
"audience": {
"type": "string"
},
"consensus_grade": {
"type": "string"
}
}
},
"stats": {
"type": "object",
"description": "Counts and averages (words, sentences, syllables, reading_time_seconds, …)"
},
"long_sentences": {
"type": "object",
"properties": {
"threshold_words": {
"type": "number"
},
"count": {
"type": "number"
},
"truncated": {
"type": "boolean",
"description": "true if more than 10 long sentences exist or any text was clipped (use include_raw for all)"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"index": {
"type": "number"
},
"start": {
"type": "number"
},
"end": {
"type": "number"
},
"words": {
"type": "number"
},
"text": {
"type": "string"
}
},
"required": [
"index",
"words",
"text"
]
}
}
},
"required": [
"threshold_words",
"count",
"items",
"truncated"
]
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"lang": {
"type": "string"
},
"text_bytes": {
"type": "number"
},
"tier": {
"type": "string",
"enum": [
"anonymous",
"free_key"
]
},
"engine": {
"type": "string"
},
"version": {
"type": "string"
},
"raw": {
"type": "object",
"description": "Full /v1/score response (only when include_raw is true)"
}
},
"required": [
"scores",
"interpretation",
"stats",
"long_sentences",
"lang",
"version"
]
}Community
Evidence