Realiza auditorias de conteúdo pré-deployment, incluindo SEO, densidade de palavras-chave, integridade de tradução, validação de links e verificações de conformidade regulatória.
Também conhecido como adsandcode/contentgate, mcp-server-contentgate
- Stars
- 0
- Ferramentas
- 8
- Downloads, 30 dias
- —
- Versão mais recente
- 0.2.0
- Último commit
- 23 de out. de 2026
- Licença
- MIT
O que é o MCP contentgate?
contentgate é um MCP server. Realiza auditorias de conteúdo pré-deployment, incluindo SEO, densidade de palavras-chave, integridade de tradução, validação de links e verificações de conformidade regulatória. Ele expõe 8 ferramentas, como check_keywords, check_translation, check_internal_links.
Resumo gerado a partir do README do projeto
Sobre o MCP server de contentgate
Auditar conteúdo web para SEO, integridade de tradução e conformidade regulatória antes do deployment é o que o Contentgate permite para desenvolvedores e editores. Este MCP server fornece um conjunto de ferramentas especializadas para capturar erros enquanto uma página está sendo escrita, em vez de após ela entrar no ar. Ele funciona como um utilitário puro onde o conteúdo entra e um veredito sai, sem exigir acesso ao sistema de arquivos ou à rede durante a execução. Os usuários podem rodar o servidor via npx para integrar essas verificações em seus fluxos de trabalho de desenvolvimento local ou configurações de clientes de IA.
O servidor inclui ferramentas específicas como audit_page para verificar dados estruturados JSON-LD, atributos alt de imagens e presença de favicon. Desenvolvedores podem usar check_keywords para garantir que termos alvo apareçam, check_translation para manter a paridade estrutural entre os idiomas de origem e destino, e check_claims para identificar linguagem publicitária que possa violar regulamentações. Ele também oferece compare_pages para medir a sobreposição de sentenças entre dois documentos e sitemap_lastmod para verificar se uma página realmente mudou. Essas ferramentas ajudam a garantir que o conteúdo seja legível sem JavaScript e siga padrões editoriais específicos.
O que você pode fazer com ele
- 1Verificar SEO e dados estruturadosVerifique se uma página é legível sem JavaScript e contém a marcação JSON-LD correta para mecanismos de busca.
- 2Validar alegações publicitárias regulatóriasIdentifique se o texto apresenta resultados como fatos de uma maneira que a publicidade regulamentada possa rejeitar.
- 3Garantir a integridade da traduçãoConfirme se um documento traduzido permanece estruturalmente idêntico ao seu documento de origem.
- 4Auditar a lucratividade de links internosVerifique se uma página direciona links para áreas geradoras de receita do site em vez de apenas conteúdo genérico.
Escrito a partir do README do projeto. Cada caso de uso é verificado com uma citação dele.
Como instalar o MCP contentgate
Formatos verificados em 10 nov 2026Adicionar ao CursorAdicionar ao GooseInstalar o MCP contentgate no Claude Code
$ claude mcp add contentgate -- npx -y mcp-server-contentgateInstalar o MCP contentgate no Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"contentgate": {
"command": "npx",
"args": [
"-y",
"mcp-server-contentgate"
]
}
}
}Instalar o MCP contentgate no VS Code
.vscode/mcp.json
{
"servers": {
"contentgate": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-server-contentgate"
]
}
}
}Instalar o MCP contentgate no VS Code CLI
$ code --add-mcp '{"name":"contentgate","type":"stdio","command":"npx","args":["-y","mcp-server-contentgate"]}'Instalar o MCP contentgate no Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"contentgate": {
"command": "npx",
"args": [
"-y",
"mcp-server-contentgate"
]
}
}
}Instalar o MCP contentgate no Codex
$ codex mcp add contentgate -- npx -y mcp-server-contentgateInstalar o MCP contentgate no Codex config.toml
~/.codex/config.toml
[mcp_servers.contentgate] command = "npx" args = ["-y", "mcp-server-contentgate"]
Instalar o MCP contentgate no Gemini CLI
$ gemini mcp add -s user contentgate npx -- -y mcp-server-contentgateInstalar o MCP contentgate no Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"contentgate": {
"command": "npx",
"args": [
"-y",
"mcp-server-contentgate"
]
}
}
}Ferramentas do MCP contentgate 8
Detectadas a partir do 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 | — |
Verificações automatizadas
Executado em 14 de nov. de 2026Relatório completo →Passou em nossas verificações automatizadas. Isso não é uma auditoria de segurança: leia o código e dê ao servidor o acesso mais restrito de que ele precisa. Como as verificações funcionam
- Repositório de origem vinculado e acessíveladsandcode/contentgate is public and reachablegithub.com/adsandcode/contentgate ↗Passou
- O pacote indica este repositório como sua origemmcp-server-contentgate names adsandcode/contentgate as sourcenpmjs.com/package/mcp-server-contentgate ↗Passou
- Proveniência da build (atestação Sigstore)No build attestation published for this releaseNão verificado
- Licença de código aberto (OSI)MITspdx.org/licenses/MIT.html ↗Passou
- Commit ou release no último anoLast commit or release 2026-10-23github.com/adsandcode/contentgate ↗Passou
- OpenSSF ScorecardNão verificado
- Nome do pacote não é próximo a um pacote popularNo popular package one edit away from mcp-server-contentgatePassou
- Nenhum aviso crítico no pacote ou em suas dependências99 resolved dependencies checked; no critical advisoryosv.dev ↗Passou
- Sem instruções ocultas para o modelo8 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPassou
- Ferramentas destrutivas estão rotuladasNo tool named like delete, drop or execPassou
- O endpoint remoto responde ao handshake do MCPNão verificado
README
Ver no 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.
Perguntas sobre o MCP contentgate
Como adiciono o MCP contentgate ao Claude Code?
Execute claude mcp add contentgate -- npx -y mcp-server-contentgate no seu terminal. Adicione --scope user para torná-lo disponível em todos os projetos.
Como adiciono o MCP contentgate ao Cursor?
Abra ~/.cursor/mcp.json e adicione o servidor em mcpServers, usando a configuração do Cursor mostrada na seção de instalação acima.
Quais ferramentas o MCP contentgate oferece?
Ele expõe 8 ferramentas, incluindo check_keywords, check_translation, check_internal_links, check_claims, sitemap_lastmod.
Que tipo de verificações a ferramenta audit_page realiza?
Ela executa seis verificações: legibilidade do texto visível, parsing de dados estruturados JSON-LD, atributos de links externos, tags alt/width de imagens, presença de favicon e detecção de frases clichês.
O servidor requer acesso à rede ou ao sistema de arquivos?
Não, cada ferramenta é pura e opera apenas no conteúdo fornecido, sem acesso ao sistema de arquivos ou à rede.
Como a correspondência de palavras-chave lida com espaços em branco?
A correspondência de palavras-chave não normaliza espaços em branco, o que significa que 'web hosting' e 'webhosting' são tratados como strings diferentes.
Como o servidor garante que suas verificações estão realmente funcionando?
O servidor executa testes negativos na inicialização e recusará iniciar se esses testes falharem, garantindo que ele ainda consiga detectar entradas incorretas conhecidas.