MCP server for content optimization — score content, analyze keywords, check readability, and get SEO recommendations.
8 tools with complete input schemas and descriptions, but quality is uneven. Tool names follow verb_noun convention (score_content, analyze_keyword, extract_headings). Descriptions are present (avg ~150 chars) but lack actionable context for LLM selection. Parameters have types and descriptions, meeting baseline requirements. However, output schemas are not documented in the source, LLMs cannot see what fields to expect from responses. No error handling guidance, no recovery paths, no parameter constraints (enums, ranges). Readability and keyword density tools are narrow single-purpose functions; composition is reasonable. Security: no secrets exposed as parameters. Overall: functional but below production grade due to missing output documentation and error guidance.
Analyze content depth metrics including paragraph count, average paragraph length, presence of lists, code blocks, and quotes. Returns depth score and recommendations.
Analyze a keyword by fetching and analyzing the top 10 SERP results. Returns keyword difficulty, search volume estimate, average metrics from top-ranking pages (word count, headings, keyword density, readability), and top entities/topics covered.
Analyze keyword usage and density in content. Returns keyword count, density percentage, and checks for keyword presence in first paragraph and headings.
Analyze page title and meta description for SEO optimization. Checks length, keyword inclusion, and provides recommendations.
Calculate Flesch-Kincaid readability score and grade level for content. Returns readability score (0-100) and US grade level equivalent.
Extract heading structure from content. Parses both markdown (# ## ###) and HTML (h1-h6) headings and returns array with level and text for each heading.
Output schemas not documented. LLMs cannot see what fields score_content, analyze_keyword, or other tools return. This forces agents to guess at response structure and breaks downstream tool chaining.
No error handling guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next. E.g., analyze_keyword fetches SERP data, what if the fetch fails? No recovery path.
Parameter constraints missing. targetWordCount in score_content has no min/max bounds. keyword parameters accept free-form strings with no validation. No enums, patterns, or ranges documented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Generate topic suggestions for a keyword based on common SEO topics and keyword-specific variations. Returns list of 8-14 recommended topics to cover.
Score content against a target keyword and SERP data. Returns overall score (0-100) and detailed breakdown across 7 categories: Word Count, Keyword Usage, Heading Structure, Readability, Entity Coverage, Content Depth, and Meta Tags. Includes actionable recommendations.
Descriptions lack actionable context. 'Analyze a keyword by fetching and analyzing the top 10 SERP results' does not explain WHEN to call this vs score_content, or what prerequisites exist (e.g., internet access required). LLMs cannot disambiguate.
No pagination or result limits documented. get_topic_suggestions returns '8-14 recommended topics', but what if a keyword has 100 related topics? No limit, no pagination, no guidance on handling large result sets.