AutomateLab-tech/citation-intelligence

AutomateLab-tech/citation-intelligence

от automatelab-tech
MCP сервер для отслеживания цитирований URL в AI-поисковиках (Perplexity, ChatGPT, Claude, Gemini). Локальная установка, без аккаунта. Агенты и разработчики получают programmatic данные о цитированиях, видимости сайта и конкурентов. Идеален для SEO и GEO без подписок.

Citation Intelligence MCP

A free, self-hosted MCP server that tells your agent what LLMs cite - across Perplexity, Google AI Overviews, ChatGPT, Claude, Gemini, and Bing.

npm version license node CI

What this is

An MCP server for agents and developers who need to know which URLs get cited by AI search engines for any query. Install once, query from any MCP-compatible client (Claude Desktop, Cursor, Claude Code, Continue, Cline, n8n, LangGraph). Self-hosted, no account, no centralized backend. Bring your own API keys; nothing is stored on a remote server.

Who this is for

Install this if you're:

  • Building an agent that does research and want it to cite sources LLMs already trust
  • A solo dev or indie hacker checking whether your SaaS is showing up in AI search
  • A content creator confirming your articles are being cited by ChatGPT, Claude, or Perplexity
  • An SEO or GEO practitioner who wants programmatic citation data without a $295-$499/mo dashboard
  • Running an editorial pipeline and want citation-deficit-driven topic selection
  • Comparing competitor visibility across AI engines for any niche
Инструменты были проиндексированы:
audit_crawler_accessтолько чтениеидемпотентныйвнешний мир

Проверяет, могут ли основные AI-краулеры (GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, CCBot, Google-Extended, Applebot-Extended, Bytespider, Meta-ExternalAgent, плюс User-Agent для сбора в реальном времени) получить URL. Разбирает robots.txt и выполняет live-запрос GET с User-Agent каждого бота. Выявляет блокировки robots.txt И ограничения по User-Agent, которые нарушают цитирование AI.

Параметры
  • botsstring[]

    Override the default bot list. Each entry is a User-Agent token (e.g. 'GPTBot', 'ClaudeBot').

  • fetch_with_uaboolean

    If true, do a live GET as each bot's User-Agent and report status. Disable to only parse robots.txt (no extra requests).

  • urlstringобязательный

    Page URL to test for AI crawler access.

audit_llms_txtтолько чтениеидемпотентныйвнешний мир

Генерирует файл llms.txt (спецификация https://llmstxt.org) из sitemap. Разбирает sitemap.xml и вложенные индексы, группирует URL-адреса по корневому пути и выводит документ Markdown с H1+описание+списки ссылок по разделам. fetch_titles=true извлекает <title> для каждого URL-адреса (медленнее, но вывод богаче).

Параметры
  • fetch_titlesboolean

    If true, fetch each URL to extract <title> for richer links. Slower (one HEAD-ish GET per URL). Default false uses the URL path as the link text.

  • limitinteger

    Max URLs to include. Truncated after sitemap parse, before title fetch.

  • site_descriptionstring

    One-paragraph site description placed under the H1. Optional but strongly recommended.

  • sitemap_urlstringобязательный

    URL of sitemap.xml (or sitemap index). Nested sitemaps are followed.

  • site_titlestringобязательный

    Site title - top H1 in the generated llms.txt file.

audit_schemaтолько чтениеидемпотентныйвнешний мир

Выполняет глубокую проверку schema.org для URL. Разбирает каждый блок JSON-LD и узел микроразметки, проверяет обязательные поля для каждого @type (Article требует headline+author+datePublished, FAQPage — mainEntity, HowTo — step и т.д.) и отмечает отсутствующие поля и некорректный JSON-LD. Возвращает список проблем и вердикт valid/invalid. Используется для исправления ошибок структурированных данных, которые predict_citation отмечает, но не может объяснить.

Параметры
  • urlstringобязательный

    URL whose JSON-LD and microdata to validate against schema.org expected fields.

audit_sitemapтолько чтениеидемпотентныйвнешний мир

Извлекает sitemap.xml (или индекс карты сайта) и запускает predict_citation для каждого URL. Возвращает результаты, отсортированные от наихудших к лучшим. Выявляет системные проблемы на всём сайте за один проход. Не требуется ни одного ключа движка.

Параметры
  • concurrencyinteger

    Parallel predict_citation calls. Higher is faster but more rate-limit risk.

  • limitinteger

    Max URLs to score. Sitemap is sliced after parsing.

  • sitemap_urlstringобязательный

    URL of sitemap.xml (or a sitemap index). Nested sitemaps are followed.

audit_sitemap_mapтолько чтениеидемпотентный

Сопоставляет карту сайта с кэшем цитирований. Для каждого URL из карты сайта сообщает, содержится ли он в кэшированных цитированиях (и сколько запросов/движков его процитировало). Обратная функция audit_sitemap: не «насколько цитируем каждый URL», а «был ли каждый URL уже процитирован». Кэш должен быть предварительно заполнен с помощью check_citations или run_panel.

Параметры
  • domainstring

    Domain to look up citations for. If omitted, inferred from the sitemap host.

  • limitinteger

    Max sitemap URLs to consider.

  • sincestring

    ISO date floor; only count citations recorded on or after this date.

  • sitemap_urlstringобязательный

    URL of sitemap.xml (or a sitemap index). Nested sitemaps are followed.

audit_structured_dataтолько чтениеидемпотентныйвнешний мир

Предлагает недостающие дополнения JSON-LD для URL. Загружает страницу, обнаруживает существующие типы схемы и возвращает готовые к вставке шаблоны для типов, которые отсутствуют, но на которые указывает содержимое страницы (BlogPosting по og:type=article или подписям авторов, FAQPage по парам вопрос-ответ, HowTo по нумерованным шагам, BreadcrumbList по вложенным путям, Organization на домашних страницах). Шаблоны предварительно заполняются из метаданных страницы, если это возможно; поля с пометкой FILL: необходимо заполнить вручную.

Параметры
  • urlstringобязательный

    URL to inspect for missing JSON-LD. The page is fetched and its content signals are used to suggest schema types.

citations_checkидемпотентныйвнешний мир

Возвращает URL-адреса, указанные AI-движком (Perplexity, Claude, ChatGPT, Gemini или Bing) для запроса. Используйте это, когда агент или пользователь хочет увидеть, на какие источники опирается AI-поисковик при формировании ответов. Требуется хотя бы один ключ API движка; автоматически выбирает первый доступный.

Параметры
  • engineenum

    Engine to query. • perplexity / google_ai_mode — consumer_scrape: closest to real product behavior. • claude / openai / gemini — api_proxy: API-tier call, may differ from consumer product. • bing_serp / brave_serp — web_rank: traditional SERP rank, NOT LLM citation. 'auto' prefers SerpAPI (google_ai_mode) → Perplexity → LLM adapters → web_rank.

  • max_resultsinteger

    Maximum citations to return.

  • perplexity_modelstring

    Perplexity model override (e.g. 'sonar', 'sonar-pro', 'sonar-reasoning'). Only used when engine='perplexity'. Defaults to 'sonar-pro'.

  • querystringобязательный

    The search query to test (what would a user ask an AI?)

citations_evidenceтолько чтениеидемпотентныйвнешний мир

Извлекает процитированный фрагмент из сырого ответа AI-движка для каждой цитаты. Вызывает check_citations, затем для каждого возвращённого URL находит первое упоминание в raw_answer и возвращает контекстное окно вместе с ближайшим цитируемым отрезком или содержащим предложением. Позволяет увидеть, почему движок сослался на URL, а не просто что он это сделал. Возвращает 'not found' для движков без raw_answer (Bing, Brave).

Параметры
  • context_charsinteger

    Half-width of the snippet window around each citation mention (chars). Total snippet is up to 2x this.

  • engineenum

    AI engine to query. web_rank engines (bing_serp, brave_serp) lack raw_answer and return no evidence.

  • max_resultsinteger

    Max citations to extract evidence for.

  • querystringобязательный

    Search query whose AI answer to extract citation evidence from.

citations_freshnessтолько чтениеидемпотентныйвнешний мир

Оценивает свежесть страниц, процитированных для запроса. Вызывает check_citations, затем собирает dateModified для каждого процитированного URL, возвращает оценку recency_score от 0 до 100 (halflife=365d) плюс категорию свежести для каждого URL (fresh/current/stale/ancient/unknown). Выявляет запросы, где ИИ цитирует устаревший контент - возможность предоставить более свежий.

Параметры
  • engineenum

    AI engine to query for the citation set.

  • max_resultsinteger

    How many cited URLs to inspect.

  • querystringобязательный

    Search query whose cited URLs to score for freshness.

citations_predictтолько чтениеидемпотентныйвнешний мир

Оценивает вероятность цитирования URL на основе публичных сигналов (наличие ссылок в Wikipedia, разметка schema.org, /llms.txt, упоминания на GitHub и Reddit, гигиена canonical, HTTPS). LLM не используется, всё эвристика. Возвращает оценку от 0 до 100, уровень, разбивку сигналов и ранжированные исправления.

Параметры
  • urlstringобязательный

    URL to score for citation likelihood. Must be absolute http(s).

citations_provenanceтолько чтениеидемпотентныйвнешний мир

Распределяет запрос по нескольким AI-движкам и сообщает консенсус между движками для каждого URL. Возвращает каждый уникальный цитируемый URL со списком движков, которые его процитировали, плюс список consensus_urls (URL, процитированные ВСЕМИ движками). Высокий engine_count = сильный сигнал консенсуса между движками; engine_count=1 = специфичный для одного движка.

Параметры
  • enginesenum[]

    Engines to query. If omitted, uses all LLM engines with a configured API key (perplexity, claude, openai, gemini, google_ai_mode). Include bing_serp/brave_serp only when you explicitly want web_rank comparison.

  • max_resultsinteger

    Max citations per engine.

  • querystringобязательный

    Search query to fan out across multiple engines.

citations_trendтолько чтениеидемпотентный

Сообщает показатель цитируемости за период для панели из сохранённых снимков. Только чтение; только кэш: не совершает вызовов API к каким-либо AI-движкам и не расходует квоту API. Читает файлы снимков из <config>/snapshots/<panel>/. Возвращает: snapshots[] (одна запись на каждый вызов panel_run, каждая с меткой времени и показателем цитируемости), а также дельты на запрос (добавлено/потеряно/без изменений), сравнивая первый и последний снимок. Возвращает пустую серию, если снимков ещё нет. Не требует аутентификации. Без ограничений по частоте. Используйте panel_run для накопления снимков; используйте since для ограничения временного окна.

Параметры
  • panelstringобязательный

    Panel name to report on.

  • sincestring

    ISO date floor, e.g. '2026-01-01'. Only include snapshots on or after.

competitors_canonical_setтолько чтениеидемпотентныйвнешний мир

Распределяет запрос по поисковым системам и собирает цитирования по зарегистрированным доменам (не по URL). Возвращает топ доменов конкурентов, ранжированных по межсистемному консенсусу, с разбивкой по каждой системе и лучшими URL для каждого домена. Используется для определения канонического набора конкурентов для запроса — доменов, которые каждая система считает авторитетными.

Параметры
  • enginesenum[]

    Engines to query. If omitted, uses all LLM engines with a configured API key (google_ai_mode, perplexity, claude, openai, gemini). Include bing_serp/brave_serp only for web_rank comparison.

  • exclude_domainsstring[]

    Domains to filter out (e.g. your own brand, Wikipedia, Reddit). Suffix-match.

  • max_resultsinteger

    Max citations per engine.

  • querystringобязательный

    Search query to fan out across engines.

  • top_ninteger

    Max competitor domains to return.

competitors_compareтолько чтениеидемпотентныйвнешний мир

Запускает predict_citation для 2-10 URL и возвращает сравнительную таблицу сигналов, а также список сигналов, по которым URL расходятся. Используется для сравнения вашего URL с наиболее цитируемыми конкурентами по тому же запросу.

Параметры
  • urlsstring[]обязательный

    URLs to compare side-by-side. 2-10 URLs. One is typically yours and the rest are cited competitors.

competitors_competeтолько чтениеидемпотентныйвнешний мир

Сквозной конкурентный срез для одного запроса. Вызывает check_citations, чтобы получить указанные URL, затем запускает compare_domains для your_url по сравнению с лучшими упомянутыми конкурентами. Возвращает ваш балл, средний балл конкурентов и разрыв.

Параметры
  • engineenum

    AI engine to query for the citation set. 'auto' picks the first available key.

  • max_competitorsinteger

    How many cited URLs to compare against your_url. Capped at 9 (compare_domains accepts max 10 URLs total including yours).

  • querystringобязательный

    Search query to test (what would a user ask an AI?).

  • your_urlstringобязательный

    Your URL to benchmark against the cited competitors.

domain_am_i_citedидемпотентныйвнешний мир

Проверяет, цитируется ли домен AI-движком в кластере запросов. Возвращает для каждого запроса наличие, позицию и сводку по частоте цитирования. Используется для оценки видимости бренда, продукта или контентного сайта в AI-поиске.

Параметры
  • domainstringобязательный

    Domain to check, e.g. 'automatelab.tech' (without protocol).

  • engineenum

    LLM engine to check for citations. 'auto' runs all available LLM engines and returns per-engine breakdown + cross-engine consensus. Pin to a specific engine to reduce cost. 'bing_serp' and 'brave_serp' measure web rank, not LLM citations — use check_citations for those.

  • queriesstring[]обязательный

    Queries to test the domain against. 1-20 queries per call.

domain_cited_forтолько чтениеидемпотентный

Перечисляет запросы, по которым указанный домен цитируется, извлечённые из локального кэша. Формирует корпус, сначала вызывая check_citations или am_i_cited; cited_for запрашивает его без траты API-бюджета.

Параметры
  • domainstringобязательный

    Domain to look up, e.g. 'automatelab.tech'.

  • engineenum

    Filter by engine. Omit to include all.

  • limitinteger

    Maximum results.

  • sincestring

    ISO date floor, e.g. '2026-01-01'. Only return entries fetched on or after this date.

domain_cited_for_diffтолько чтениеидемпотентный

Вычисляет разницу cited_for между двумя временными окнами для домена. Возвращает запросы, которые появились (цитируются сейчас, но не цитировались до baseline_until) и запросы, которые исчезли (цитировались раньше, но не цитируются с current_since). Только кэш, без обращения к API. Используйте для отслеживания изменения цитируемости с течением времени после публикации или миграции контента.

Параметры
  • baseline_untilstringобязательный

    ISO date (or ISO datetime). Baseline window = all cache entries fetched on or before this timestamp.

  • current_sincestring

    ISO date floor for the 'current' window. Defaults to baseline_until.

  • domainstringобязательный

    Domain to diff, e.g. 'automatelab.tech'.

  • engineenum

    Filter by engine. Omit to include all.

panel_runидемпотентныйвнешний мир

Запускает сохранённую панель через am_i_cited и добавляет снимок с меткой времени. Побочные эффекты: выполняет внешние API-вызовы к настроенному AI-движку (расходует квоту API); записывает один файл снимка на диск по пути <config>/snapshots/<panel>/<iso>.json. Требуется как минимум один ключ API движка (тот же, что и для am_i_cited). Возвращает для каждого запроса наличие цитирования и сводку citation_rate для запуска. Сначала используйте panel_track для создания панели; используйте citations_trend для чтения накопленного тренда после нескольких запусков.

Параметры
  • domainstring

    Override the panel's default domain for this run.

  • engineenum

    AI engine to query. Use bing_serp/brave_serp for web_rank comparison only — am_i_cited will refuse them.

  • namestringобязательный

    Panel name previously saved via track_queries.

panel_trackидемпотентный

Сохраняет, загружает или выводит список именованных панелей запросов. Панель — это постоянный набор запросов, за которыми вы хотите следить с течением времени (например, editorial-watchlist). Используйте action=save с queries[] для создания, action=load для чтения, action=list для перечисления. Панели находятся в <config>/panels/<name>.json.

Параметры
  • actionenum

    'save' writes the panel, 'load' returns an existing panel, 'list' enumerates all panels.

  • domainstring

    Default domain to track for this panel, e.g. 'automatelab.tech'.

  • namestringобязательный

    Panel name, e.g. 'editorial-watchlist'. Used to save and recall the query set.

  • queriesstring[]

    Queries to save under this panel. Omit to read the existing panel.

report_visibilityидемпотентныйвнешний мир

Готовый отчёт по видимости в ИИ для домена по набору запросов. Формирует вызовы check_citations для каждого запроса (или сохранённой панели) и возвращает метрики, которые трекеры видимости в ИИ продают как дашборд, за один запрос: частота упоминаний (citation_rate), доля голоса по сравнению с конкурентами, средняя позиция при цитировании и тональность бренда из текста ответа. Побочные эффекты: один вызов check_citations на запрос (тратит квоту API для некэшированных запросов; кэшированные запросы бесплатны). Возвращает структурированную сводку + top_domains + per_query, а также отформатированный отчёт в Markdown (include_markdown=true), подходящий для публичной страницы. Укажите queries[] или имя панели. Выбор движка такой же, как в check_citations.

Параметры
  • brand_termsstring[]

    Brand name variants to detect in answer text for sentiment (defaults to the domain's second-level label).

  • competitorsstring[]

    Optional competitor domains to surface explicitly in the share-of-voice table.

  • domainstringобязательный

    The domain you are measuring visibility for (e.g. automatelab.tech).

  • engineenum

    AI engine to query. 'auto' picks the first configured key. Same selection as check_citations.

  • include_markdownboolean

    If true (default), include a rendered Markdown report under markdown.

  • max_resultsinteger

    Max citations to pull per query.

  • panelstring

    Name of a saved panel (see panel_track) to pull queries from. Provide this OR queries.

  • queriesstring[]

    Queries to run. Provide this OR panel. Each is sent to the AI engine via check_citations.

signals_ai_overviewидемпотентныйвнешний мир

Проверяет, показывает ли Google AI Overview для запроса, и какие URL он цитирует. Использует SerpAPI (бесплатный тариф: 100/месяц). Установите SERPAPI_KEY.

Параметры
  • hlstring

    Language code, default 'en'.

  • locationstring

    Location string, e.g. 'United States'. Affects AI Overview eligibility.

  • querystringобязательный

    Search query to check for Google AI Overview.

signals_answer_boxтолько чтениеидемпотентныйвнешний мир

Определяет местоположение каждого указанного URL в исходном тексте ответа AI. Вызывает check_citations, находит первое упоминание URL (или имени хоста) каждой цитаты в raw_answer и распределяет по позиции символа на раннюю, среднюю и позднюю трети. Показывает, цитируется ли ваш URL в начале или зарыт ближе к концу. Возвращает 'unknown' для движков без raw_answer (Bing, Brave).

Параметры
  • engineenum

    AI engine to query. web_rank engines (bing_serp, brave_serp) lack raw_answer and will return position 'unknown'.

  • max_resultsinteger

    Max citations to locate.

  • querystringобязательный

    Search query whose AI answer to measure citation positions on.

signals_bing_gapтолько чтениеидемпотентныйвнешний мир

Объединяет статистику запросов Bing Webmaster Tools с am_i_cited для каждого запроса. Выявляет запросы, где домен хорошо ранжируется в Bing, но не цитируется в AI — побеждает ближайший редакционный источник. Индекс Bing служит основой для обоснования Copilot/ChatGPT/Perplexity, поэтому разрыв в ранжировании Bing — это разрыв в цитировании LLM. Требует BING_WEBMASTER_API_KEY (Bing Webmaster Tools -> Settings -> API Access).

Параметры
  • domainstringобязательный

    Domain to analyze, e.g. 'automatelab.tech'. Used for the citation check.

  • engineenum

    AI engine for the citation check.

  • queriesstring[]обязательный

    Queries to cross-reference. 1-20 per call.

  • site_urlstring

    Verified Bing Webmaster site URL. Defaults to 'https://<domain>/'. Bing uses the https origin WITH a trailing slash, NOT the sc-domain: form GSC uses.

signals_gsc_gapтолько чтениеидемпотентныйвнешний мир

Объединяет данные Google Search Console с am_i_cited по каждому запросу. Выявляет запросы, по которым домен хорошо ранжируется в Google, но не цитируется в AI — ближайшие редакционные выигрыши. Требует учётные данные сервисного аккаунта GCP (credentials_path или переменная окружения GOOGLE_APPLICATION_CREDENTIALS).

Параметры
  • credentials_pathstring

    Path to GCP service account JSON. Defaults to env GOOGLE_APPLICATION_CREDENTIALS.

  • domainstringобязательный

    Domain to analyze, e.g. 'automatelab.tech'. Used both for the GSC site URL and the citation check.

  • end_datestringобязательный

    ISO date for GSC range end, e.g. '2026-05-01'.

  • engineenum

    AI engine for the citation check.

  • queriesstring[]обязательный

    Queries to cross-reference. 1-20 per call.

  • site_urlstring

    Override the GSC siteUrl. Defaults to 'sc-domain:<domain>'.

  • start_datestringобязательный

    ISO date for GSC range start, e.g. '2026-04-01'.

signals_wikipediaтолько чтениеидемпотентныйвнешний мир

Выводит список статей Википедии, ссылающихся на указанный домен. Только чтение. Один HTTPS GET-запрос к API Википедии (en.wikipedia.org/w/api.php?action=query&list=exturlusage). Авторизация не требуется, API-ключи не нужны, ограничения по частоте запросов не превышают политику добросовестного использования публичного API Википедии (примерно 1 запрос/секунду). Возвращает заголовки статей и URL. Обратные ссылки из Википедии: самый сильный сигнал для обучающих корпусов LLM. Домен, процитированный в Википедии, с гораздо большей вероятностью появляется в обучающих данных и пулах цитирования ИИ. Используйте lang для запросов к неанглийским разделам Википедии.

Параметры
  • domainstringобязательный

    Domain to search for, e.g. 'automatelab.tech' (without protocol).

  • langstring

    Wikipedia language subdomain, e.g. 'en', 'de', 'fr'.

  • limitinteger

    Maximum mention rows to return.

Похожие MCP-сервера

sharozdawa/ai-visibility

sharozdawa/ai-visibility

MCP-сервер для отслеживания видимости бренда в ответах ChatGPT, Perplexity, Claude и Gemini. Рассчитывает score от 0 до 100, анализирует тональность и конкурентов. Помогает маркетологам и SEO-специ...

TypeScript9
AutomateLab-tech/seo-performance-mcp

AutomateLab-tech/seo-performance-mcp

MCP сервер для аудита контента: сводит данные из Search Console, аналитики и Clarity, выдаёт вердикт (обновить, расширить или удалить). Находит посты с падающим трафиком. Помогает контент-маркетоло...

TypeScript2
mukul-dutt/mentionsapi-mcp

mukul-dutt/mentionsapi-mcp

Сервер для отслеживания упоминаний бренда в AI-поиске. MentionsAPI позволяет AI-агенту проверять, где и как ИИ-системы упоминают ваш бренд. Подходит маркетологам для мониторинга видимости в результ...

JavaScript1
krissanders/ai-visibility-mcp

krissanders/ai-visibility-mcp

MCP-сервер для аудита и исправления видимости сайта для AI-поиска. Проверяет robots.txt, схему, ссылки на LLM, настройки Cloudflare и генерирует исправления. Помогает SEO-специалистам и владельцам ...

Python1
ahonn/mcp-server-gsc

ahonn/mcp-server-gsc

MCP сервер для работы с Google Search Console: получает до 25 000 строк поисковых данных, фильтрует по регулярным выражениям, автоматически находит Quick Wins. Полезен SEO-специалистам и разработчикам для углубленного анализа производительности сайта.

TypeScript263
lionkiii/google-searchconsole-mcp

lionkiii/google-searchconsole-mcp

Сервер MCP для Google Search Console даёт AI-ассистентам доступ к SEO-аналитике. Проверяйте индексацию URL, находите ключевые слова с высокими показами и низким CTR, сравнивайте периоды. Не требует...

JavaScript6
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин