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.
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
| Ferramenta | Finalidade |
|---|---|
citations_provenance | Ferramenta recomendada para começar. Distribui uma consulta entre mecanismos; matriz de consenso entre mecanismos por URL. Retorna interpretation_note por mecanismo. |
citations_check | URLs citadas por Perplexity / Claude / ChatGPT / Gemini / Google AI Mode para uma consulta; ou classificação web via bing_serp / brave_serp |
citations_evidence | Extrai o trecho citado de raw_answer para cada citação (o porquê, não apenas o fato) |
citations_predict | Probabilidade de citação a partir de sinais públicos — sem disparar LLM |
citations_trend | Relatório de série temporal da taxa de citação + deltas de ganhos/perdas por consulta |
citations_freshness | Pontuação de atualidade (meia-vida=365d) para as páginas que um mecanismo cita |
domain_* — nível de domínio: sou citado, para quê
| Ferramenta | Finalidade |
|---|---|
domain_am_i_cited | Verificaçã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_for | Consultas pelas quais o domínio foi citado, a partir do cache local |
domain_cited_for_diff | Diff 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
| Ferramenta | Finalidade |
|---|---|
signals_ai_overview | Presença no Google AI Overview + fontes citadas |
signals_wikipedia | Lista artigos da Wikipedia que referenciam um domínio (zero chaves) |
signals_gsc_gap | Une o desempenho do Google Search Console com o status de citação de IA |
signals_answer_box | Classifica 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)
| Ferramenta | Finalidade |
|---|---|
panel_track | Salvar / carregar / listar painéis de consultas nomeados (listas de monitoramento editorial) |
panel_run | Executa um painel através de domain_am_i_cited e tira um snapshot para o disco |
report_* — artefatos de relatório prontos para uso
| Ferramenta | Finalidade |
|---|---|
report_visibility | Relató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
| Ferramenta | Finalidade |
|---|---|
competitors_canonical_set | Domínios mais citados por consulta, agregados entre mecanismos |
competitors_compete | Snapshot competitivo ponta a ponta: sua URL vs. concorrentes mais citados |
competitors_compare | citations_predict lado a lado entre 2-10 URLs |
audit_* — verificações corrigíveis de on-page / on-site
| Ferramenta | Finalidade |
|---|---|
audit_schema | Validação profunda de schema.org — campos obrigatórios por @type, JSON-LD malformado |
audit_structured_data | Diagnósticos de schema.org orientados à correção + patches sugeridos |
audit_crawler_access | Verifica se GPTBot / ClaudeBot / PerplexityBot / CCBot / Google-Extended etc. podem buscar uma URL |
audit_sitemap | citations_predict em massa em todas as URLs de um sitemap, dos piores primeiro |
audit_sitemap_map | Cruza URLs do sitemap com citações em cache (inverso de audit_sitemap) |
audit_llms_txt | Gera 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)— encadeiacitations_predict+audit_schemaaudit_competitor_snapshot(query, your_url?)— encadeiacompetitors_canonical_set+competitors_competeaudit_crawler_checkup(url)— executaaudit_crawler_accesse escreve uma lista de remediaçãoaudit_gap_analysis(domain, days?)— conduzsignals_gsc_gape sugere próximos passosaudit_sitemap_coverage(sitemap_url)— executaaudit_sitemap_mape 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 recentescitation://panels— painéis salvos + contagens de snapshots por painelcitation://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ície | Mecanismos | O que significa |
|---|---|---|
consumer_scrape | perplexity, google_ai_mode | Proxied através de um produto real de busca de IA voltado ao consumidor. O mais próximo do que seus usuários veem. |
api_proxy | claude, openai, gemini | Chamada 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_rank | bing_serp, brave_serp | Classificaçã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_signal | citations_predict, signals_wikipedia | Sinal 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_predictroda 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ável | Finalidade | Camada gratuita? |
|---|---|---|
PERPLEXITY_API_KEY | citations_check (perplexity — consumer_scrape) | Sim |
SERPAPI_KEY | signals_ai_overview + citations_check (google_ai_mode — consumer_scrape) | 100/mês gratuitos |
ANTHROPIC_API_KEY | citations_check (claude — api_proxy) | Somente pago |
OPENAI_API_KEY | citations_check (openai — api_proxy) | Somente pago |
GEMINI_API_KEY | citations_check (gemini — api_proxy) | Sim |
BING_API_KEY | citations_check (bing_serp — web_rank) | Sim |
BRAVE_API_KEY | citations_check (brave_serp — web_rank) | Sim (2000/mês) |
CITATION_CACHE_TTL_DAYS | TTL do cache para entradas citations_check (padrão 7) | n/a |
CITATION_AI_OVERVIEW_TTL_DAYS | TTL do cache para entradas signals_ai_overview (padrão 1) | n/a |
CITATION_CONFIG_DIR | Substitui 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