CertIndex MCP

официальный

Единственный MCP-сервер для сертификатной прозрачности. Поиск по 2.15B+ TLS-сертификатам, мониторинг доменов на предмет новых выпусков, потоковая передача глобального CT-потока вашему агенту.

Что можно делать с CertIndex MCP?

  • Поиск сертификатов по домену или издателю — Найдите TLS-сертификаты, соответствующие домену, CN, издателю или шаблону SAN с помощью search_certificates.
  • Получение сертификата по отпечатку — Загрузите полные данные PEM и метаданные журнала CT для конкретного SHA-256 отпечатка с помощью get_certificate.
  • Список всех сертификатов для домена — Получите все сертификаты, когда-либо выпущенные для точного домена, через get_domain_certificates, при необходимости отфильтрованные только по текущим действительным сертификатам.
  • Перечисление поддоменов, замеченных в журналах CT — Обнаружьте уникальные поддомены, наблюдаемые для домена, используя постраничную навигацию на основе курсора в get_subdomains.
  • Поиск сертификатов с истекающим сроком действия — Определите сертификаты для домена, срок действия которых истекает в течение заданного количества дней, с помощью get_expiring_certs.
  • Запуск глобального сканирования индекса — Отправьте асинхронный поиск подстрок по всему корпусу CT по CN или SAN с помощью submit_global_sweep, затем опросите результаты с помощью get_sweep_results.

Документация

certindex-mcp

CI PyPI License: MIT

MCP (Model Context Protocol) сервер, предоставляющий инструменты поиска Certificate Transparency от CertIndex любому MCP-совместимому клиенту (Claude Desktop, MCP Inspector, Continue и др.).

CertIndex индексирует весь публичный корпус CT (~5 млн сертификатов, пополняется ~100 тыс./день). Этот сервер оборачивает публичное REST API CertIndex, чтобы LLM могла задавать вопросы вроде:

  • "Перечисли все TLS-сертификаты, когда-либо выпущенные для example.com."
  • "Какие поддомены видел Let's Encrypt для mycompany.io?"
  • "Покажи сертификаты для api.mycompany.io, истекающие в ближайшие 30 дней."
  • "Извлеки полный PEM и метаданные CT-лога для SHA-256 <fingerprint>."

Зачем нужен этот репозиторий

Монорепозиторий CertIndex включает MCP-сервер (смонтированный на https://api.ctindex.io/mcp), который напрямую обращается к рабочему индексу Postgres. Этот автономный пакет — тонкая клиентская прослойка: он общается по MCP с вашим редактором/агентом и перенаправляет каждый вызов инструмента на хостируемое REST API CertIndex по HTTPS. Два следствия:

  1. Вам не нужна копия индекса — зарегистрируйтесь для получения бесплатного API-ключа на https://ctindex.io, и готово.
  2. Пакет имеет минимальные зависимости (mcp, httpx, pydantic) — легко аудировать, легко вендорить, без драйверов БД.

Установка

pip install certindex-mcp

Или с помощью uvx для разового использования:

uvx certindex-mcp

Чтобы установить последнюю версию для разработки из исходников:

pip install git+https://github.com/certindex/certindex-mcp

Быстрый старт — Claude Desktop

Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "certindex": {
      "command": "uvx",
      "args": ["certindex-mcp"],
      "env": {
        "CERTINDEX_API_KEY": "ctx_live_..."
      }
    }
  }
}

Перезапустите Claude Desktop. Десять инструментов CertIndex появятся в панели инструментов.

Инструменты

Десять инструментов, соответствующих хостируемому MCP-серверу CertIndex 1:1:

ИнструментЧто делаетВажные параметры
search_certificatesПоиск по CT-индексу по домену, CN, издателю, SAN, сроку действия или статусу wildcard.domain, cn, issuer, san, expired, is_wildcard, page/limit
get_certificateПолучить один сертификат по SHA-256 отпечатку.sha256, include_enrichment
get_domain_certificatesВсе сертификаты, когда-либо выпущенные для точного домена.valid_only, include_enrichment, include_signals (платные тарифы), page/limit
get_subdomainsПеречислить уникальные поддомены, замеченные в CT.Смещение (page/limit) или режим keyset-курсора — передайте cursor="" для начала, затем возвращайте next_cursor из каждого ответа
get_latest_certСамый последний действующий сертификат для домена.include_enrichment, include_signals, include_precerts (позволяет предсертификатам конкурировать за "последний")
get_expiring_certsСертификаты для домена, истекающие в течение days дней.days
submit_global_sweepЗапустить асинхронное, бездоменное сканирование всего индекса по подстроке CN/SAN (POST /v1/sweeps).cn/san_contains (3+ символов, хотя бы одно обязательно), issuer, is_wildcard, is_precert, expired, first_seen_*/not_after_* границы дат, strict_attribution, resume_token (продолжение после лимита результатов)
get_sweep_resultsПроверить задание сканирования и постранично вывести результаты по готовности (GET /v1/sweeps/{id}).sweep_id, page/limit (до 1 000)
get_usageУровень тарифа, текущее использование, оставшаяся квота и права.
get_historical_backfill_statusПроверить / запустить платное пополнение глубокой истории для домена.domain

Быстрый старт — MCP Inspector

export CERTINDEX_API_KEY=ctx_live_...
npx @modelcontextprotocol/inspector uvx certindex-mcp

Конфигурация

Переменная окруженияПо умолчаниюОписание
CERTINDEX_API_KEY(обязательно)Ваш API-ключ CertIndex. Создайте его на https://ctindex.io/app/keys
CERTINDEX_BASE_URLhttps://api.ctindex.ioПереопределение для собственных развертываний / staging
CERTINDEX_TIMEOUT30Тайм-аут HTTP на запрос (в секундах)

Безопасность

Валидация ввода, обработка ограничений скорости и наша позиция по цепочке поставок документированы в SECURITY.md. Пожалуйста, сообщайте об уязвимостях на security@ctindex.io, а не создавайте публичные задачи.

Разработка

git clone https://github.com/certindex/certindex-mcp
cd certindex-mcp
pip install -e ".[dev]"
pytest

CI работает на Python 3.11 / 3.12 / 3.13.

Лицензия

MIT © Участники CertIndex.