Skip to main content
Glama
content-qa-mcp

content-qa-mcp

by Alvi-808

content-qa-mcp

편집 콘텐츠 QA를 위한 MCP(Model Context Protocol) 서버입니다. Claude에 기사를 지정하면 모든 발견 사항에 수정 사항이 첨부된 발견 보고서를 얻을 수 있습니다. 따라서 보고서는 단지 정확한 것에 그치지 않고 실제로 사용할 수 있습니다.

이 발견-수정 계약은 테스트 스위트에 의해 강제됩니다. 실행 가능한 수정 사항 없이 발견 사항을 내보내는 검사는 스위트를 실패시킵니다.

기능

네 가지 도구, 하나의 프롬프트, API 키 없음. 모든 것이 로컬에서 실행됩니다.

도구

입력

검사 내용

qa_full_report

HTML 또는 일반 텍스트, 선택적 초점 키워드

아래의 모든 검사를 실행하고, 발견 사항을 병합하고, 심각도별로 정렬하여 게시/수정/차단 판정을 반환합니다.

readability_check

일반 텍스트

Flesch-Kincaid 학년, 긴 문장, 수동태 비율

ai_tell_scan

일반 텍스트

상투적 표현("delve into", "in today's fast-paced world", 총 15개 패턴), em/en 대시 밀도, 화살표 문자, 본문 산문의 이모지

seo_onpage_check

기사 HTML, 선택적 초점 키워드

제목 및 메타 길이, H1/H2 구조, 이미지 alt 커버리지, 내부 링크, 키워드 존재 및 밀도

또한 전체 보고서를 구동하고 모델이 발견 사항을 완화하거나 지어내지 않고 편집 판정을 내리도록 요청하는 qa_review 프롬프트가 있습니다.

모든 발견 사항은 하나의 객체입니다:

{
  "check": "seo-onpage",
  "severity": "high",
  "excerpt": null,
  "finding": "No meta description.",
  "fix": "Add a 120-155 character meta description that states the article's payoff and includes the keyword once."
}

전체 실행 예시는 samples/sample-report.md에서 확인하세요. 의도적으로 손상된 픽스처 기사에 대한 22개의 발견 사항이 있으며, npm run sample로 재생성할 수 있습니다.

Related MCP server: Stylotrace MCP Server

Claude Code에 설치 및 등록

git clone https://github.com/Alvi-808/content-qa-mcp.git
cd content-qa-mcp
npm install
npm test        # 14 tests, includes a real MCP client/server handshake

등록(Claude Code CLI):

claude mcp add content-qa -- node /absolute/path/to/content-qa-mcp/src/server.js

작동 확인됨:

content-qa: C:\Program Files\nodejs\node.exe C:\...\content-qa-mcp\src\server.js - √ Connected

그런 다음 Claude Code 세션에서: "이 기사에 대해 qa_full_report 실행" 또는 qa_review 프롬프트를 사용하세요.

claude mcp remove content-qa로 제거합니다.

Windows 참고 사항(대부분의 튜토리얼이 건너뛰는 부분)

Windows에서는 stdio MCP 서버를 node.exe의 절대 경로와 스크립트로 등록하세요:

claude mcp add content-qa -- "C:\Program Files\nodejs\node.exe" "C:\path\to\content-qa-mcp\src\server.js"

npx 또는 .cmd 셰임을 통한 등록은 Windows에서 자주 연결에 실패합니다. 생성된 프로세스가 stdio를 올바르게 연결하지 못하기 때문이며, 실패는 조용히 발생합니다. 절대 node.exe 경로와 스크립트 경로를 사용하면 항상 작동합니다. 이 저장소의 종단 간 테스트도 동일한 패턴(process.execPath)을 사용합니다.

설계 노트

  • 검사는 src/checks/의 순수 함수입니다. MCP 없이도 가져올 수 있습니다. 서버는 이들 위의 얇은 프로토콜 계층이므로 동일한 검사를 CI, git 훅 또는 파이프라인에서 실행할 수 있습니다.

  • SEO 검사는 의도적으로 범위가 제한됩니다. 잘 구성된 CMS 기사 출력(WordPress, Ghost, 정적 사이트 생성기)을 정규식 추출로 파싱합니다. 일반 HTML 파서가 아니며 악의적인 마크업을 견디려고 시도하지 않습니다. 경계를 명명하는 것이 경계가 없다고 가장하는 것보다 낫습니다.

  • 일반 텍스트 입력은 SEO 검사를 건너뜁니다. 가짜 "태그 누락" 발견 사항을 보고하는 대신입니다.

  • 상투적 표현 목록은 문자열이 아닌 클래스를 금지합니다. 각 항목은 패턴이므로 클리셰의 한 단어 변형도 잡아냅니다.

존재 이유

이것은 유료 편집 QA 작업 뒤에 있는 작업 방법을 에이전트가 호출할 수 있는 도구로 패키징한 것입니다. 여기에 담긴 규칙은 다음과 같습니다. 무엇이 잘못되었는지 말하면서 다음에 무엇을 해야 하는지 말하지 않는 QA 보고서는 단지 작업을 다른 사람의 책상으로 옮길 뿐입니다. 발견 사항은 수정 사항과 함께 제공되거나 제공되지 않습니다.

라이선스

MIT

Available Tools

4 tools
ai_tell_scanAI-writing tell scanA

Scan prose for machine-writing tells: stock phrases (delve into, in today's fast-paced world, ...), em/en-dash density, arrow glyphs, emoji. Findings with fixes.

NameRequiredDescriptionDefault
textYesArticle prose, plain text

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the behavioral disclosure burden. It lists what the scan looks for and promises 'Findings with fixes,' which implies a non-mutating analysis that returns suggestions. However, it leaves ambiguity about whether fixes are applied automatically or merely proposed, and it does not mention output structure or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two compact sentences with no filler. Detection categories are front-loaded, and the output promise is stated in one crisp fragment, 'Findings with fixes.'

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with a single well-documented parameter and no output schema, the description provides the essential purpose and output promise. It would benefit from clarifying whether fixes are returned as suggestions or applied to the input, but the invocation context is otherwise adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single 'text' parameter with 100% schema description coverage ('Article prose, plain text'). The description repeats the prose idea but adds no new parameter-level detail such as length limits, accepted formats, or normalization behavior, so it stays at the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Scan prose for machine-writing tells.' It enumerates concrete detection categories (stock phrases, em/en-dash density, arrow glyphs, emoji), making it readily distinguishable from siblings like readability_check or seo_onpage_check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by the description: use when you need to detect machine-writing tells in prose. However, it never explicitly states when to prefer this tool over qa_full_report, readability_check, or seo_onpage_check, nor does it give any when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qa_full_reportFull editorial QA reportA

Run every check (readability, AI-writing tells, on-page SEO) on one article and return a single report. Every finding comes with the fix attached. Accepts raw HTML (preferred) or plain text; the SEO check only runs on HTML input.

NameRequiredDescriptionDefault
inputYesThe article: raw HTML (preferred) or plain text
focusKeywordNoPrimary keyword the article targets

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses that the SEO check only runs on HTML input, which is a behavioral constraint. However, it doesn't mention whether the tool is read-only or if it has any side effects, rate limits, or other behavioral traits. The description is honest but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose and the key constraint about HTML. Every sentence earns its place, and there is no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (running multiple checks) and the absence of an output schema, the description does a good job of setting expectations: it returns a single report with fixes attached. It could mention the format of the report or whether it's a summary, but the description is adequate for an agent to decide to call it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description adds context that 'input' can be raw HTML or plain text and that HTML is preferred, which is useful. It doesn't add much about 'focusKeyword' beyond what the schema says, but the schema already covers it. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool runs every check (readability, AI-writing tells, on-page SEO) on one article and returns a single report. It distinguishes itself from the sibling tools by being the comprehensive 'full report' option, while the siblings are individual checks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: when you want all checks at once. It also provides a clear preference for HTML input and notes that the SEO check only runs on HTML. However, it doesn't explicitly state when to use the individual sibling tools instead, though the distinction is fairly obvious from the name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

readability_checkReadability checkA

Flesch-Kincaid grade, long-sentence and passive-voice findings for article prose. Plain text in; findings with fixes out.

NameRequiredDescriptionDefault
textYesArticle prose, plain text

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'Plain text in; findings with fixes out' clearly signals a side-effect-free analysis operation returning suggestions, and enumerates the three specific checks performed. It doesn't disclose edge cases (e.g., handling of non-prose input) but for a stateless analysis tool the core behavioral profile is well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with zero waste. The analysis types are front-loaded in the first sentence, and the input/output contract is packed into a pithy second sentence. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter analysis tool with 100% schema coverage and no output schema, the description is nearly complete: it states input format, the three checks, and the output shape (findings with fixes). The only minor ambiguity is what 'fixes' precisely means — whether suggestions or corrected text — but the core calling contract is clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — the single 'text' parameter is already documented as 'Article prose, plain text'. The description's 'Plain text in' is mostly redundant with the schema. Baseline 3 applies here since the schema fully handles parameter documentation and the description does not add meaningful syntax or format detail beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource ('article prose') and a clear operation with concrete analysis dimensions: Flesch-Kincaid grade, long-sentence and passive-voice findings. This distinctly separates it from its siblings (qa_full_report, ai_tell_scan, seo_onpage_check), which cover different QA, AI and SEO concerns respectively. An agent can immediately tell what this tool produces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose is clear enough that an agent can infer when to use it (readability analysis of prose), but the description gives no explicit when-to-use/when-not-to-use guidance and names no alternatives. Siblings cover different domains so confusion is unlikely, but no exclusions or selection criteria are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

seo_onpage_checkOn-page SEO checkB

Title, meta description, heading structure, image alt coverage, internal links, and keyword usage for one article's HTML. Built for well-formed CMS article output (WordPress, Ghost, static sites), not adversarial markup.

NameRequiredDescriptionDefault
htmlYesThe article page HTML
focusKeywordNoPrimary keyword the article targets

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It implies a read-only analysis but never states that it makes no modifications, requires no authentication, or has side effects. The input constraint is mentioned, but behavioral expectations (e.g., safety, external calls) are absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero fluff. The core list of checks is front-loaded, followed by constraints. Information density is high with no redundant wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema and no mention of what the tool returns (score, report, list?). Since the tool has only two simple parameters, the description covers input well, but the absence of any statement about the return value leaves agents guessing. An agent cannot reliably use the output without more info.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (both html and focusKeyword have descriptions). The description adds minor context by enumerating SEO aspects and the 'one article' scope, but it doesn't go beyond what's already obvious from the parameter names and schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly lists the specific checks (title, meta description, heading structure, etc.) performed on a single article's HTML. The verb 'check' is implied but the resource is explicit. It doesn't distinguish itself from siblings like qa_full_report, but the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Built for well-formed CMS article output (WordPress, Ghost, static sites), not adversarial markup' provides clear context on when to use (clean CMS HTML) and explicitly rules out one exclusion. However, it doesn't compare to siblings like readability_check or qa_full_report, so it earns a 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv1.0.0
    • First observedai_tell_scan
    • First observedqa_full_report
    • First observedreadability_check
    • First observedseo_onpage_check

TDQS

A4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct aspect of content QA: readability, AI tells, on-page SEO, and a combined full report. There's no overlapping purpose; the full report explicitly aggregates the other three, which is clear.

Naming Consistency4/5

All names use lowercase_with_underscores and are descriptive noun phrases. Minor inconsistency in word type ('report', 'check', 'scan') but no mixing of conventions, so it's mostly predictable.

Tool Count5/5

Four tools is well-scoped for a content QA server, covering the core checks and an aggregated report. Each tool earns its place without unnecessary bloat or overly thin coverage.

Completeness5/5

The server covers the primary QA dimensions for articles: readability, AI-writing tells, and on-page SEO, plus a comprehensive report. There are no obvious missing operations for the stated domain.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to perform instant SEO, performance, and security audits of any website through the Model Context Protocol. It provides comprehensive analysis without requiring API keys or configuration.
    11
    5
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Exposes 43 writing tools to any MCP-capable agent host, enabling clarifying questions, outline generation, drafting, revision, anti-AI audit, reader profiling, and export as one guided workflow. It learns the user's voice from their tracked edits and can distill a project directory into reports, READMEs, or blog posts based on the user's style.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to perform live Google SERP searches, run on-page and full-site SEO audits with prioritized fixes, and check brand visibility in AI answer engines via four MCP tools.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI hosts to check text for grammar, spelling, and style errors, measure readability, and generate tone-adjusted rewrites through structured tool calls. Every tool returns predictable, typed output for reliable routing and results.
    MIT