SEO、キーワード密度、翻訳の整合性、リンクの検証、および規制遵守のチェックを含む、デプロイ前のコンテンツ監査を実行します。
別名 adsandcode/contentgate, mcp-server-contentgate
- スター
- 0
- ツール
- 8
- ダウンロード数(30日間)
- —
- 最新バージョン
- 0.2.0
- 最終コミット
- 2026年10月23日
- ライセンス
- MIT
contentgate MCPとは
contentgateはMCPサーバーです。 SEO、キーワード密度、翻訳の整合性、リンクの検証、および規制遵守のチェックを含む、デプロイ前のコンテンツ監査を実行します。. 8個のツールを提供しており、check_keywords, check_translation, check_internal_linksなどがあります。
プロジェクトのREADMEから生成された概要
contentgate MCP server について
Contentgateは、デプロイ前にSEO、翻訳の整合性、および規制遵守の観点からウェブコンテンツを監査することを、開発者やエディターに可能にします。このMCP serverは、ページが公開された後ではなく、作成段階でエラーを検出するための専門的なツールセットを提供します。コンテンツを入力すると判定結果が出力される純粋なユーティリティとして機能し、実行中にファイルシステムやネットワークへのアクセスを必要としません。ユーザーはnpx経由でサーバーを実行し、これらのチェックをローカルの開発ワークフローやAIクライアントのセットアップに統合できます。
このサーバーには、JSON-LD構造化データ、画像のalt属性、faviconの有無を検証するaudit_pageなどの特定のツールが含まれています。開発者は、ターゲット用語が含まれているかを確認するcheck_keywords、ソース言語とターゲット言語の間の構造的な一致を維持するcheck_translation、および規制に抵触する可能性のある広告表現を特定するcheck_claimsを利用できます。また、2つのドキュメント間の文章の重複を測定するcompare_pagesや、ページが実際に変更されたかを確認するsitemap_lastmodも提供しています。これらのツールにより、JavaScriptなしでもコンテンツが読み取り可能であり、特定の編集基準に準拠していることを保証できます。
できること
- 1SEOと構造化データの検証ページがJavaScriptなしで読み取り可能であるか、および検索エンジン用の正しいJSON-LDマークアップが含まれているかを確認します。
- 2規制対象となる広告表現の検証コピーが、規制対象の広告において拒否される可能性があるような形で、結果を事実として述べていないかを特定します。
- 3翻訳の整合性の確保翻訳されたドキュメントが、元のソースドキュメントと構造的に同一であることを確認します。
- 4内部リンクの収益性の監査ページが単なる定型文ではなく、サイト内の収益を生むエリアにリンクしているかを確認します。
プロジェクトの README から作成されています。すべてのユースケースは、その引用と照らし合わせて確認されています。
contentgate MCPのインストール方法
フォーマット検証日 2026年11月10日Cursor に追加Gooseに追加Claude Codeにcontentgate MCPをインストール
$ claude mcp add contentgate -- npx -y mcp-server-contentgateCursorにcontentgate MCPをインストール
~/.cursor/mcp.json
{
"mcpServers": {
"contentgate": {
"command": "npx",
"args": [
"-y",
"mcp-server-contentgate"
]
}
}
}VS Codeにcontentgate MCPをインストール
.vscode/mcp.json
{
"servers": {
"contentgate": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-server-contentgate"
]
}
}
}VS Code CLIにcontentgate MCPをインストール
$ code --add-mcp '{"name":"contentgate","type":"stdio","command":"npx","args":["-y","mcp-server-contentgate"]}'Claude Desktopにcontentgate MCPをインストール
claude_desktop_config.json
{
"mcpServers": {
"contentgate": {
"command": "npx",
"args": [
"-y",
"mcp-server-contentgate"
]
}
}
}Codexにcontentgate MCPをインストール
$ codex mcp add contentgate -- npx -y mcp-server-contentgateCodex config.tomlにcontentgate MCPをインストール
~/.codex/config.toml
[mcp_servers.contentgate] command = "npx" args = ["-y", "mcp-server-contentgate"]
Gemini CLIにcontentgate MCPをインストール
$ gemini mcp add -s user contentgate npx -- -y mcp-server-contentgateGemini settings.jsonにcontentgate MCPをインストール
~/.gemini/settings.json
{
"mcpServers": {
"contentgate": {
"command": "npx",
"args": [
"-y",
"mcp-server-contentgate"
]
}
}
}contentgate MCPツール 8
READMEから検出check_keywordscheck_translationcheck_internal_linkscheck_claimssitemap_lastmodcontent_hashaudit_pagecompare_pages
| check_keywords | — | |
| check_translation | — | |
| check_internal_links | — | |
| check_claims | — | |
| sitemap_lastmod | — | |
| content_hash | — | |
| audit_page | — | |
| compare_pages | — |
自動チェック
実行日 2026年11月14日完全なレポート →自動チェックに合格しました。これはセキュリティ監査ではありません。コードを読み、サーバーに必要最小限のアクセス権を与えてください。 チェックの仕組み
- ソースリポジトリがリンクされており、アクセス可能adsandcode/contentgate is public and reachablegithub.com/adsandcode/contentgate ↗合格
- パッケージがこのリポジトリをソースとして指定mcp-server-contentgate names adsandcode/contentgate as sourcenpmjs.com/package/mcp-server-contentgate ↗合格
- ビルドの来歴 (Sigstore 証明)No build attestation published for this release未チェック
- オープンソースライセンス (OSI)MITspdx.org/licenses/MIT.html ↗合格
- 過去1年以内にコミットまたはリリースありLast commit or release 2026-10-23github.com/adsandcode/contentgate ↗合格
- OpenSSF Scorecard未チェック
- パッケージ名が有名なパッケージに酷似していないNo popular package one edit away from mcp-server-contentgate合格
- パッケージおよびその依存関係に重大な勧告なし99 resolved dependencies checked; no critical advisoryosv.dev ↗合格
- モデルへの隠れた指示がない8 tool descriptions and the README read; no override phrases, credential paths or hidden characters合格
- 破壊的なツールがラベル付けされているNo tool named like delete, drop or exec合格
- リモートエンドポイントが MCP ハンドシェイクに応答未チェック
README
GitHubで見るmcp-server-contentgate
MCP server for pre-deploy content checks. Catch the problem while the page is being written, not after it is live.
Documentation and background: adsandcode.com/en/open-source/contentgate
{
"mcpServers": {
"contentgate": { "command": "npx", "args": ["-y", "mcp-server-contentgate"] }
}
}
Tools
| Tool | What it answers |
|---|---|
check_keywords |
Do the terms this page is meant to rank for actually appear in it? |
check_translation |
Is this translation still structurally the same document as its source? |
check_internal_links |
Does this page link to anything on its own site that makes money, outside the boilerplate? Absolute links count only for hosts in site_hosts. |
check_claims |
Does this copy state outcomes as facts in a way regulated advertising rejects? A disclaimer counts only when its negation governs the claim itself. |
sitemap_lastmod |
Has this page genuinely changed, or is the build about to lie about it? |
content_hash |
Stable hash of a page with volatile blocks removed. |
audit_page |
Is this page readable without JavaScript, marked up with JSON-LD that parses, honest about its outbound links, and complete in its images and favicon? |
compare_pages |
How many sentences do these two pages share word for word? |
Every tool is pure: content in, verdict out. No filesystem access, no network access, nothing written.
The guards are also importable as plain functions, and importing starts
nothing: import { checkClaims, auditPage } from "mcp-server-contentgate".
Page audit
audit_page runs six checks on one rendered page and returns a verdict for
each; pass checks to run fewer.
visible_text: characters readable with JavaScript off, leaving out<template>and elements with thehiddenattribute. Google renders JavaScript; many AI crawlers read only the HTML the server sent, so an article injected by a script is invisible to them. 1200 is a house default, not a search-engine number.structured_data: every JSON-LD block parses, the@typevalues you require are present (defaultArticle,BreadcrumbList,Organization), and there is adateModified. A required type is satisfied by its schema.org subtypes (BlogPostingandNewsArticleare Articles;Corporation,NewsMediaOrganizationor aLocalBusinessis an Organization). AProfilePageis not required to be anArticle.outbound_links: external links withoutrelnofollow,sponsoredorugc. Google does not require anyrelon ordinary editorial links (onlysponsoredon paid or affiliate links andugcon user-generated ones), so do not addnofollowto a citation to make this pass: list the sites you cite incite_ok. Hosts are resolved the way a browser resolves them, so backslashes and extra slashes do not disguise where a link goes; registries anyone can register under (co.uk,github.io,pages.dev) are refused incite_ok.images:<img>withoutaltorwidth.alt=""is accepted.favicon: home page only; an icon<link>in the head, in a format Google Search lists (BMP, GIF, ICO, PNG, JPEG, PPM, TIFF), read from the URL path or, for adata:URI, its MIME type.stock_phrases: an editorial style list, not a detector of machine-written text. The default list is one editor's Traditional Chinese taste and is meant to be replaced: connectives such as 因此, and 然而, flag ordinary sentences. Pass your own, and always for any other language.
compare_pages splits both pages into sentences (on 。!? and on . ! ? before
whitespace), ignores sentences under ten characters, and measures the shared
share in characters in both directions.
Sources for each rule are in the repository README.
The one design rule
A guard that has never been shown to fail is decoration.
The server runs its negative tests at startup and refuses to start if they fail. A checker that cannot prove it still catches a known-bad input should not be answering questions about your content.
The same test file is run by the Python implementation in the same repository, and both are required to produce identical verdicts on every case.
Three behaviours worth knowing before you call it
Keyword matching never normalises whitespace. web hosting and
webhosting are different strings with different search volumes. If you pass
one, the other does not satisfy it.
Pass exclude_classes. A call-to-action block that appears on every page
will otherwise satisfy check_keywords and check_internal_links everywhere,
and both tools become decoration.
Set forbid_source_script: false when the target language shares the source
script, such as Simplified Chinese from a Traditional Chinese source. Otherwise
every document in that locale is reported as untranslated.
Python CLI
The same checks run as a deploy gate, reading your site from disk, in the
contentgate package in the same repository.
Licence
MIT.
Maintainer
Built and maintained by Ads & Code.
contentgate MCPのよくある質問
contentgate MCPをClaude Codeに追加するには
ターミナルでclaude mcp add contentgate -- npx -y mcp-server-contentgateを実行します。すべてのプロジェクトで利用するには--scope userを追加します。
contentgate MCPをCursorに追加するには
~/.cursor/mcp.jsonを開き、上記のインストールセクションに示すCursor設定を使ってmcpServersの下にサーバーを追加します。
contentgate MCPが提供するツールは
8個のツールを提供しており、check_keywords, check_translation, check_internal_links, check_claims, sitemap_lastmodなどがあります。
audit_pageツールはどのようなチェックを行いますか?
可視テキストの読みやすさ、JSON-LD構造化データのパース、外部リンクの属性、画像のalt/widthタグ、faviconの有無、および定型句の検出という6つのチェックを実行します。
このMCP serverはネットワークやファイルシステムへのアクセスを必要としますか?
いいえ、すべてのツールは純粋な関数として動作し、提供されたコンテンツのみを対象とします。実行中にファイルシステムやネットワークにアクセスすることはありません。
キーワードマッチングにおける空白の扱いはどうなりますか?
キーワードマッチングでは空白の正規化を行わないため、'web hosting' と 'webhosting' は異なる文字列として扱われます。
サーバーが正常に動作していることをどのように保証していますか?
サーバーは起動時にネガティブテストを実行し、これらのテストが失敗した場合は起動を拒否します。これにより、既知の不正な入力に対して確実に検知できる状態を維持します。