CertIndex MCP
oficialEl ú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 conget_sweep_results.
Documentación
certindex-mcp
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:
- No necesitas una copia del índice — regístrate para obtener una clave API gratuita en https://ctindex.io y listo.
- 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:
| Herramienta | Qué hace | Parámetros notables |
|---|---|---|
search_certificates | Busca 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_certificate | Obtiene un único certificado por huella digital SHA-256. | sha256, include_enrichment |
get_domain_certificates | Cada certificado jamás emitido para un dominio exacto. | valid_only, include_enrichment, include_signals (planes de pago), page/limit |
get_subdomains | Enumera 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_cert | Certificado 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_certs | Certificados para un dominio que expiran dentro de days días. | days |
submit_global_sweep | Enví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_results | Consulta un trabajo de barrido y pagina sus resultados cuando termina (GET /v1/sweeps/{id}). | sweep_id, page/limit (hasta 1,000) |
get_usage | Nivel del llamante, uso actual, cuota restante y derechos. | — |
get_historical_backfill_status | Verifica/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 entorno | Predeterminado | Descripción |
|---|---|---|
CERTINDEX_API_KEY | (requerido) | Tu clave API de CertIndex. Crea una en https://ctindex.io/app/keys |
CERTINDEX_BASE_URL | https://api.ctindex.io | Anulación para despliegues autoalojados / staging |
CERTINDEX_TIMEOUT | 30 | Tiempo 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.