mcpField
C
contentgate

contentgate

本地服务
adsandcode.com商业与营销01 周前更新

关于 contentgate

contentgate 是面向内容网站发布前检查的 MCP 服务。它检查关键词、翻译结构、链接、声明、站点地图日期、页面内容和句子重合度;检查过程不访问文件或网络。

主要功能

  1. 01检查关键词是否出现
  2. 02比较翻译文档结构
  3. 03检查站内链接和宣传声明
  4. 04核验站点地图修改日期
  5. 05审计页面文本、结构化数据和资源
  6. 06衡量页面间句子重合度

适用场景

  1. 01发布前检查页面内容
  2. 02依据源文档审查译文
  3. 03审计页面 SEO 与结构化数据
  4. 04比较页面中的相同措辞

MCP 相关

向 MCP 客户端提供内容验证工具。工具接收内容并返回判断结果,不访问文件系统或网络。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"adsandcode-contentgate": {
"command": "npx",
"args": [
"-y",
"mcp-server-contentgate"
]
}
}
}
启动命令npx -y mcp-server-contentgate

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-server-contentgate0.2.0

工具

8

收录的工具列表 · 更新于 6 天前

参数类型必填说明
htmlstring是页面渲染后的 HTML。
scopearray否要检查的元素,格式为 [tag, class],例如 ["article","post"]。省略则读取整个文档。
keywordsobject是关键词到月搜索量的映射,数据取自真实工具。
exclude_classesarray否要忽略其子树的类。用于排除全站通用的行动号召区块,否则这些区块会让每个页面都通过检查。
primary_min_hitsinteger否

详细介绍

mcp-server-contentgate

用于部署前内容检查的 MCP 服务。在页面编写过程中发现问题,而不是等页面上线后才发现。

文档和背景介绍:adsandcode.com/en/open-source/contentgate

{
  "mcpServers": {
    "contentgate": { "command": "npx", "args": ["-y", "mcp-server-contentgate"] }
  }
}

工具

工具检查内容
check_keywords此页面要争取排名的词语是否确实出现在页面中?
check_translation此译文的结构是否仍与源文档相同?
check_internal_links除模板内容外,此页面是否链接到本站中任何可带来收入的内容?只有主机名位于 site_hosts 中的绝对链接才会计入。
check_claims文案是否将结果陈述为事实,以致不符合受监管广告的要求?只有当免责声明中的否定内容直接适用于该主张时,才会计入。
sitemap_lastmod此页面是否确实发生了变化,还是构建过程即将对此作出不实声明?
content_hash移除易变内容块后生成的页面稳定哈希值。
audit_page此页面是否无需 JavaScript 即可阅读、是否标记了可解析的 JSON-LD、是否如实处理了外链,以及图片和网站图标是否齐全?
compare_pages这两个页面有多少句子逐字相同?

所有工具都是纯函数:输入内容,输出判定结果。不会访问文件系统或网络,也不会写入任何内容。

这些检查器也可以作为普通函数导入,且导入时不会启动任何程序:import { checkClaims, auditPage } from "mcp-server-contentgate"。

页面审计

audit_page 会对一个已渲染页面执行六项检查,并为每项检查返回判定结果;传入 checks 可减少检查项。

  • visible_text:关闭 JavaScript 后可读取的字符数,不包括 <template> 和带有 hidden 属性的元素。Google 会渲染 JavaScript;许多 AI 爬虫只读取服务器发送的 HTML,因此脚本注入的文章对它们不可见。1200 是本项目的默认值,并非搜索引擎设定的数字。
  • structured_data:所有 JSON-LD 块均可解析,且包含所需的 @type 值(默认为 Article、BreadcrumbList、Organization),并且存在 dateModified。所需类型可由其 schema.org 子类型满足(BlogPosting 和 NewsArticle 都属于 Article;Corporation、NewsMediaOrganization 或 LocalBusiness 都属于 Organization)。ProfilePage 不必是 Article。
  • outbound_links:没有 rel 值 nofollow、sponsored 或 ugc 的外部链接。Google 不要求普通编辑性链接设置任何 rel(仅要求付费或联盟链接使用 sponsored,用户生成内容链接使用 ugc),因此不要为了通过检查而给引用添加 nofollow:请将引用的网站列入 cite_ok。主机名会按照浏览器解析链接的方式解析,因此反斜杠和额外的斜杠无法掩盖链接的实际去向;任何人都可以注册的注册局(co.uk、github.io、pages.dev)不接受列入 cite_ok。
  • images:没有 alt 或 width 的 <img>。接受 alt=""。
  • favicon:仅检查主页;要求在 head 中有图标 <link>,格式须为 Google Search 列出的格式(BMP、GIF、ICO、PNG、JPEG、PPM、TIFF),格式从 URL 路径中读取;若为 data: URI,则从其 MIME 类型中读取。
  • stock_phrases:这是编辑风格词表,并非机器生成文本检测器。默认列表体现了一位编辑对繁体中文的偏好,旨在被替换:因此,和然而,等连接词会导致普通句子被标记。请传入自己的词表;使用其他语言时务必如此。

compare_pages 会将两个页面拆分为句子(按 。!? 拆分;也会在空白字符前的 . ! ? 处拆分),忽略少于 10 个字符的句子,并分别按字符数衡量双方内容的重合度。

每条规则的来源均见仓库 README。

唯一的设计规则

从未证明会失败的防护措施,只是摆设。

服务会在启动时运行负向测试,如果测试失败,就会拒绝启动。 无法证明自己仍能捕获已知错误输入的检查器,不该回答有关你内容的问题。

同一测试文件也会由同一仓库中的 Python 实现运行,且两者必须对每个用例给出完全相同的判定。

调用前值得了解的三种行为

关键词匹配绝不会规范化空白。 web hosting 和 webhosting 是不同的字符串,搜索量也不同。如果你传入其中一个, 另一个不会满足匹配条件。

传入 exclude_classes。 否则,每个页面都会出现的行动号召区块会满足 check_keywords 和 check_internal_links,这两个工具都会变成摆设。

当目标语言与源语言使用相同文字体系时,设置 forbid_source_script: false,例如从繁体中文翻译为简体中文。否则,该地区设置下的每份文档都会被报告为未翻译。

Python CLI

同一仓库中的 contentgate 包可以从磁盘读取你的网站,运行相同的检查,作为部署门禁。

许可证

MIT。

维护者

由 Ads & Code 构建并维护。

评论

支持 Markdown

第一次接触 MCP?

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

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