Realiza auditorías de contenido previas al despliegue, incluyendo SEO, densidad de palabras clave, integridad de la traducción, validación de enlaces y comprobación de declaraciones regulatorias.
También conocido como adsandcode/contentgate, mcp-server-contentgate
- Stars
- 0
- Herramientas
- 8
- Descargas, 30 días
- —
- Última versión
- 0.2.0
- Último commit
- 23 oct 2026
- Licencia
- MIT
¿Qué es contentgate MCP?
contentgate es un MCP server. Realiza auditorías de contenido previas al despliegue, incluyendo SEO, densidad de palabras clave, integridad de la traducción, validación de enlaces y comprobación de declaraciones regulatorias. Expone 8 herramientas, como check_keywords, check_translation, check_internal_links.
Resumen generado a partir del README del proyecto
Acerca del MCP server de contentgate
Contentgate permite a desarrolladores y editores auditar contenido web para SEO, integridad de traducción y cumplimiento regulatorio antes del despliegue. Este MCP server proporciona un conjunto de herramientas especializadas para detectar errores mientras se escribe una página, en lugar de hacerlo una vez que ya está publicada. Funciona como una utilidad pura donde se introduce el contenido y se obtiene un veredicto, sin necesidad de acceso al sistema de archivos o a la red durante la ejecución. Los usuarios pueden ejecutar el servidor vía npx para integrar estas comprobaciones en sus flujos de trabajo de desarrollo local o configuraciones de clientes de IA.
El servidor incluye herramientas específicas como audit_page para verificar datos estructurados JSON-LD, atributos alt de imágenes y la presencia de favicon. Los desarrolladores pueden usar check_keywords para asegurar que aparezcan los términos objetivo, check_translation para mantener la paridad estructural entre el idioma origen y el destino, y check_claims para identificar lenguaje publicitario que podría infringir normativas. También ofrece compare_pages para medir el solapamiento de frases entre dos documentos y sitemap_lastmod para verificar si una página realmente ha cambiado. Estas herramientas ayudan a garantizar que el contenido sea legible sin JavaScript y cumpla con estándares editoriales específicos.
Qué puedes hacer con él
- 1Verificar SEO y datos estructuradosComprueba si una página es legible sin JavaScript y si contiene el marcado JSON-LD correcto para los motores de búsqueda.
- 2Validar declaraciones publicitarias regulatoriasIdentifica si el texto presenta resultados como hechos de una manera que la publicidad regulada podría rechazar.
- 3Garantizar la integridad de la traducciónConfirma que un documento traducido mantenga una estructura idéntica a su documento original.
- 4Auditar la rentabilidad de los enlaces internosVerifica que una página enlace a áreas del sitio que generan ingresos en lugar de limitarse a contenido genérico.
Escrito a partir del README del proyecto. Cada caso de uso se verifica con una cita del mismo.
Cómo instalar contentgate MCP
Formatos verificados el 10 nov 2026Añadir a CursorAñadir a GooseInstalar contentgate MCP en Claude Code
$ claude mcp add contentgate -- npx -y mcp-server-contentgateInstalar contentgate MCP en Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"contentgate": {
"command": "npx",
"args": [
"-y",
"mcp-server-contentgate"
]
}
}
}Instalar contentgate MCP en VS Code
.vscode/mcp.json
{
"servers": {
"contentgate": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-server-contentgate"
]
}
}
}Instalar contentgate MCP en VS Code CLI
$ code --add-mcp '{"name":"contentgate","type":"stdio","command":"npx","args":["-y","mcp-server-contentgate"]}'Instalar contentgate MCP en Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"contentgate": {
"command": "npx",
"args": [
"-y",
"mcp-server-contentgate"
]
}
}
}Instalar contentgate MCP en Codex
$ codex mcp add contentgate -- npx -y mcp-server-contentgateInstalar contentgate MCP en Codex config.toml
~/.codex/config.toml
[mcp_servers.contentgate] command = "npx" args = ["-y", "mcp-server-contentgate"]
Instalar contentgate MCP en Gemini CLI
$ gemini mcp add -s user contentgate npx -- -y mcp-server-contentgateInstalar contentgate MCP en Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"contentgate": {
"command": "npx",
"args": [
"-y",
"mcp-server-contentgate"
]
}
}
}Herramientas de contentgate MCP 8
Detectado desde el 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 | — |
Verificaciones automáticas
Ejecutado 14 nov 2026Informe completo →Pasó nuestras verificaciones automáticas. Esto no es una auditoría de seguridad: lee el código y dale al servidor el acceso más limitado que necesite. Cómo funcionan las verificaciones
- Repositorio de origen vinculado y accesibleadsandcode/contentgate is public and reachablegithub.com/adsandcode/contentgate ↗Aprobado
- El paquete indica este repositorio como su origenmcp-server-contentgate names adsandcode/contentgate as sourcenpmjs.com/package/mcp-server-contentgate ↗Aprobado
- Procedencia de la compilación (atestación de Sigstore)No build attestation published for this releaseNo verificado
- Licencia de código abierto (OSI)MITspdx.org/licenses/MIT.html ↗Aprobado
- Commit o lanzamiento en el último añoLast commit or release 2026-10-23github.com/adsandcode/contentgate ↗Aprobado
- OpenSSF ScorecardNo verificado
- El nombre del paquete no es similar a un paquete popularNo popular package one edit away from mcp-server-contentgateAprobado
- No hay avisos críticos en el paquete ni en sus dependencias99 resolved dependencies checked; no critical advisoryosv.dev ↗Aprobado
- Sin instrucciones ocultas para el modelo8 tool descriptions and the README read; no override phrases, credential paths or hidden charactersAprobado
- Las herramientas destructivas están etiquetadasNo tool named like delete, drop or execAprobado
- El endpoint remoto responde al handshake de MCPNo verificado
README
Ver en GitHubmcp-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.
Preguntas sobre contentgate MCP
¿Cómo agrego contentgate MCP a Claude Code?
Ejecuta claude mcp add contentgate -- npx -y mcp-server-contentgate en tu terminal. Añade --scope user para que esté disponible en todos los proyectos.
¿Cómo agrego contentgate MCP a Cursor?
Abre ~/.cursor/mcp.json y añade el servidor en mcpServers, usando la configuración de Cursor que se muestra en la sección de instalación de arriba.
¿Qué herramientas proporciona contentgate MCP?
Expone 8 herramientas, incluidas check_keywords, check_translation, check_internal_links, check_claims, sitemap_lastmod.
¿Qué tipo de comprobaciones realiza la herramienta audit_page?
Ejecuta seis comprobaciones: legibilidad del texto visible, análisis de datos estructurados JSON-LD, atributos de enlaces salientes, etiquetas alt/width de imágenes, presencia de favicon y detección de frases hechas.
¿Requiere el servidor acceso a la red o al sistema de archivos?
No, cada herramienta es pura y opera únicamente con el contenido proporcionado, sin acceso al sistema de archivos ni a la red.
¿Cómo gestiona el espacio en blanco la coincidencia de palabras clave?
La coincidencia de palabras clave no normaliza los espacios en blanco, lo que significa que 'web hosting' y 'webhosting' se tratan como cadenas diferentes.
¿Cómo garantiza el servidor que sus comprobaciones funcionan correctamente?
El servidor ejecuta pruebas negativas al iniciar y se negará a arrancar si estas fallan, asegurando que pueda detectar entradas erróneas conocidas.