Führt Content-Audits vor dem Deployment durch, einschließlich SEO, Keyword-Dichte, Integrität der Übersetzung, Link-Validierung und Prüfung regulatorischer Aussagen.
Auch bekannt als adsandcode/contentgate, mcp-server-contentgate
- Stars
- 0
- Tools
- 8
- Downloads, 30 Tage
- —
- Neueste Version
- 0.2.0
- Letzter Commit
- 23. Okt. 2026
- Lizenz
- MIT
Was ist contentgate MCP?
contentgate ist ein MCP server. Führt Content-Audits vor dem Deployment durch, einschließlich SEO, Keyword-Dichte, Integrität der Übersetzung, Link-Validierung und Prüfung regulatorischer Aussagen. Er stellt 8 Tools bereit, etwa check_keywords, check_translation, check_internal_links.
Zusammenfassung generiert aus dem README des Projekts
Über contentgate MCP server
Contentgate ermöglicht es Entwicklern und Editoren, Web-Inhalte vor dem Deployment auf SEO, Übersetzungsintegrität und regulatorische Compliance zu prüfen. Dieser MCP server bietet eine Suite spezialisierter Tools, um Fehler abzufangen, während eine Seite geschrieben wird, anstatt erst, wenn sie live geht. Er fungiert als reine Utility, bei der Content hineingegeben wird und ein Ergebnis herauskommt, ohne dass während der Ausführung Zugriff auf das Dateisystem oder das Netzwerk benötigt wird. Nutzer können den Server via npx ausführen, um diese Prüfungen in ihre lokalen Development-Workflows oder AI-Client-Setups zu integrieren.
Der Server enthält spezifische Tools wie audit_page, um JSON-LD strukturierte Daten, Bild-Alt-Attribute und das Vorhandensein des Favicons zu verifizieren. Entwickler können check_keywords nutzen, um sicherzustellen, dass Zielbegriffe vorkommen, check_translation, um die strukturelle Parität zwischen Quell- und Zielsprache zu wahren, und check_claims, um Werbesprache zu identifizieren, die gegen regulatorische Vorschriften verstoßen könnte. Zudem bietet er compare_pages, um die Satzüberschneidung zwischen zwei Dokumenten zu messen, und sitemap_lastmod, um zu prüfen, ob sich eine Seite tatsächlich geändert hat. Diese Tools helfen dabei, sicherzustellen, dass Content ohne JavaScript lesbar ist und spezifischen redaktionellen Standards entspricht.
Was du damit machen kannst
- 1SEO und strukturierte Daten verifizierenPrüfen, ob eine Seite ohne JavaScript lesbar ist und das korrekte JSON-LD Markup für Suchmaschinen enthält.
- 2Regulatorische Werbeaussagen validierenIdentifizieren, ob Texte Ergebnisse als Fakten darstellen, was in regulierter Werbung abgelehnt werden könnte.
- 3Übersetzungsintegrität sicherstellenBestätigen, dass ein übersetztes Dokument strukturell identisch mit seinem ursprünglichen Quelldokument bleibt.
- 4Profitabilität interner Links prüfenVerifizieren, dass eine Seite auf umsatzgenerierende Bereiche der Website verlinkt, anstatt nur auf Boilerplate-Content.
Geschrieben aus dem README des Projekts. Jeder Use Case wurde gegen ein Zitat daraus geprüft.
So installierst du contentgate MCP
Formate geprüft am 10. Nov. 2026Zu Cursor hinzufügenZu Goose hinzufügencontentgate MCP in Claude Code installieren
$ claude mcp add contentgate -- npx -y mcp-server-contentgatecontentgate MCP in Cursor installieren
~/.cursor/mcp.json
{
"mcpServers": {
"contentgate": {
"command": "npx",
"args": [
"-y",
"mcp-server-contentgate"
]
}
}
}contentgate MCP in VS Code installieren
.vscode/mcp.json
{
"servers": {
"contentgate": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-server-contentgate"
]
}
}
}contentgate MCP in VS Code CLI installieren
$ code --add-mcp '{"name":"contentgate","type":"stdio","command":"npx","args":["-y","mcp-server-contentgate"]}'contentgate MCP in Claude Desktop installieren
claude_desktop_config.json
{
"mcpServers": {
"contentgate": {
"command": "npx",
"args": [
"-y",
"mcp-server-contentgate"
]
}
}
}contentgate MCP in Codex installieren
$ codex mcp add contentgate -- npx -y mcp-server-contentgatecontentgate MCP in Codex config.toml installieren
~/.codex/config.toml
[mcp_servers.contentgate] command = "npx" args = ["-y", "mcp-server-contentgate"]
contentgate MCP in Gemini CLI installieren
$ gemini mcp add -s user contentgate npx -- -y mcp-server-contentgatecontentgate MCP in Gemini settings.json installieren
~/.gemini/settings.json
{
"mcpServers": {
"contentgate": {
"command": "npx",
"args": [
"-y",
"mcp-server-contentgate"
]
}
}
}contentgate MCP tools 8
Erkannt aus dem READMEcheck_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 | — |
Automatisierte Checks
Geluften am 14. Nov. 2026Vollständiger Bericht →Unsere automatisierten Checks bestanden. Das ist kein Security-Audit: Lies den Code und gib dem Server nur den minimal notwendigen Zugriff. Wie die Checks funktionieren
- Source Repository verknüpft und erreichbaradsandcode/contentgate is public and reachablegithub.com/adsandcode/contentgate ↗Bestanden
- Paket nennt dieses Repository als Quellemcp-server-contentgate names adsandcode/contentgate as sourcenpmjs.com/package/mcp-server-contentgate ↗Bestanden
- Build-Provenienz (Sigstore-Attestierung)No build attestation published for this releaseNicht geprüft
- Open Source Lizenz (OSI)MITspdx.org/licenses/MIT.html ↗Bestanden
- Commit oder Release im letzten JahrLast commit or release 2026-10-23github.com/adsandcode/contentgate ↗Bestanden
- OpenSSF ScorecardNicht geprüft
- Package-Name ähnelt keinem populären PackageNo popular package one edit away from mcp-server-contentgateBestanden
- Keine kritischen Advisories im Paket oder seinen Abhängigkeiten99 resolved dependencies checked; no critical advisoryosv.dev ↗Bestanden
- Keine versteckten Anweisungen an das Modell8 tool descriptions and the README read; no override phrases, credential paths or hidden charactersBestanden
- Destruktive Tools sind markiertNo tool named like delete, drop or execBestanden
- Remote-Endpoint beantwortet den MCP-HandshakeNicht geprüft
README
Auf GitHub ansehenmcp-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 Fragen
Wie füge ich contentgate MCP zu Claude Code hinzu?
Führe claude mcp add contentgate -- npx -y mcp-server-contentgate in deinem Terminal aus. Füge --scope user hinzu, damit der Server in jedem Projekt verfügbar ist.
Wie füge ich contentgate MCP zu Cursor hinzu?
Öffne ~/.cursor/mcp.json und füge den Server unter mcpServers hinzu, mit der Cursor-Config aus dem Installationsabschnitt oben.
Welche Tools bietet contentgate MCP?
Er stellt 8 Tools bereit, darunter check_keywords, check_translation, check_internal_links, check_claims, sitemap_lastmod.
Welche Arten von Prüfungen führt das audit_page Tool durch?
Es führt sechs Prüfungen durch: Lesbarkeit des sichtbaren Textes, Parsing von JSON-LD strukturierten Daten, Attribute von Outbound-Links, Bild-Alt-/Breiten-Tags, Vorhandensein des Favicons und Erkennung von Standardfloskeln.
Benötigt der Server Netzwerk- oder Dateisystemzugriff?
Nein, jedes Tool ist rein funktional und arbeitet nur mit den bereitgestellten Inhalten, ohne Zugriff auf das Dateisystem oder das Netzwerk.
Wie geht das Keyword-Matching mit Whitespace um?
Das Keyword-Matching normalisiert Whitespace nicht, was bedeutet, dass 'web hosting' und 'webhosting' als unterschiedliche Strings behandelt werden.
Wie stellt der Server sicher, dass seine Prüfungen tatsächlich funktionieren?
Der Server führt beim Start Negativtests durch und verweigert den Start, falls diese Tests fehlschlagen. So wird sichergestellt, dass er weiterhin bekannte fehlerhafte Inputs erkennt.