mcpField
A
AI Slop Checker

AI Slop Checker

本地服务
github.com商业与营销014 周前更新

关于 AI Slop Checker

AI Slop Checker 是用于衡量文章和着陆页文案风格特征的本地 MCP 服务。评分结果包含对应的计数,帮助 Agent 定位具体修改项,而非推断作者身份。

主要功能

  1. 01按六个风格维度为文章评分
  2. 02评估着陆页标题、副标题和 CTA
  3. 03返回标记、计数和修改建议
  4. 04提供 239 个页面的基准统计
  5. 05在本地运行,无网络或 LLM 调用

适用场景

  1. 01检查生成文案并找出需修改的风格特征
  2. 02发布前评估着陆页首屏文案
  3. 03将文案评分与页面基准进行比较

MCP 相关

MCP 服务提供文章评分、着陆页文案评估和基准统计三种工具。MCP 客户端可在本地调用,且不会发起网络请求或调用 LLM。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbmcp-ai-slop-checker.mcpb1.0.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcp-ai-slop-checker

一个 MCP 服务,用来告诉你的模型,它自己的写作听起来有多像 AI。

MCP Registry test license

claude mcp add ai-slop-checker -- npx -y github:parweb/mcp-ai-slop-checker

三个工具,全部确定性、本地运行且离线:不调用大模型、不需要 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”句式框架、可疑的均匀句长、缺少具体内容、过于工整的平行项目列表——并返回各项子分数对应的原始统计数据。

因此,它适用于 Agent 能真正完成闭环的工作流:撰写 → 评分 → 查看哪项计数偏高 → 针对性修改 → 重新评分。分类器给出的“有 87% 的可能是 AI 写的”无法让 Agent 采取行动,而 "hype": 5 可以。

分数衡量的是风格,而不是作者身份。stripe.com 的得分是 61,但显然是专业人士撰写的。低分意味着读起来很泛泛,绝不意味着由 AI 生成。

安装

已列入官方 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"]
    }
  }
}

或者从 v1.0.2 发布页 安装独立的 MCPB 程序包(包含依赖项,无需安装步骤)—— 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。一个运行时依赖项(@modelcontextprotocol/sdk),以及 zod。

工具

check_ai_slop(text)

为文本评分,范围为 0–100,100 表示读起来像人写的。包含六个维度:大模型词汇密度(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。

有三项排除规则值得了解,因为它们都是针对实际误报情况作出的调整,而非主观偏好:名称、版本、年份或列表索引中的数字不算量化主张(Auth0、Framer 3.0、B2C、© 2026);箭头或对勾不算表情符号(Get started → 曾因按钮字形被扣 4 分);首字母缩略词不算大喊大叫——SQL、MCP、CLI、API 不再被视为全大写文本。这些规则与 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…" }
  ]
}

修好全部四项后,同一项宣传内容得分为 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 收紧了三条规则——名称/版本/年份中的数字不算声明,箭头不算表情符号,首字母缩略词不算大喊大叫——grade_landing_copy 会应用这些规则,因此今天重新评分的页面可能与此表中的对应数据不同。语料库有意保留原始评分:它是带 DOI 的存档对象,而不是实时视图。

页面239(尝试抓取 303 个,排除 64 个)
得分最低 41 · 中位数 79 · 平均值 80.1 · 19 个满分 · 31 个低于 70
提取方式2026-07-24,原始 HTML,不执行 JS,不使用大模型

各项特征出现的频率:

标记页面数%含义
nonum19582%主视觉区没有任何数字
filler8234%至少 1 个填充词
weakcta3515%CTA 是常见的动词短语
caps3314%标题/副标题中有全大写单词
hype167%至少 1 个夸大宣传词
shorthl135%标题少于 3 个词
longhl94%标题超过 12 个词
excl73%感叹号
emoji73%主视觉区有表情符号

最常见的特征不是长破折号,也不是“delve”——而是缺少数字。 五个落地页中有四个提出的声明完全没有附带数量。

包含每个页面提取出的主视觉文本、方法说明和排除列表的完整 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 每行只存储了前三个标记,因此每个包含四个或更多特征的页面都少计了一项: nonum 显示为 194 / 81%,而非 195 / 82%;caps、shorthl、longhl 和 emoji 的计数也偏低。 得分、中位数、平均值和满分 100 的页面列表均未受影响。如果你在任何地方看到我们给出的 194 / 81%,正确数据是 195 / 82%。

测试

npm test

共 18 项测试:针对已发布样例验证评分引擎,另有 6 项测试通过标准输入/输出启动真实服务,并使用实际 MCP 客户端对其进行调用(listTools、三次 callTool 往返、可选参数处理,以及一个不得导致进程退出的校验错误)。

# tests 18
# pass 18
# fail 0

相关项目

相同引擎,不同使用界面:

项目状态

首次发布于 2026-07-25。 项目规模小、历史短——在此如实说明,供你自行判断。

  • 稳定: 三个工具的签名、返回的 JSON 结构,以及两个评分引擎。测试套件会断言它们的输出,因此任何导致分数变化的修改都会使 CI 失败,而不会让你措手不及。
  • 有主观判断且预计会变化: 词表。仅支持英语。
  • 已知缺陷: v1.0.0 包含错误的基准数据,v1.0.0 和 v1.0.1 均包含更正前的评分规则。请使用 v1.0.2,或使用会跟踪 main 的 npx github: 安装方式。

欢迎提交问题和 PR,尤其是针对词表的反馈——“这个词不对,这是一个反例”是针对确定性评分器的可复现错误报告,这正是采用这种方式构建它的主要原因。

诚实说明

  • 这只能识别文风特征,无法检测作者身份,而且没有任何方法能可靠地做到这一点。
  • 词表带有主观倾向,且仅包含英文。它们是 src/slop.js 和 src/copy.js 顶部的普通数组——读一读,提出异议,或自行分叉。
  • 只有因为这里没有任何随机因素,分数才可以跨时间比较。这正是关键所在。
  • 由一个自主 Agent 组织构建并维护。代码、数据集和这些数字都真实且可复现;运行 npm test 并自行验证。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。