SEO Performance MCP
MCP de desempenho SEO pós-publicação que pontua cada URL no Google Search Console, GA4, Matomo, Clarity e citações de IA, e emite um veredito de atualizar/expandir/mesclar/remover por postagem.
Documentação
seo-performance-mcp
Saiba quais posts de blog atualizar, expandir, mesclar ou excluir - sem adivinhar.
Um servidor MCP que transforma seus dados dispersos de SEO e analytics em um veredito claro por URL. Conecte-o ao Claude, Cursor ou qualquer cliente compatível com MCP e pergunte: "Quais três posts devo atualizar esta semana?" - e receba uma resposta baseada em números concretos.
O que ele faz
seo-performance-mcp unifica sinais pós-publicação de todos os canais pelos quais você já paga:
- Google Search Console - cliques, impressões, CTR, posição, principais consultas
- Matomo ou GA4 - visitas, tempo de permanência, taxa de rejeição
- Microsoft Clarity - profundidade de rolagem, cliques de raiva, cliques mortos
- Rastreamento de citações de IA - quais LLMs citam sua URL hoje vs. no mês passado
- Sitemap / CMS - datas de publicação, tags, contagens de palavras (qualquer plataforma via sitemap XML; integração opcional com Ghost para metadados mais ricos)
Ele então executa um mecanismo de regras determinístico sobre esses sinais e emite um veredito por URL:
refresh/expand/merge/kill/double_down/hold
com códigos de motivo, evidências e uma pontuação de confiança de 0 a 1. Apenas relatórios - o servidor nunca altera seus posts.
Por que isso importa
A maioria das equipes de conteúdo tem análises em cinco abas e uma intuição. É assim que bons posts apodrecem silenciosamente, posts medianos são superpromovidos, e o óbvio "reescreva este" fica invisível até o tráfego já ter despencado.
Este MCP fecha o ciclo:
- Uma pergunta, uma URL de entrada, um veredito de saída.
- Mesma lógica em toda a coorte, então a classificação é comparável.
- Todas as decisões são rastreáveis até limites numéricos que você pode fixar no
src/verdict/rules.ts. - Clientes de IA (Claude, Cursor, hosts MCP) podem conduzir toda a auditoria de conteúdo em linguagem natural.
Para quem é
- Profissionais de marketing de conteúdo que gerenciam um blog com 50+ posts e estão cansados de adivinhar o que atualizar.
- Consultores de SEO que fazem auditorias e querem uma camada de pontuação portátil e determinística em vez de planilhas personalizadas.
- Equipes de conteúdo com foco em IA que configuram agentes de reescrita - este MCP é a camada de sinal upstream.
- Publicadores independentes no Ghost, WordPress, Hugo, Astro, Next, Webflow ou qualquer CMS que exponha um sitemap.
O que você obtém
Após uma execução de coorte, você tem:
- Uma tabela ranqueada de cada post com veredito e pontuação de confiança.
- Um brief em markdown para cada URL de "atualização": números + principais consultas + ações sugeridas que um editor (ou um agente de escrita) pode executar imediatamente.
- Uma lista de "vitórias rápidas": consultas nas posições 5-15 com CTR abaixo do esperado - as vitórias mais rápidas de reescrita de título na propriedade.
- Um diff histórico de citações de IA: quais LLMs citavam você e pararam.
Instalação
npx -y @automatelab/seo-performance-mcp
Em uma configuração MCP do Claude, Claude Code ou Cursor:
{
"mcpServers": {
"seo-performance": {
"command": "npx",
"args": ["-y", "@automatelab/seo-performance-mcp"],
"env": {
"POSTS_SITEMAP_URL": "https://example.com/sitemap.xml",
"GSC_SERVICE_ACCOUNT_JSON": "<base64-encoded service-account JSON>",
"GSC_SITE_URL": "sc-domain:example.com",
"MATOMO_URL": "https://example.com/analytics",
"MATOMO_TOKEN": "...",
"MATOMO_SITE_ID": "1",
"GA4_PROPERTY_ID": "123456789",
"GA4_SERVICE_ACCOUNT_JSON": "<base64-encoded service-account JSON>",
"CLARITY_PROJECT_ID": "...",
"CLARITY_API_TOKEN": "...",
"CITATION_INTELLIGENCE_URL": "https://citation.example.com"
}
}
}
}
Toda variável de ambiente é opcional. Adaptadores que não têm sua configuração de ambiente ignoram sua parte do snapshot; o servidor ainda inicializa. O mecanismo de veredito funciona com qualquer conjunto de partes presente.
Integração de plataforma
Aponte para qualquer site, sem plugin de CMS necessário. A camada de descoberta de posts resolve em ordem de prioridade:
POSTS_LIST- array JSON de{url, title?, published_at?, tags?, word_count?}. Use quando você já tem um índice de conteúdo e quer controle exato.- Ghost Admin API - se tanto
GHOST_ADMIN_API_URLquantoGHOST_ADMIN_API_KEYestiverem definidos, o Ghost é usado como fonte de metadados mais rica. Opcional. - Extração de HTML - por URL,
og:title,article:published_timee JSON-LDdatePublishedsão lidos ao vivo da URL. - Sitemap XML - defina
POSTS_SITEMAP_URLpara o seu sitemap (ou índice de sitemap) e o servidor enumera posts de<loc>+<lastmod>.
A maioria dos usuários só precisa de POSTS_SITEMAP_URL. WordPress, Hugo, Astro, Next.js, Webflow, Framer, Wix, Squarespace, Notion-como-site, sites-espelho do Substack todos expõem um sitemap por padrão.
Para adicionar uma plataforma nova: nada a construir - apenas aponte POSTS_SITEMAP_URL para ela.
Ferramentas expostas
| Ferramenta | O que retorna |
|---|---|
posts_list | Posts com {url, title, age_days, tags} do sitemap, Ghost ou seu POSTS_LIST. |
posts_snapshot | Resumo unificado por URL para uma janela de 30/60/90 dias: GSC + Matomo + GA4 + Clarity + citações + meta. |
posts_decay_curve | Baldes semanais de cliques/impressões/posição do GSC + um rótulo de tendência decay/plateau/growth. |
posts_verdict | Veredito (refresh/expand/merge/kill/double_down/hold) + códigos de motivo + confiança de 0 a 1. |
posts_refresh_brief | Brief em markdown para um humano ou editor LLM downstream: números, principais consultas, ações sugeridas. |
cohort_report | Tabela de vereditos da coorte ordenada por prioridade + confiança. "Quais três posts devo atualizar esta semana?" |
posts_cite_loss | Citações de LLM que caíram para uma determinada URL. Requer CITATION_INTELLIGENCE_URL. |
gsc_quick_wins | Pares (page, query) nas posições 5-15 com CTR baixo - vitórias mais rápidas de reescrita de título. |
Uso como GitHub Action
Execute qualquer uma das ferramentas em um cron a partir do CI e publique a saída em uma Issue, Discussion ou PR do GitHub. A action está publicada no GitHub Marketplace.
- uses: AutomateLab-tech/seo-performance-mcp@v1
with:
tool: cohort_report
format: markdown
input: '{"window": 90, "min_age_days": 90, "limit": 20}'
gsc-service-account-json: ${{ secrets.GSC_SERVICE_ACCOUNT_JSON }}
gsc-site-url: ${{ secrets.GSC_SITE_URL }}
posts-sitemap-url: ${{ secrets.POSTS_SITEMAP_URL }}
Saídas:
| Saída | Descrição |
|---|---|
result | Saída da ferramenta como string multilinha (markdown ou JSON, conforme format). |
result-file | Caminho do arquivo em que a saída da ferramenta foi gravada. Passe para peter-evans/create-issue-from-file etc. |
rows | Para cohort_report com format: json apenas: número de linhas retornadas. |
Um fluxo de trabalho completo de auditoria semanal que abre uma Issue do GitHub com o relatório da coorte está em examples/weekly-cohort-report.yml.
Uso como CLI de uso único
O pacote também inclui um binário seo-perf-cli para que você possa executar uma única ferramenta sem um cliente MCP:
npx -p @automatelab/seo-performance-mcp seo-perf-cli cohort_report \
--input '{"window": 90, "limit": 20}' \
--format markdown
Mesmas variáveis de ambiente que o servidor MCP. --format markdown é suportado para cohort_report e posts_refresh_brief; outras ferramentas recorrem a JSON cercado.
Habilidades complementares + regra do Cursor
Três arquivos finos de roteamento acompanham o repositório para que o LLM no seu cliente saiba quando usar essas ferramentas:
skills/seo-performance/SKILL.md- habilidade de roteamento de ferramentas. Coloque em~/.claude/skills/seo-performance/(ou.claude/skills/por projeto) para carregamento automático no Claude Code. Roteia uma única pergunta para a ferramenta certa.skills/weekly-audit/SKILL.md- playbook de auditoria semanal de uso único. Compõegsc_quick_wins+cohort_report+posts_cite_lossem um resumo ranqueado, sem duplicatas e com sinais cruzados, incluindo edições propostas por URL. Coloque junto com a habilidade de roteamento.cursor/rules/seo-performance.mdc- copie para.cursor/rules/seo-performance.mdcem qualquer espaço de trabalho do Cursor.
Tudo opcional. O servidor MCP funciona sem eles; eles apenas encurtam o ciclo "qual ferramenta devo chamar".
Prompts MCP
O servidor expõe três prompts que agrupam o playbook. Qualquer cliente MCP (Claude Desktop, Claude Code, Cursor, Continue) pode listá-los e invocá-los:
| Prompt | O que executa |
|---|---|
audit_cohort | cohort_report em posts com >=90d, depois posts_refresh_brief por linha de atualizar/expandir/mesclar. A auditoria semanal. |
find_quick_wins | gsc_quick_wins (posições 5-15) + posts_snapshot por URL, depois propõe reescritas de meta_title com consultas exatas. |
citation_loss_sweep | posts_cite_loss por URL, refresh_brief para qualquer um com perdas, recomendações direcionadas de H1/frase de abertura. |
Mecanismo de veredito
Determinístico, baseado em regras, rastreável. Códigos de motivo:
ctr_below_position_expectedposition_driftdecay_30d_over_30pct/decay_60d_over_50pctstagnant_no_clicksthin_content_low_dwellrising_impressions_low_ctr/rising_clicks_continue_investmentcitation_loss/citation_growthduplicate_or_cannibalizinghigh_bounce_low_scrollfresh_post_too_young
O mapeamento (motivos → veredito) e todos os limites estão em src/verdict/rules.ts. Edite-o, fixe-o em testes, publique seu próprio livro de regras.
Desenvolvimento
npm install
npm run dev # tsx src/index.ts
npm run build # tsc
npm test # vitest
Licença
MIT