Citation Intelligence MCP

Servidor MCP gratuito: veja quais URLs ChatGPT, Claude, Perplexity, Gemini e Bing citam para qualquer consulta.

Documentação

Citation Intelligence MCP

Um servidor MCP gratuito e auto-hospedado que informa ao seu agente o que os LLMs citam — em Perplexity, Google AI Overviews, ChatGPT, Claude, Gemini e Bing.

npm version license node CI

O que é

Um servidor MCP para agentes e desenvolvedores que precisam saber quais URLs são citadas pelos mecanismos de busca com IA para qualquer consulta. Instale uma vez, consulte a partir de qualquer cliente compatível com MCP (Claude Desktop, Cursor, Claude Code, Continue, Cline, n8n, LangGraph). Auto-hospedado, sem conta, sem backend centralizado. Traga suas próprias chaves de API; nada é armazenado em um servidor remoto.

Para quem é

Instale isto se você:

  • Está construindo um agente que faz pesquisa e quer que ele cite fontes que os LLMs já confiam
  • É um desenvolvedor solo ou hacker independente verificando se seu SaaS aparece nas buscas com IA
  • É um criador de conteúdo confirmando se seus artigos estão sendo citados por ChatGPT, Claude ou Perplexity
  • É um profissional de SEO ou GEO que quer dados de citação programáticos sem um painel de $295-$499/mês
  • Gerencia um pipeline editorial e quer seleção de tópicos orientada por déficit de citações
  • Compara a visibilidade de concorrentes entre mecanismos de IA para qualquer nicho

NÃO instale isto se você quer:

  • Um painel de marketing polido com gráficos e assentos de equipe — tente Profound, AthenaHQ ou Otterly.AI
  • Um serviço hospedado com SLAs — isto é auto-hospedado por design
  • Rastreamento de citações para artigos acadêmicos — tente citecheck
  • 350M+ de prompts pré-modelados — isso é o Ahrefs Brand Radar

Por que isto existe

O mercado de rastreamento de citações de IA é dominado por painéis financiados por capital de risco a partir de $295/mês. Nenhum deles é MCP-first. Se você é um agente ou desenvolvedor que quer dados de citação canalizados diretamente para seu fluxo de trabalho — não para um login de SaaS — não existe uma ferramenta para você. Esta é essa ferramenta.


Ferramentas

As ferramentas estão agrupadas em sete namespaces: citations_*, domain_*, signals_*, panel_*, report_*, competitors_*, audit_*. O prefixo é a categoria da pergunta; o sufixo é a ação. Nomes de wire usam underscores (não pontos) para que clientes MCP baseados na API Anthropic (Claude Desktop, Claude Code) possam encaminhar a lista de ferramentas sem HTTP 400.

Comece com citations_provenance ou domain_am_i_cited. Resultados de mecanismo único (citations_check com um mecanismo fixado) são direcionais; o consenso entre vários mecanismos é o sinal honesto. Uma URL citada por 4 de 5 mecanismos é um achado muito diferente de uma citada por 1.

citations_* — nível de consulta: quem cita o quê, com qual evidência

FerramentaFinalidade
citations_provenanceFerramenta recomendada para começar. Distribui uma consulta entre mecanismos; matriz de consenso entre mecanismos por URL. Retorna interpretation_note por mecanismo.
citations_checkURLs citadas por Perplexity / Claude / ChatGPT / Gemini / Google AI Mode para uma consulta; ou classificação web via bing_serp / brave_serp
citations_evidenceExtrai o trecho citado de raw_answer para cada citação (o porquê, não apenas o fato)
citations_predictProbabilidade de citação a partir de sinais públicos — sem disparar LLM
citations_trendRelatório de série temporal da taxa de citação + deltas de ganhos/perdas por consulta
citations_freshnessPontuação de atualidade (meia-vida=365d) para as páginas que um mecanismo cita

domain_* — nível de domínio: sou citado, para quê

FerramentaFinalidade
domain_am_i_citedVerificação de citação de domínio. Com engine=auto (padrão): distribui entre todos os mecanismos LLM disponíveis, retorna detalhamento por mecanismo + consenso entre mecanismos. Fixe engine= para reduzir custo.
domain_cited_forConsultas pelas quais o domínio foi citado, a partir do cache local
domain_cited_for_diffDiff de domain_cited_for entre duas janelas de tempo para um domínio

signals_* — sinais externos: AI Overview, Wikipedia, GSC, posição de answer box

FerramentaFinalidade
signals_ai_overviewPresença no Google AI Overview + fontes citadas
signals_wikipediaLista artigos da Wikipedia que referenciam um domínio (zero chaves)
signals_gsc_gapUne o desempenho do Google Search Console com o status de citação de IA
signals_answer_boxClassifica cada primeira menção de citação em raw_answer em terços inicial/médio/final

panel_* — painéis de consultas salvos (listas de monitoramento editorial)

FerramentaFinalidade
panel_trackSalvar / carregar / listar painéis de consultas nomeados (listas de monitoramento editorial)
panel_runExecuta um painel através de domain_am_i_cited e tira um snapshot para o disco

report_* — artefatos de relatório prontos para uso

FerramentaFinalidade
report_visibilityRelatório de visibilidade de IA em uma única chamada sobre um conjunto de consultas (ou painel): taxa de citação (frequência de menção), share of voice vs. concorrentes, classificação média e sentimento da marca. Retorna dados estruturados + um artefato Markdown para uma página pública.

competitors_* — cenário competitivo por consulta

FerramentaFinalidade
competitors_canonical_setDomínios mais citados por consulta, agregados entre mecanismos
competitors_competeSnapshot competitivo ponta a ponta: sua URL vs. concorrentes mais citados
competitors_comparecitations_predict lado a lado entre 2-10 URLs

audit_* — verificações corrigíveis de on-page / on-site

FerramentaFinalidade
audit_schemaValidação profunda de schema.org — campos obrigatórios por @type, JSON-LD malformado
audit_structured_dataDiagnósticos de schema.org orientados à correção + patches sugeridos
audit_crawler_accessVerifica se GPTBot / ClaudeBot / PerplexityBot / CCBot / Google-Extended etc. podem buscar uma URL
audit_sitemapcitations_predict em massa em todas as URLs de um sitemap, dos piores primeiro
audit_sitemap_mapCruza URLs do sitemap com citações em cache (inverso de audit_sitemap)
audit_llms_txtGera um llms.txt (https://llmstxt.org) a partir de um sitemap

Prompts

Modelos de prompt no lado do servidor que o cliente pode oferecer aos usuários finais (chame via lista de prompts do MCP):

  • audit_citation_readiness(url) — encadeia citations_predict + audit_schema
  • audit_competitor_snapshot(query, your_url?) — encadeia competitors_canonical_set + competitors_compete
  • audit_crawler_checkup(url) — executa audit_crawler_access e escreve uma lista de remediação
  • audit_gap_analysis(domain, days?) — conduz signals_gsc_gap e sugere próximos passos
  • audit_sitemap_coverage(sitemap_url) — executa audit_sitemap_map e recomenda prioridades

Recursos

Visualizações de cache que o cliente pode ler ou assinar (nenhuma chamada de ferramenta necessária):

  • citation://cache/summary — contagens de entradas por tipo/mecanismo, consultas/URLs únicas, mais antigas/mais recentes
  • citation://panels — painéis salvos + contagens de snapshots por painel
  • citation://docs/llms-txt — primer llms.txt (markdown)
  • citation://docs/ai-crawlers — folha de referência de crawlers de IA (markdown)
  • citation://domain/{domain}/cited-for — modelo dinâmico: citações para {domain}

O que isto realmente mede

Cada resposta inclui um campo surface que informa exatamente como os dados foram coletados. Entender isso é importante antes de tirar conclusões.

SuperfícieMecanismosO que significa
consumer_scrapeperplexity, google_ai_modeProxied através de um produto real de busca de IA voltado ao consumidor. O mais próximo do que seus usuários veem.
api_proxyclaude, openai, geminiChamada de API a um LLM com busca habilitada. Pode diferir do comportamento do produto de consumo — versões diferentes de modelo, sem lógica de ranqueamento de UI, sem personalização. Use como proxy direcional, não como verdade absoluta.
web_rankbing_serp, brave_serpClassificação de busca web tradicional (não citação de LLM). Mede se uma URL aparece nos resultados de SERP, não se um LLM a cita.
static_signalcitations_predict, signals_wikipediaSinal offline calculado a partir de dados públicos. Nenhuma consulta LLM ao vivo.

Notas por mecanismo

perplexity (consumer_scrape) — Sonar Pro via API da Perplexity com um prompt de sistema equivalente ao de consumo. Razoavelmente próximo de Perplexity.ai. As citações vêm de search_results na resposta; o fallback citations contém entradas apenas com URL, sem título.

claude (api_proxy) — Claude Sonnet via API Messages da Anthropic com a ferramenta web_search habilitada. O produto de consumo Claude.ai usa roteamento e lógica de ranqueamento diferentes. O comportamento de citação pode diferir, especialmente para consultas recentes/sensíveis a tempo.

openai (api_proxy) — gpt-4o + a ferramenta web_search_preview via API Responses da OpenAI. Substitui o alias gpt-4o-search-preview que a OpenAI aposentou; gpt-4o base mais a ferramenta é o caminho suportado.

gemini (api_proxy) — Gemini 2.5 Pro via API Generative Language com grounding google_search. O Gemini de consumo usa o mesmo índice de grounding, mas re-ranqueamento diferente. Os resultados são direcionais.

google_ai_mode (consumer_scrape) — Resultados do Google AI Mode via SerpAPI. O mais próximo do que os usuários veem no Google Search. Requer SERPAPI_KEY.

bing_serp / brave_serp (web_rank) — Classificação SERP tradicional. NÃO mede citações de LLM. Use citations_check com esses mecanismos para comparar a classificação de busca orgânica com a classificação de citação de LLM. domain_am_i_cited recusa esses mecanismos — ele só mede o comportamento de LLM.

A natureza proxy dos mecanismos api_proxy é um recurso, não um bug: permite executar verificações de citação sem consumir cota cara de produtos de consumo. Só não relate números de API-proxy como "ChatGPT cita você" sem a ressalva.

Cada resposta de ferramenta inclui um campo interpretation_note que resume a fidelidade em uma frase. Classificações completas de fidelidade por mecanismo: docs/surface-fidelity.md.


Início rápido

npx -y @automatelab/citation-intelligence

Requer Node 20 ou posterior.

Claude Desktop

Adicione a %APPDATA%\Claude\claude_desktop_config.json (Windows) ou ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "citation-intelligence": {
      "command": "npx",
      "args": ["-y", "@automatelab/citation-intelligence"],
      "env": {
        "PERPLEXITY_API_KEY": "pplx-...",
        "SERPAPI_KEY": "...",
        "ANTHROPIC_API_KEY": "sk-ant-...",
        "OPENAI_API_KEY": "sk-...",
        "GEMINI_API_KEY": "..."
      }
    }
  }
}

Defina apenas as chaves que você tem. Qualquer cliente MCP que suporte transporte stdio funciona — mesmo padrão command / args.

Como permanece gratuito

  • Sem backend central. O servidor é executado na sua máquina. Nada é enviado.
  • Camada gratuita primeiro. SerpAPI oferece 100 consultas gratuitas de Google AI Overview/mês. Bing Web Search tem uma camada gratuita. Perplexity oferece acesso gratuito ao Sonar na inscrição.
  • Traga suas próprias chaves pagas se quiser os mecanismos premium (Claude, ChatGPT, Gemini). As chaves passam direto para o fornecedor e nunca tocam terceiros.
  • Cache local em ~/.config/citation-intelligence/cache.json. Consultas repetidas acessam o cache, não a API. TTL padrão: 7 dias.
  • citations_predict roda com zero chaves — ele pontua a probabilidade de citação a partir de sinais públicos (Wikipedia, schema.org, llms.txt, GitHub) sem disparar nenhum LLM.

Privacidade

  • Todas as chamadas de API vão da sua máquina diretamente ao fornecedor (Anthropic, OpenAI, Google, Perplexity, Bing, SerpAPI).
  • Sem proxy. Sem analytics. Sem telemetria por padrão.
  • As chaves de API são lidas de variáveis de ambiente no processo MCP — nunca registradas em log, nunca persistidas.
  • O arquivo de cache fica em ~/.config/citation-intelligence/cache.json. Exclua-o a qualquer momento.

Variáveis de ambiente

VariávelFinalidadeCamada gratuita?
PERPLEXITY_API_KEYcitations_check (perplexity — consumer_scrape)Sim
SERPAPI_KEYsignals_ai_overview + citations_check (google_ai_mode — consumer_scrape)100/mês gratuitos
ANTHROPIC_API_KEYcitations_check (claude — api_proxy)Somente pago
OPENAI_API_KEYcitations_check (openai — api_proxy)Somente pago
GEMINI_API_KEYcitations_check (gemini — api_proxy)Sim
BING_API_KEYcitations_check (bing_serp — web_rank)Sim
BRAVE_API_KEYcitations_check (brave_serp — web_rank)Sim (2000/mês)
CITATION_CACHE_TTL_DAYSTTL do cache para entradas citations_check (padrão 7)n/a
CITATION_AI_OVERVIEW_TTL_DAYSTTL do cache para entradas signals_ai_overview (padrão 1)n/a
CITATION_CONFIG_DIRSubstitui o diretório de configuração (padrão ~/.config/citation-intelligence)n/a

Exemplo: estou sendo citado?

You: For the queries "best AI citation tracker", "MCP for AI search", "self-hosted GEO tool",
     is automatelab.tech cited?

(agent invokes `domain_am_i_cited`)

Result:
{
  "domain": "automatelab.tech",
  "engine": "perplexity",
  "results": [
    { "query": "best AI citation tracker",   "cited": true,  "rank": 4 },
    { "query": "MCP for AI search",          "cited": true,  "rank": 1 },
    { "query": "self-hosted GEO tool",       "cited": false, "matching_urls": [] }
  ],
  "summary": {
    "queries_total": 3,
    "queries_cited": 2,
    "citation_rate": 0.67,
    "average_rank": 2.5
  }
}

Exemplo: prever probabilidade de citação (nenhuma chave necessária)

You: How likely is https://example.com/blog/post to be cited by AI?

(agent invokes `citations_predict`)

Result:
{
  "url": "https://example.com/blog/post",
  "score": 62,
  "grade": "C",
  "signals": {
    "wikipedia_linked": false,
    "github_referenced": false,
    "reddit_referenced": true,
    "llms_txt_present": true,
    "https": true,
    "has_article_schema": true,
    "has_faq_schema": false,
    "has_breadcrumb_schema": true,
    "canonical_clean": true,
    "word_count": 1850,
    "reading_time_minutes": 8,
    "h2_count": 7,
    "h2_question_count": 1,
    "authority_link_count": 2,
    "external_link_count": 6,
    "internal_link_count": 11,
    "last_modified_days_ago": 42,
    "has_open_graph": true
  },
  "fixes": [
    { "signal": "has_faq_schema", "suggestion": "Page already has question-style H2s. Wrap them in FAQPage JSON-LD - high-leverage win.", "estimated_lift": "high" },
    { "signal": "h2_question_count", "suggestion": "Reframe at least 2 H2s as questions users actually ask...", "estimated_lift": "medium" }
  ]
}

O sinal da Wikipedia é medido (ele se correlaciona com citação), mas nenhuma sugestão de "vá buscar um artigo na Wikipedia" é emitida — o conselho seria não acionável. A pontuação é dividida em seis categorias — autoridade de domínio, dados estruturados, profundidade de conteúdo, grafo de links, atualidade, metadados — então uma página superficial e uma página profunda no mesmo domínio recebem pontuações significativamente diferentes.


Receitas de workflow

Padrões concretos que compõem as 26 ferramentas em algo útil. Os custos assumem ChatGPT ou Perplexity a ~$0,01–0,03/consulta.

1. Rastreador semanal de citações

O padrão de maior ROI. Escolha 20–30 consultas do seu backlog editorial, tire snapshots semanais e observe a tendência da taxa.

# One-time setup
panel_track name="editorial-watchlist" domain="example.com" action="save"
            queries=["best widget tutorial", "how to set up X", ...]

# Weekly cron (5 min, ~$0.20-0.60 per run)
panel_run name="editorial-watchlist"

# Anytime
citations_trend panel="editorial-watchlist"

citations_trend retorna deltas por consulta: quais consultas mudaram de cited: false para cited: true desde o primeiro snapshot. Essa é a sua métrica real de impacto editorial.

2. Portão de pré-publicação

Antes de publicar um post, descubra quem detém o espaço de citação e se vale a pena competir por ele.

# 1. Is there an AI Overview to compete for?
signals_ai_overview query="<target query>"

# 2. Who is cited today?
citations_check query="<target query>"

# 3. After publish + 14 days: did the post break in?
domain_am_i_cited domain="example.com" queries=["<target query>"]

Se citations_check retornar 5+ concorrentes fortes em uma consulta de baixo volume, escolha um ângulo diferente. Se ai_overview_present: false, a consulta não tem superfície de IA — reconsidere.

3. Auditoria em massa do site

Identifique problemas estruturais em todo o site, em todas as páginas, de uma só vez. Zero gasto com API.

audit_sitemap sitemap_url="https://example.com/sitemap.xml" limit=200

Retorna worst_first em ordem de pontuação de probabilidade de citação. Revela schema ausente, canônicos conflitantes, /llms.txt ausente, HTTPS quebrado.

4. Lacuna de sinais do concorrente

Você não é citado; eles são. Por quê?

# 1. Find the top-cited URLs for your target query
citations_check query="<query>"

# 2. Compare your URL to theirs signal-by-signal
competitors_compare urls=[
  "https://example.com/your-post",
  "https://competitor-1.com/their-post",
  "https://competitor-2.com/their-post"
]

diverging_signals é a lista de onde você está perdendo. Geralmente é óbvio quando você vê — eles têm schema de FAQ, referências do GitHub, links da Wikipedia — você não.

5. Lacuna entre ranking do Google e citação por IA

As vitórias editoriais mais próximas são consultas em que você já está no top 10 do Google, mas é invisível para a IA. Requer uma conta de serviço do GCP com escopo webmasters.readonly.

signals_gsc_gap
  domain="example.com"
  queries=["...editorial watchlist..."]
  start_date="2026-04-01"
  end_date="2026-05-01"

closest_wins retorna consultas com position <= 10 e ai_cited: false, ordenadas por impressões em ordem decrescente. Envie sinais de citação para essas URLs específicas primeiro.

6. Monitor de menções na Wikipedia

A Wikipedia é o sinal de maior correlação, mas o conselho "entre na Wikipedia" é inútil. Então, em vez disso: observe quando isso acontece organicamente.

signals_wikipedia domain="example.com" limit=50

Retorna URLs de artigos da Wikipedia que já linkam para o domínio. Execute novamente trimestralmente; a diferença é o seu alerta de "conseguimos uma citação da Wikipedia".

Schema.org

{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Citation Intelligence MCP",
  "applicationCategory": "DeveloperApplication",
  "operatingSystem": "Cross-platform",
  "description": "Self-hosted MCP server for querying AI citation data from Perplexity, Claude, ChatGPT, Gemini, Bing, and Google AI Overviews.",
  "offers": { "@type": "Offer", "price": "0" },
  "url": "https://github.com/AutomateLab-tech/citation-intelligence"
}

Contribuindo

Relatórios de bugs, ideias de recursos e PRs são bem-vindos. Veja CONTRIBUTING.md.

Segurança

Reporte uma vulnerabilidade via SECURITY.md.

Licença

MIT — veja LICENSE.

Construído por automatelab.tech