SEOmatic
Agente de SEO para o seu próprio site: dados reais do Search Console, palavras-chave, backlinks e visibilidade de IA no Claude, ChatGPT ou Cursor, além de correções com aprovação.
Documentação
NEWConfira nossos modelos GRATUITOS →
Um servidor Model Context Protocol hospedado que expõe as ferramentas do SEOmatic para qualquer cliente MCP. Conecte-se interativamente via OAuth 2.1, ou com uma chave de API do workspace como token Bearer. As ferramentas são consolidadas em um pequeno conjunto de ferramentas de resultado, cada uma anotada como somente leitura ou ativa.
Conexão
| Campo | Valor |
|---|---|
| Endpoint | https://app.seomatic.ai/api/mcp |
| Transporte | Streamable HTTP (stateless, POST JSON-RPC 2.0) |
| Protocolo | 2025-06-18 (2024-11-05 through 2026-07-28 accepted; newer versions negotiate down) |
| Servidor | seomatic v1.0.0 |
| Autenticação | OAuth 2.1 (interactive clients) or Authorization: Bearer smk_live_... |
Instale no seu assistente (cerca de um minuto)
Três passos, iguais em qualquer lugar: abra as configurações de conectores do seu assistente, cole a URL do SEOmatic, faça login e escolha seu site quando a tela do SEOmatic aparecer. Não é necessário copiar chave de API. Após instalar, há um passo que muitos esquecem: em uma NOVA conversa, abra o menu de ferramentas na caixa de mensagem e certifique-se de que o SEOmatic está habilitado para aquela conversa.
| Assistente | Requisitos | Onde instalar |
|---|---|---|
| Claude (web/desktop) | Plano Claude pago | Configurações > Conectores > Adicionar conector personalizado |
| ChatGPT | Plus ou superior, depois ative o Modo desenvolvedor (Configurações > Apps > Avançado). O menu Apps só aparece em planos pagos. | Configurações > Conectores > Criar |
| Claude Code / Cursor / Cline | Nada extra | Um comando ou entrada de configuração (abaixo) |
Duas coisas que parecem problemas, mas não são: a tela de consentimento pede para você entrar ou criar uma conta SEOmatic (a gratuita funciona), e o conector é separado de qualquer skill do SEOmatic que você possa ter instalado — a skill precisa do conector para acessar seus dados.
URL: https://app.seomatic.ai/api/mcp
Auth: OAuth (the client discovers it automatically)
Caminho mais rápido: cole isto no seu assistente de IA e deixe-o fazer a configuração (agentes que podem executar comandos ou editar configurações, como Claude Code e Cursor, instalarão por conta própria; assistentes de chat darão os cliques exatos):
Set up the SEOmatic MCP server for me. Instructions:
https://seomatic.ai/developers/mcp
Server URL: https://app.seomatic.ai/api/mcp (Streamable HTTP, OAuth).
If you can edit MCP config or run commands in this client, do the setup
yourself. Otherwise, give me the exact steps for this client.
Por cliente, os passos exatos:
Settings -> Connectors -> Add custom connector
Name: SEOmatic
URL: https://app.seomatic.ai/api/mcp
Then click Connect and approve in the SEOmatic consent screen.
claude mcp add --transport http seomatic https://app.seomatic.ai/api/mcp
# then inside a session: /mcp -> seomatic -> Authenticate
{
"mcpServers": {
"seomatic": { "url": "https://app.seomatic.ai/api/mcp" }
}
}
{
"mcpServers": {
"seomatic": {
"url": "https://app.seomatic.ai/api/mcp",
"type": "streamableHttp",
"headers": { "Authorization": "Bearer smk_live_..." }
}
}
}
// Agent-guided setup: point the agent at
// https://github.com/Minh42/seomatic-mcp
Settings -> Apps -> Advanced settings -> enable Developer mode
Then: Settings -> Connectors -> Create
Name: SEOmatic
URL: https://app.seomatic.ai/api/mcp
Auth: OAuth, then approve in the SEOmatic consent screen.
(On Business/Enterprise an admin must allow custom MCP connectors first.)
A descoberta segue a especificação MCP: o endpoint retorna 401 com um WWW-Authenticate apontando para /.well-known/oauth-protected-resource (RFC 9728), cujos metadados do servidor de autorização estão em /.well-known/oauth-authorization-server (RFC 8414). PKCE (S256) é obrigatório; os tokens são vinculados a este recurso. Registro dinâmico de clientes e documentos de metadados de client-id são ambos suportados.
Conecte-se com uma chave de API (headless)
Para agentes headless e clientes que aceitam um token estático, gere uma chave de API do workspace e envie-a como token Bearer. É assim também que o conector da Claude Messages API autentica, via campo authorization_token.
{
"mcpServers": {
"seomatic": {
"url": "https://app.seomatic.ai/api/mcp",
"headers": { "Authorization": "Bearer smk_live_..." }
}
}
}
Experimente em 30 segundos (curl)
Duas requisições comprovam toda a superfície: liste as ferramentas que sua chave pode chamar e, em seguida, chame uma. Falhas retornam como resultados isError com um motivo em linguagem simples, nunca erros de transporte opacos.
curl -s https://app.seomatic.ai/api/mcp \
-H "Authorization: Bearer smk_live_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
curl -s https://app.seomatic.ai/api/mcp \
-H "Authorization: Bearer smk_live_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{
"name":"keyword_research",
"arguments":{"action":"metrics","keywords":["seo tools"]}}}'
Toda chamada bem-sucedida retorna o payload duas vezes: content (texto, para qualquer cliente) e structuredContent (um objeto JSON em conformidade com o outputSchema declarado, para clientes que desejam dados tipados).
Métodos
| Método | O que faz |
|---|---|
initialize | Negocia a versão do protocolo e obtém serverInfo. |
tools/list | O roteiro de ferramentas filtrado por escopo que esta chave pode chamar. |
tools/call | Invoca uma ferramenta. Falhas retornam como resultado isError, não como erro de transporte, para que o agente possa reagir. |
O que cada chave pode chamar
O roteiro tools/list é filtrado pelos escopos da chave, então um cliente só vê ferramentas que pode realmente chamar.
| Escopo | Faixa | Ferramentas que desbloqueia |
|---|---|---|
read:gsc | Grátis | Leituras diretas do Search Console. |
chat:ask | Grátis | Todas as ferramentas de insight: GSC, palavras-chave, backlinks, SERP, analytics, anúncios, Business Profile, conjuntos de dados, modelos. |
agents:act | Pago | As ferramentas ativas: tarefas de SEO, campanhas, edições em massa, criação de blog, skills. Funciona em qualquer plano pago via MCP. |
Atuar via MCP funciona em qualquer plano pago; as mesmas ferramentas ativas via REST API exigem Infrastructure.
Referência de ferramentas (13 ferramentas consolidadas)
Via MCP, toda a superfície é agrupada em 13 ferramentas de resultado, cada uma recebendo um action que seleciona a operação. Toda ferramenta carrega anotações MCP, então o cliente sabe de imediato se ela apenas lê (readOnlyHint) ou pode preparar uma alteração. Nada é destrutivo por padrão: ferramentas ativas preparam propostas que um humano aprova no SEOmatic. Esta referência é gerada a partir do catálogo real do servidor, então é exatamente o que tools/list serve. Toda ferramenta já está limitada ao workspace conectado e ao seu site; as poucas ferramentas que aceitam um domain usam seu próprio site por padrão quando omitido, e analisam um concorrente quando você passa um.
gsc_performanceSomente leitura
Lê o desempenho do Google Search Console (cliques, impressões, CTR, posição) por consulta, página, dimensão ou comparação de períodos. Sua própria propriedade conectada.
| Ação | O que faz | Parâmetros |
|---|---|---|
top_queries | principais consultas de pesquisa | days, limit |
top_pages | principais páginas | days, limit |
dimension_breakdown | por dispositivo/país/data | dimension*, days, filterQuery, filterPage, limit |
query_page_matrix | canibalização / mapa consulta-para-página | days, maxRows |
compare_periods | queda/crescimento vs. período anterior | dimension, days, limit |
trend | cliques/impressões diários ao longo do tempo | days |
Detalhes dos parâmetros
days(número) Janela de retrospectiva em dias (padrão ~28). 1-90 para a maioria das ações; 7-90 para tendência.limit(número) Limite de linhas. top_queries/top_pages/dimension_breakdown padrão 50; compare_periods linhas por período padrão 500. Ignorado por query_page_matrix (use maxRows) e trend.dimension(string) OBRIGATÓRIO para dimension_breakdown (device|country|date). Para compare_periods: query|page (padrão page). Ignorado caso contrário. Um de: device, country, date, query, page.filterQuery(string) somente dimension_breakdown: restringir a uma consulta exata.filterPage(string) somente dimension_breakdown: restringir a uma URL de página exata.maxRows(número) somente query_page_matrix: máximo de pares consulta-página (padrão 2000).
gsc_indexingSomente leitura
Verifica o status de indexação do Google e diagnósticos de cobertura para uma URL ou um lote de URLs (estado de cobertura, status de rastreamento, problemas de robots/canonical).
| Ação | O que faz | Parâmetros |
|---|---|---|
inspect | uma URL, diagnósticos completos | url* |
batch_inspect | muitas URLs, resumo de cada uma | urls* |
Detalhes dos parâmetros
url(string) somente inspect: a URL totalmente qualificada para inspecionar.urls(array) somente batch_inspect: as URLs para inspecionar.
keyword_researchSomente leitura
Pesquisa a demanda por palavras-chave: volume de busca, dificuldade, CPC e intenção, além de ideias de palavras-chave, interesse do Google Trends e consultas relacionadas, e desempenho de palavras-chave do Google Ads. Use para saber o que mirar e quanta demanda existe; para saber quem rankeia hoje, use serp_competitors.
| Ação | O que faz | Parâmetros |
|---|---|---|
metrics | volume/dificuldade/CPC/intenção | keywords* |
suggestions | ideias de palavras-chave a partir de sementes | keywords*, limit |
compare_trends | interesse do Trends, palavras-chave lado a lado | keywords* |
trend | interesse do Trends ao longo do tempo para uma palavra-chave | keyword* |
related | consultas relacionadas do Trends | keyword* |
ads_performance | desempenho de palavras-chave do Google Ads | days, limit |
Detalhes dos parâmetros
keywords(array) metrics/suggestions/compare_trends: as palavras-chave semente ou alvo.keyword(string) trend/related: a única palavra-chave para analisar.days(número) ads_performance: janela de retrospectiva em dias.limit(número) suggestions/ads_performance: máximo de resultados.
keyword_clustersSomente leitura
O mapa de clusters de palavras-chave em cache do agente, construído a partir do universo de consultas GSC do workspace (clusters pilar, canibalização, lacuna e cobertos).
| Ação | O que faz | Parâmetros |
|---|---|---|
list | nenhum |
backlink_profileSomente leitura
Lê o perfil de backlinks do seu próprio site ou de qualquer concorrente: domínios de referência, distribuição de texto âncora, velocidade de links e interseções de prospects de links. Use para questões de autoridade e links; para rankings, use serp_competitors.
| Ação | O que faz | Parâmetros |
|---|---|---|
summary | totais, domínios de referência, rank/spam | domain |
anchors | distribuição de texto âncora | domain, limit |
velocity | domínios de referência novos vs. perdidos por mês | domain, months |
referring_domains | principais domínios que linkam | domain, limit |
link_prospects | interseção de links: linkam para concorrentes, mas não para nós | competitors*, limit |
Detalhes dos parâmetros
domain(string) O domínio para analisar, ex.: "example.com". Omita para analisar o site do próprio workspace conectado (o servidor preenche); passe apenas para analisar um concorrente.limit(número) anchors (padrão 25) e referring_domains (padrão 50).months(número) somente velocity: meses anteriores (padrão 6).competitors(array) somente link_prospects: 1-3 domínios concorrentes para interseção.
serp_competitorsSomente leitura
Inspeciona o cenário de busca ao vivo: quais recursos de SERP (AI Overview, snippet, PAA, pacote local, vídeo) aparecem para uma palavra-chave, além de rankings de topo por domínio, distribuição de visibilidade e domínios concorrentes. Use para saber quem rankeia e por quê; para demanda de palavras-chave, use keyword_research.
| Ação | O que faz | Parâmetros |
|---|---|---|
features | quais recursos de SERP aparecem para uma palavra-chave | keywords* |
domain_rankings | principais palavras-chave que um domínio rankeia | domain, limit |
domain_overview | distribuição de visibilidade orgânica | domain |
domain_competitors | domínios que rankeiam para palavras-chave semelhantes | domain, limit |
Detalhes dos parâmetros
keywords(array) somente features: a(s) palavra(s)-chave para inspecionar.domain(string) domain_rankings/domain_overview/domain_competitors: o domínio. Omita para o site do próprio workspace conectado (o servidor preenche); passe apenas para um concorrente.limit(número) máximo de resultados quando aplicável.
traffic_analyticsSomente leitura
Tráfego do Google Analytics (GA4) e desempenho de conta, campanhas e termos de pesquisa do Google Ads.
| Ação | O que faz | Parâmetros |
|---|---|---|
overview | sessões/usuários/pageviews/taxa de rejeição GA4 | days |
sources | sessões GA4 por canal | days |
landing_pages | principais páginas de entrada GA4 | days, limit |
top_pages | páginas mais vistas GA4 | days, limit |
ads_account | totais da conta Google Ads | days |
ad_campaigns | desempenho de campanhas Google Ads | days, limit |
ads_search_terms | termos de pesquisa reais que acionaram anúncios | days, limit |
Detalhes dos parâmetros
days(número) janela de retrospectiva em dias.limit(número) máximo de linhas quando aplicável.
local_presenceSomente leitura
Lê a presença de busca local do negócio conectado: locais do Business Profile, ranking local para palavras-chave de dinheiro e avaliações. As ações disponíveis dependem do que está conectado para este workspace. Use para questões locais e de pacote de mapas; para rankings nacionais, use serp_competitors.
| Ação | O que faz | Parâmetros |
|---|---|---|
list_locations | locais GBP na conta | nenhum |
visibility | posição orgânica local para palavras-chave | keywords* |
reviews | avaliação média + contagem de avaliações | location* |
Detalhes dos parâmetros
keywords(array) somente visibility: as palavras-chave de dinheiro para medir.location(string) somente reviews: o id do local do Business Profile.
site_pagesSomente leitura
Analisa páginas: pontuação de SEO on-page e problemas críticos para uma URL, metadados brutos de rastreamento (título, meta, cabeçalhos, links) e o inventário de páginas do site. Use para diagnóstico no nível de página; para desempenho de busca dessas páginas, use gsc_performance.
| Ação | O que faz | Parâmetros |
|---|---|---|
analyze | Pontuação de SEO + problemas críticos | url* |
crawl | título/meta/cabeçalhos/links | url* |
inventory | as páginas reais sincronizadas do usuário | limit |
Detalhes dos parâmetros
url(string) analyze/crawl: a URL a ser inspecionada.limit(inteiro) somente inventory: número máximo de páginas a retornar.
dataset_librarySomente leitura
A biblioteca de datasets e os modelos de página que alimentam páginas programáticas: listar datasets, amostrar linhas, listar modelos e ler um modelo.
| Ação | O que faz | Parâmetros |
|---|---|---|
list_datasets | datasets disponíveis | nenhum |
dataset_rows | linhas de amostra de um dataset | datasetId*, limit |
list_templates | modelos de página integrados | nenhum |
get_template | um modelo completo | templateId* |
Detalhes dos parâmetros
datasetId(string) somente dataset_rows: o dataset a ser amostrado.templateId(string) somente get_template: o modelo a ser lido.limit(inteiro) somente dataset_rows: quantas linhas amostrar.
strategy_insightsSomente leitura
O diagnóstico em cache do agente para este workspace: um resumo compacto, a estratégia atual, um sinal bruto completo e pontuações de conteúdo para busca com IA.
| Ação | O que faz | Parâmetros |
|---|---|---|
snapshot | resumo compacto dos sinais em cache | nenhum |
strategy | temas + grandes jogadas ranqueadas | nenhum |
signal | um sinal em cache completo | signal* |
content_scores | pontuações de busca com IA para artigos gerados | nenhum |
Detalhes dos parâmetros
signal(string) somente signal: qual sinal em cache ler (ex.: index_coverage, backlink_profile).
task_managePode encenar mudanças
Leia o quadro de planejamento do agente e encene novas propostas de tarefas de SEO. Propostas NUNCA executam: cada uma é um cartão com aprovação necessária que o usuário revisa.
| Ação | O que faz | Parâmetros |
|---|---|---|
list | o quadro de planejamento (filtrável) | status, type |
get | uma tarefa em detalhe completo | taskId* |
create encena | encenar até 5 propostas de tarefas | tasks* |
decide encena | aprovar ou dispensar uma proposta encenada (o ciclo de aprovação) | taskId*, decision* |
Detalhes dos parâmetros
status(string) somente list: filtrar por status da tarefa (proposed, approved,...).type(string) somente list: filtrar por tipo de tarefa.taskId(string) get/decide: a tarefa a ler ou decidir.decision(string) somente decide: aprovar libera a tarefa para o pipeline com aprovação; dispensar arquiva. Tipos destrutivos de indexação são recusados pela API. Um de: approve, dismiss.tasks(array) somente create: até 5 objetos de tarefa para encenar como propostas (veja a documentação do SEOmatic para a estrutura da tarefa).
campaign_managePode encenar mudanças
Leia campanhas e encene campanhas em escala de página, varredura de conteúdo ou edição em massa, além de artigos de blog. Toda encenação é baseada em propostas e exige aprovação; nada é publicado sem o usuário.
| Ação | O que faz | Parâmetros |
|---|---|---|
list | campanhas com status + contagem de tarefas | status |
manage encena | pausar/retomar/abandonar/atualizar uma campanha | campaignId*, manageAction*, confirm, brief |
propose_page_scale encena | páginas de destino programáticas em escala | title*, kind*, brief*, rowSourceKind*, rowPrompt, rows, libraryDatasetId, rowTarget, allowGenText, publishAsDraft, pageTemplate |
propose_content_sweep encena | N artigos de blog distintos como uma campanha | title*, topics*, brief |
propose_bulk_edit encena | uma instrução em muitas páginas | taskType*, instruction, title, selectorKind, urls, pathPrefix, segments, maxPages |
write_articles encena | encenação direta de N artigos | topics*, autoPublish |
save_article encena | salvar um rascunho completo de artigo (passar título/conteúdo/slug) para publicação com um clique | title*, content*, slug*, excerpt*, metaTitle, metaDescription, featuredImagePrompt* |
Detalhes dos parâmetros
status(string) somente list: filtrar campanhas por status. Um de: proposed, approved, active, paused, done, abandoned.campaignId(string) somente manage: a campanha na qual agir.manageAction(string) somente manage: o que fazer com a campanha. Um de: pause, resume, abandon, update_brief.confirm(booleano) somente manage + abandon: deve ser true para confirmar a ação irreversível.brief(string) manage+update_brief: brief substituto. Também propose_page_scale (brief de modelo) e propose_content_sweep (direção compartilhada).title(string) propose_page_scale (obrigatório), propose_content_sweep (obrigatório), propose_bulk_edit (opcional).kind(string) somente propose_page_scale (obrigatório): tipo de página, ex.: "location pages".rowSourceKind(string) somente propose_page_scale (obrigatório): de onde vêm as linhas da página. Um de: ai, user, library, gbp_locations.rowPrompt(string) propose_page_scale, rowSourceKind=ai: dataset a gerar.rows(array) propose_page_scale, rowSourceKind=user: um objeto por página.libraryDatasetId(string) propose_page_scale, rowSourceKind=library: id do dataset a anexar.rowTarget(inteiro) somente propose_page_scale: número alvo de linhas/páginas.allowGenText(booleano) somente propose_page_scale: permitir texto de IA por linha (custa créditos).publishAsDraft(booleano) somente propose_page_scale: publicar páginas como rascunhos.pageTemplate(string) somente propose_page_scale: id do modelo integrado.topics(array) propose_content_sweep (obrigatório, até 50) e write_articles (obrigatório, 2-50). Um artigo distinto por tópico.taskType(string) somente propose_bulk_edit (obrigatório): o tipo de varredura, ex.: ctr_fix, schema, content_refresh.instruction(string) somente propose_bulk_edit: brief compartilhado por página.selectorKind(string) somente propose_bulk_edit: como selecionar páginas. Um de: urls, path_prefix, all_pages.urls(array) propose_bulk_edit, selectorKind=urls: as páginas.pathPrefix(string) propose_bulk_edit, selectorKind=path_prefix: o prefixo.segments(array) propose_bulk_edit: seletores avançados de modelo misto (substitui selectorKind/instruction).maxPages(inteiro) somente propose_bulk_edit: limitar o tamanho da varredura.autoPublish(booleano) somente write_articles: padrão false (encenar como rascunhos).content(string) somente save_article (obrigatório): corpo completo em Markdown.slug(string) somente save_article (obrigatório): o slug da URL.excerpt(string) somente save_article (obrigatório): o resumo.metaTitle(string) somente save_article: meta title.metaDescription(string) somente save_article: meta description.featuredImagePrompt(string) somente save_article (obrigatório): prompt de imagem.
* = obrigatório para essa ação. A lista completa de ferramentas detalhadas por trás destas, com cada esquema de entrada, está na referência REST.
Limites do plano gratuito
As chamadas de ferramentas de um workspace gratuito consomem a mesma cota mensal de perguntas do ChatSEO, compartilhada entre chat, MCP, a ponte de ferramentas REST e a CLI, então há um único medidor em todos os lugares. initialize e tools/list são sempre gratuitos; apenas tools/call consome uma pergunta. Sua primeira conexão credita 10 perguntas bônus além da cota mensal, suficientes para uma primeira auditoria completa. Quando a cota é esgotada, a chamada retorna um resultado isError com um link de upgrade em um clique, além de um link de indicação que credita perguntas gratuitas extras para ambos os lados. Workspaces pagos não são medidos por perguntas.
Independente do plano, cada chave tem limite de 60 chamadas de ferramentas por minuto e 1.000 por hora, suficiente para qualquer sessão real e uma proteção contra loops descontrolados. Para revogar o acesso: remova o conector no seu assistente, ou revogue a chave ou a concessão OAuth nas Configurações do SEOmatic. Qualquer uma das opções encerra a conexão imediatamente.
Solução de problemas
- O modelo pede seu domínio. Ele nunca precisa: toda ferramenta é limitada ao workspace conectado. Diga a ele para chamar a ferramenta diretamente. Ferramentas que aceitam um
domainusam seu próprio site como padrão quando omitido. - Nenhuma ferramenta de ação em tools/list. Esperado em um workspace gratuito ou uma chave sem
agents:act: a lista só mostra o que a chave pode chamar. Ferramentas de ação aparecem em qualquer plano pago. - Ferramentas de ação ausentes em um plano pago. O agente de SEO pode estar desativado para o workspace, ou a conexão que uma ação precisa (por exemplo, seu CMS) não está configurada. Verifique as Configurações no SEOmatic e reconecte.
- Workspace errado conectado. A concessão OAuth é limitada ao único workspace que você escolheu no consentimento. Remova o conector e reconecte, escolhendo o workspace correto.
- Quer uma auditoria guiada? Instale a habilidade gratuita seomatic-seo-audit junto com o conector: ela conduz seu assistente por uma auditoria completa e metódica do seu site, em vez de perguntas avulsas.
- Falhas de ferramentas. Falhas retornam como resultados
isErrorcom um motivo em linguagem simples que o modelo pode usar, nunca como erros opacos de transporte.

Cada página de área local costumava levar meio dia para criar e otimizar.
Com o SEOmatic, podemos criar centenas de páginas no mesmo tempo, o que ajuda nossos clientes a aproveitar melhor o orçamento.
Isso transformou como entregamos soluções de SEO escaláveis.
Will Hawkins
Diretor de Marketing, Digi-Business UK
Dê ao Seu Site uma Equipe de SEO
Agentes leem seus dados do Search Console, fazem o trabalho e comprovam o que realmente gerou resultado. Você decide o que é publicado.
Teste Gratuito de 14 Dias. Verificação de cartão de $1, reembolsada. Cancele Quando Quiser.