CertIndex MCP

oficial

El único servidor MCP de transparencia de certificados. Busca más de 2.15B certificados TLS, monitorea dominios para nuevas emisiones, transmite el flujo global de CT a tu agente.

¿Qué puedes hacer con CertIndex MCP?

  • Buscar certificados por dominio o emisor — Encuentra certificados TLS que coincidan con un dominio, CN, emisor o patrón SAN usando search_certificates.
  • Recuperar un certificado por huella digital — Obtén los datos PEM completos y los metadatos del registro CT para una huella digital SHA-256 específica con get_certificate.
  • Listar todos los certificados de un dominio — Obtén todos los certificados emitidos para un dominio exacto mediante get_domain_certificates, opcionalmente filtrados solo a certificados actualmente válidos.
  • Enumerar subdominios vistos en registros CT — Descubre subdominios únicos observados para un dominio usando paginación basada en cursor en get_subdomains.
  • Encontrar certificados que expiran pronto — Identifica certificados de un dominio que expiran dentro de un número determinado de días usando get_expiring_certs.
  • Ejecutar un barrido global del índice — Envía una búsqueda asíncrona de subcadenas en todo el corpus CT por CN o SAN con submit_global_sweep, luego consulta los resultados con get_sweep_results.

Documentación

certindex-mcp

CI PyPI License: MIT

Un servidor MCP (Model Context Protocol) que expone las herramientas de búsqueda de Transparencia de Certificados de CertIndex a cualquier cliente compatible con MCP (Claude Desktop, el Inspector MCP, Continue, etc.).

CertIndex indexa el corpus público completo de CT (~5 M de certificados, creciendo ~100 k/día). Este servidor envuelve la API REST pública de CertIndex para que un LLM pueda hacer preguntas como:

  • "Lista todos los certificados TLS emitidos para example.com."
  • "¿Qué subdominios ha visto Let's Encrypt para mycompany.io?"
  • "Muéstrame los certificados que expiran en los próximos 30 días para api.mycompany.io."
  • "Extrae el PEM completo y los metadatos del registro CT para SHA-256 <fingerprint>."

Por qué existe este repositorio

El monorepo de CertIndex incluye un servidor MCP (montado en https://api.ctindex.io/mcp) que habla directamente con el índice Postgres de producción. Este paquete independiente es una fina capa de compatibilidad del lado del cliente: habla MCP con tu editor/agente y reenvía cada llamada de herramienta a la API REST alojada de CertIndex a través de HTTPS. Dos consecuencias:

  1. No necesitas una copia del índice — regístrate para obtener una clave API gratuita en https://ctindex.io y listo.
  2. El paquete tiene una huella de dependencias mínima (mcp, httpx, pydantic) — fácil de auditar, fácil de incorporar, sin controladores de BD.

Instalación

pip install certindex-mcp

O con uvx para uso único:

uvx certindex-mcp

Para instalar la última versión de desarrollo desde el código fuente:

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

Inicio rápido — Claude Desktop

Añadir a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %APPDATA%\Claude\claude_desktop_config.json (Windows):

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

Reinicia Claude Desktop. Las diez herramientas de CertIndex aparecen en la bandeja de herramientas.

Herramientas

Diez herramientas, que coinciden 1:1 con el servidor MCP alojado de CertIndex:

HerramientaQué haceParámetros notables
search_certificatesBusca en el índice CT por dominio, CN, emisor, SAN, validez o estado de comodín.domain, cn, issuer, san, expired, is_wildcard, page/limit
get_certificateObtiene un único certificado por huella digital SHA-256.sha256, include_enrichment
get_domain_certificatesCada certificado jamás emitido para un dominio exacto.valid_only, include_enrichment, include_signals (planes de pago), page/limit
get_subdomainsEnumera subdominios únicos vistos en CT.Desplazamiento (page/limit) o modo de cursor keyset — pasa cursor="" para comenzar, luego devuelve el next_cursor de cada respuesta
get_latest_certCertificado válido más reciente para un dominio.include_enrichment, include_signals, include_precerts (permite que los precertificados compitan por "más reciente")
get_expiring_certsCertificados para un dominio que expiran dentro de days días.days
submit_global_sweepEnvía un barrido asíncrono de subcadenas CN/SAN sin dominio de todo el índice (POST /v1/sweeps).cn/san_contains (3+ caracteres, al menos uno requerido), issuer, is_wildcard, is_precert, expired, first_seen_*/not_after_* límites de fecha, strict_attribution, resume_token (continuación más allá del límite de resultados)
get_sweep_resultsConsulta un trabajo de barrido y pagina sus resultados cuando termina (GET /v1/sweeps/{id}).sweep_id, page/limit (hasta 1,000)
get_usageNivel del llamante, uso actual, cuota restante y derechos.
get_historical_backfill_statusVerifica/inicia el relleno de historial profundo de pago para un dominio.domain

Inicio rápido — Inspector MCP

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

Configuración

Variable de entornoPredeterminadoDescripción
CERTINDEX_API_KEY(requerido)Tu clave API de CertIndex. Crea una en https://ctindex.io/app/keys
CERTINDEX_BASE_URLhttps://api.ctindex.ioAnulación para despliegues autoalojados / staging
CERTINDEX_TIMEOUT30Tiempo de espera HTTP por solicitud (segundos)

Seguridad

La validación de entrada, el manejo de límites de tasa y nuestra postura en la cadena de suministro están documentados en SECURITY.md. Por favor, reporta vulnerabilidades a security@ctindex.io en lugar de presentar problemas públicos.

Desarrollo

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

CI se ejecuta en Python 3.11 / 3.12 / 3.13.

Licencia

MIT © Contribuidores de CertIndex.