AI Slop Checker について
AI Slop Checkerは、文章やランディングページのコピーに見られる文体パターンを測るローカルMCPサーバーです。結果には根拠となるカウントが含まれ、著者の判定ではなく具体的な修正箇所の把握に役立ちます。
主な機能
- 016つの文体指標で文章を採点
- 02見出し、副見出し、CTAを評価
- 03フラグ、カウント、修正案を提示
- 04239ページのベンチマーク統計を提供
- 05ネットワークやLLM呼び出しなしで実行
活用シーン
- 01生成文の文体パターンを確認し、修正箇所を特定
- 02公開前にランディングページのヒーローコピーを評価
- 03コピーのスコアをページベンチマークと比較
MCP 対応
MCPサーバーは文章採点、ランディングページコピーの評価、ベンチマーク統計の3つのツールを提供します。MCPクライアントからネットワークやLLM呼び出しなしでローカル実行できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-ai-slop-checker
モデル自身の文章が AI らしく聞こえるときに、モデルに知らせる MCP サーバーです。
claude mcp add ai-slop-checker -- npx -y github:parweb/mcp-ai-slop-checker
3 つのツールはすべて、決定論的で、ローカルかつオフラインです。LLM の呼び出しも、API キーも、ネットワークリクエストも、テレメトリーもありません。同じ入力には常に同じ数値が返るため、テストでスコアを指定して検証できます。
check_ai_slop(text) -> 0-100, 6 dimensions, named tells, fixes
grade_landing_copy(headline, subhead, cta) -> 0-100, 5 dimensions, flags, rewrites
get_slop_stats() -> benchmark stats from 239 real landing pages
理由
あらゆる「AI 検出器」は、著者を推測する確率的分類器であり、どちらの側でも誤判定します。このツールは逆のことをして、その内容を率直に示します。つまり、文体の特徴を数えます。ダッシュの密度、delve/tapestry/furthermore の頻度、「not only… but also」という定型構文、不自然なほど均一な文の長さ、具体性の欠如、過度に対称的な箇条書きなどを数え、各サブスコアの根拠となった生のカウントを返します。
そのため、エージェントが実際に完結できるループで役立ちます。文章を書く → スコアを測る → どのカウントが高いか確認する → その箇所を修正する → 再スコアリングする、という流れです。分類器の「AI によって生成された可能性は 87%」という結果からは、エージェントが取れる行動は何もありません。"hype": 5 なら行動につながります。
スコアは文体の測定値であり、著者に関する主張ではありません。 stripe.com のスコアは 61 ですが、明らかに専門家が書いた文章です。スコアが低いというのは、ありきたりに読めるという意味であり、生成されたという意味では決してありません。
インストール
公式 MCP Registry に io.github.parweb/ai-slop-checker として登録されています。
GitHub から直接インストールします。npm にはまだ登録されていないため、github: 指定を使ってください。
claude mcp add ai-slop-checker -- npx -y github:parweb/mcp-ai-slop-checker
または、任意の MCP クライアント設定(claude_desktop_config.json、.mcp.json、Cursor など)で使用します。
{
"mcpServers": {
"ai-slop-checker": {
"command": "npx",
"args": ["-y", "github:parweb/mcp-ai-slop-checker"]
}
}
}
または、依存関係を含むセルフコンテインドな MCPB バンドル(インストール手順不要)を
v1.0.2 リリースからインストールします。
mcp-ai-slop-checker.mcpb、SHA-256 6b13eb6d19be99553ab4551c7b6f9fc159a0db854c20718c611bfa0cc30f43f8。
./scripts/build-mcpb.sh で自分で再ビルドして比較できます。
ソースからインストールする場合:
git clone https://github.com/parweb/mcp-ai-slop-checker
cd mcp-ai-slop-checker && npm install && npm test
# then point your client at: node /abs/path/mcp-ai-slop-checker/src/index.js
Node >= 18。実行時の依存関係は 1 つ(@modelcontextprotocol/sdk)と zod です。
ツール
check_ai_slop(text)
文章を 0〜100 でスコアリングします。100 は人間らしく読めることを示します。6 つの評価項目があります。LLM らしい単語の密度(30)、ダッシュの密度(20)、定型的な構成(15)、文のリズム(15)、具体性(10)、箇条書きの整いすぎ度(10)です。信頼できる評価には、約 200 文字以上が必要です。
実際の出力から、重要な部分を抜粋:
// input: a 74-word paragraph of "In today's fast-paced world… delve… Moreover… seamless…"
{
"score": 34,
"verdict": "This sounds AI-generated.",
"words": 74,
"dimensions": [
{ "key": "LLM-word density", "max": 30, "score": 0, "notes": { "phrases": 5, "words": 14 } },
{ "key": "Em-dash density", "max": 20, "score": 8, "notes": { "dashes": 1 } },
{ "key": "Formulaic structures", "max": 15, "score": 10, "notes": { "hits": 1, "triads": 1 } },
{ "key": "Sentence rhythm", "max": 15, "score": 6, "notes": { "sentences": 5, "cv": 0.2 } },
{ "key": "Specificity", "max": 10, "score": 0, "notes": { "number": false, "propers": 0 } },
{ "key": "List perfection", "max": 10, "score": 10, "notes": { "bullets": 0, "bold": 0 } }
],
"flags": ["llmwords", "emdash", "formulaic", "uniform", "nospec"],
"fixes": [
{ "title": "Cut the LLM words",
"detail": "Found 19 (\"delve/tapestry/furthermore/it's important to note\"…). Each one is a known model tell. Replace with the plain word you'd say out loud." },
{ "title": "Vary sentence length",
"detail": "Your sentences are suspiciously even (5 sentences, low variance). Humans write long, then short. Like this." }
]
}
test/engine.test.js にある手書きの段落は、同じテーマで、おおよそ同じ長さですが、**92、「人間らしく読めます。」**というスコアです。
grade_landing_copy(headline, subhead, cta)
ヒーローブロックを 0〜100 でスコアリングします。評価項目は、誇張表現の抑制(25)、具体性(25)、明瞭さ(25)、見出しの構成(13)、CTA(12)です。subhead と cta は省略できますが、CTA が空の場合、その評価項目のスコアは 0 になります。
3 つの除外ルールを知っておくと便利です。いずれも好みではなく、実測された誤検出をもとにしています。名前、バージョン、年、リストのインデックスの一部である数字は、数量を示す主張とは見なしません(Auth0、Framer 3.0、B2C、© 2026)。矢印やチェックマークは絵文字ではありません(Get started → はボタンの記号であるにもかかわらず、4 点減点されていました)。頭字語は大文字で叫んでいるわけではありません。SQL、MCP、CLI、API は、ALL-CAPS としてカウントされなくなりました。parweb/landing-copy-grader のブラウザー版採点ツールおよび公開中の採点ツールと、バイト単位で同一のルールです。コーパス内の全 239 ページで一致することを確認済みです。
実際の出力:
// headline: "Revolutionize your workflow with our seamless, cutting-edge platform"
// subhead: "Unlock powerful solutions that transform your business"
// cta: "Learn more"
{
"score": 32,
"verdict": "This reads AI-generated.",
"dimensions": [
{ "key": "Anti-hype", "max": 25, "score": 0, "notes": { "hype": 5, "exclamations": 0, "emoji": 0, "allcaps": 0 } },
{ "key": "Specificity", "max": 25, "score": 8, "notes": { "number": false } },
{ "key": "Clarity", "max": 25, "score": 7, "notes": { "filler": 3 } },
{ "key": "Headline shape", "max": 13, "score": 13, "notes": { "words": 8 } },
{ "key": "CTA", "max": 12, "score": 4, "notes": { "weak": true, "empty": false } }
],
"flags": ["hype", "filler", "weakcta", "nonum"],
"fixes": [
{ "title": "Cut the hype words", "detail": "Found 5 (\"revolutionize/unlock/seamless/leverage\"…). Replace each with a plain, concrete verb." },
{ "title": "Add one number", "detail": "No concrete figure anywhere. …82% of the 239 pages in our dataset fail this one." },
{ "title": "Rewrite the CTA", "detail": "\"Learn more\" is generic. Use an action + outcome…" }
]
}
4 項目すべてを修正すると、同じ提案のスコアは 100 になります。
headline: "Cut invoice time from 3 days to 20 minutes"
subhead: "Turn your spreadsheet into a client-ready invoice, no template hunting."
cta: "Start your first invoice"
-> { "score": 100, "verdict": "Reads human & sharp.", "flags": [] }
両方の数値は test/engine.test.js で検証しているため、知らないうちに変わることはありません。
get_slop_stats()
ベースラインがなければ、「あなたのコピーのスコアは74です」と言われても意味がありません。このツールは参照分布を返すため、モデルは 「実在するランディングページ239件の中央値を下回っています」 と伝えられます。
以下は、static-fetch-regex-v1 でスコアを付けた登録済みコーパスの数値です。2026-07-25に3つのルールを厳格化しました。名前/バージョン/年の中にある数字は主張ではない、矢印は絵文字ではない、頭字語は大文字で叫んでいるわけではない、というルールです。grade_landing_copy はこれらを適用するため、今日あらためてスコアを付けたページは、この表の値と異なる場合があります。コーパスでは意図的に元のスコアを保持しています。これはDOIのあるアーカイブ済みのオブジェクトであり、最新の状況を反映するものではありません。
| ページ数 | 239(303件を試行、64件を除外) |
| スコア | 最小 41 · 中央値 79 · 平均 80.1 · 19件が満点 · 31件が70未満 |
| 抽出 | 2026-07-24、raw HTML、JS実行なし、LLMなし |
各特徴が検出される頻度:
| フラグ | ページ数 | % | 意味 |
|---|---|---|---|
nonum | 195 | 82% | ヒーローに数字が一つもない |
filler | 82 | 34% | フィラー語が1つ以上ある |
weakcta | 35 | 15% | CTAがありきたりな動詞句 |
caps | 33 | 14% | 見出し/サブ見出しに全大文字の単語がある |
hype | 16 | 7% | 誇張表現が1つ以上ある |
shorthl | 13 | 5% | 見出しが3語未満 |
longhl | 9 | 4% | 見出しが12語を超える |
excl | 7 | 3% | 感嘆符がある |
emoji | 7 | 3% | ヒーローに絵文字がある |
最もよくある特徴は、emダッシュでも「delve」でもなく、数字がないことです。 ランディングページの5件中4件は、数量を一切添えずに主張しています。
全ページの抽出済みヒーローテキスト、方法論、除外リストを含む完全版CSV:
landing-copy-grader/data/landing-pages-scores.csv。
このリポジトリで node scripts/verify-dataset.js を実行すると、オフラインで239件すべてを再採点し、不一致があれば失敗します —
上の表の内容は、test/engine.test.js によってその出力と一致するよう固定されています。
訂正、2026-07-25。 これらの数値はv1.0.0で誤っており、
mainで修正されています。集計元のCSVには各行の最初の3つのフラグしか保存されていなかったため、特徴が4つ以上あるページでは1つが欠落していました:nonumは 195 / 82% ではなく 194 / 81% と記載されており、caps、shorthl、longhl、emojiも過少集計されていました。 スコア、中央値、平均、満点(100点)のリストには影響ありませんでした。どこかで当社の数値として194 / 81%を見かけた場合、正しい数値は195 / 82%です。
テスト
npm test
18件のテストを実施します。公開済みフィクスチャに対するスコアリングエンジンのテストに加え、実際のサーバーをstdio経由で起動し、実際のMCPクライアントから操作するテストが6件あります(listTools、callTool の3回の往復、オプション引数の処理、プロセスを終了させてはならない検証エラー)。
# tests 18
# pass 18
# fail 0
関連項目
同じエンジンを別の形で利用できます:
- これはAIっぽく聞こえますか? — ブラウザーで使える
check_ai_slop - ランディングページのリーダーボード — スコア付きの全239ページとヒーローテキスト
- parweb/landing-copy-grader — 単一ファイルのブラウザー用グレーダーとデータセット
プロジェクトの状況
初回公開日:2026-07-25。 小規模で公開から日が浅いプロジェクトです。判断材料になるよう、率直に記載しています。
- 安定しているもの: 3つのツールのシグネチャ、返されるJSONの形式、2つのスコアリングエンジンです。出力はテストスイートで検証されているため、スコアが変わる変更はCIで失敗し、予期せぬ変更を防ぎます。
- 変更が見込まれるもの: 単語リスト。英語のみです。
- 既知の問題:
v1.0.0バンドルには誤ったベンチマーク数値が含まれ、v1.0.0とv1.0.1のどちらにも修正前のスコアリングルールが含まれています。v1.0.2、またはmainを追跡するnpx github:インストールを使用してください。
IssueやPRを歓迎します。特に単語リストに関するものを歓迎します。「この用語は誤りです。反例はこちらです」という報告は、決定論的なスコアラーに対する再現可能なバグ報告であり、この方法で構築した目的の大半もそこにあります。
誠実さに関する注記
- これは文体の特徴を数えるものです。著者を特定するものではなく、確実に特定できる方法はありません。
- 単語リストには独自の判断が含まれており、英語のみを対象としています。これらは
src/slop.jsとsrc/copy.jsの冒頭にある単純な配列です。読んで、異論があれば、フォークしてください。 - ここでは確率的な要素がないため、スコアを時系列で比較できます。それがすべてです。
- 自律型エージェント組織が開発・保守しています。コード、データセット、数値はすべて実在し、再現可能です。
npm testを実行して確認してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。