contentgate について
contentgateは、コンテンツサイトの公開前チェックを行うMCPサーバーです。キーワード、翻訳構造、リンク、主張、サイトマップの日付、ページ監査、文の重複を調べます。ファイルやネットワークにはアクセスしません。
主な機能
- 01キーワードの出現確認
- 02翻訳文書の構造比較
- 03内部リンクと主張の確認
- 04サイトマップ更新日の検証
- 05ページ本文、構造化データ、素材の監査
- 06ページ間の文の重複度測定
活用シーン
- 01公開前のページ内容チェック
- 02原文に対する翻訳ページの確認
- 03ページのSEOと構造化データの監査
- 04ページ間の共通表現の比較
MCP 対応
MCPクライアントにコンテンツ検証ツールを提供します。各ツールはコンテンツを受け取り、ファイルシステムやネットワークにアクセスせず判定結果を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
8掲載時のツール一覧 · 6 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| html | string | はい | ページのレンダリング済み HTML。 |
| scope | array | いいえ | 検査する要素を [tag, class] の形式で指定します(例:["article","post"])。省略するとドキュメント全体を読み取ります。 |
| keywords | object | はい | キーワードと月間検索ボリュームのマップ。実際のツールデータに基づきます。 |
| exclude_classes | array | いいえ | サブツリーを無視するクラス。サイト全体の CTA ブロックを除外するために使用します。そうしないと、すべてのページでチェックを通過してしまいます。 |
| primary_min_hits | integer | いいえ |
詳細
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 | この 2 つのページには、まったく同じ文がいくつありますか? |
すべてのツールは純粋関数です。コンテンツを入力すると、判定結果を返します。ファイルシステムにもネットワークにもアクセスせず、何も書き込みません。
ガードは通常の関数としてインポートすることもでき、インポートしても何も開始されません。import { checkClaims, auditPage } from "mcp-server-contentgate"。
ページ監査
audit_page はレンダリング済みページに対して 6 つのチェックを実行し、それぞれの判定結果を返します。checks を渡すと、実行するチェックを減らせます。
visible_text:<template>とhidden属性を持つ要素を除いた、JavaScript をオフにした状態で読める文字数です。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:ホームページのみが対象です。Google 検索が挙げる形式(BMP、GIF、ICO、PNG、JPEG、PPM、TIFF)のアイコン<link>が head にあることを確認します。形式は URL パス、またはdata:URI の場合は MIME タイプから判定されます。stock_phrases:編集方針に基づく表現リストであり、機械生成された文章を検出するものではありません。デフォルトのリストは、ある編集者の繁体字中国語の好みに基づくもので、置き換えることを想定しています。「そのため、」や「しかし、」などの接続表現は、一般的な文にもフラグを立てます。独自のリストを渡してください。他の言語では必ず独自のリストを渡してください。
各ルールの出典は、リポジトリの README に記載されています。
compare_pages は両方のページを文に分割し(。!?および空白の前にある . ! ? で分割)、10 文字未満の文を無視して、両方向の文字数における共通部分の割合を測定します。
唯一の設計ルール
失敗するところを一度も確認されていないガードは、ただの飾りです。
サーバーは起動時に否定テストを実行し、テストに失敗すると起動を拒否します。 既知の不正な入力を今も検出できることを証明できないチェッカーに、 コンテンツについて質問に答えさせるべきではありません。
同じテストファイルを、同一リポジトリ内の Python 実装でも実行します。 どちらの実装も、すべてのケースで同一の判定を返す必要があります。
呼び出す前に知っておきたい3つの動作
キーワードの照合では、空白は正規化されません。 web hosting と
webhosting は、検索ボリュームが異なる別の文字列です。一方を渡しても、
もう一方で条件を満たすことはありません。
exclude_classes を渡してください。
すべてのページに表示される行動喚起ブロックがあると、どこでも
check_keywords と check_internal_links の条件を満たしてしまい、
どちらのツールも飾りになってしまいます。
対象言語でソース言語と同じ文字体系を使う場合は、 forbid_source_script: false
を設定してください。 たとえば、繁体字中国語のソースから簡体字中国語に翻訳する場合です。
そうしないと、そのロケールのすべての文書が未翻訳と判定されます。
Python CLI
同じチェックをデプロイゲートとして実行できます。同一リポジトリ内の
contentgate パッケージが、ディスク上のサイトを読み込みます。
ライセンス
MIT。
メンテナー
Ads & Code が開発・保守しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。