CertIndex MCP

oficial

O único servidor MCP de transparência de certificados. Pesquise mais de 2,15 bilhões de certificados TLS, monitore domínios para novas emissões, transmita o fluxo global de CT para seu agente.

O que você pode fazer com CertIndex MCP?

  • Pesquisar dados de transparência de certificados — Consulte certificados TLS indexados por domínio, CN, emissor, SAN ou status de curinga via search_certificates.
  • Buscar detalhes do certificado — Recupere o PEM completo e os metadados de log CT de um único certificado pela impressão digital SHA-256 usando get_certificate.
  • Enumerar subdomínios — Liste subdomínios únicos vistos em CT para um domínio, com paginação baseada em cursor via get_subdomains.
  • Monitorar expiração de certificados — Encontre certificados que expiram dentro de um número especificado de dias para um domínio usando get_expiring_certs.
  • Executar varreduras globais — Envie varreduras assíncronas de substring em todo o índice para padrões de CN/SAN via submit_global_sweep e depois consulte os resultados com get_sweep_results.
  • Verificar uso da API — Revise seu nível, uso atual, cota restante e direitos com get_usage.

Documentação

certindex-mcp

CI PyPI License: MIT

Um servidor MCP (Model Context Protocol) que expõe as ferramentas de busca de Certificate Transparency do CertIndex a qualquer cliente compatível com MCP (Claude Desktop, o MCP Inspector, Continue, etc.).

O CertIndex ingere certificados diretamente de logs públicos de Certificate Transparency e os serve a partir de seu próprio índice. O preenchimento histórico ainda está em andamento, portanto os resultados, especialmente para certificados mais antigos, podem estar incompletos. Este servidor encapsula a API REST pública do CertIndex para que um LLM possa fazer perguntas como:

  • "Liste os certificados TLS que o CertIndex indexou para example.com."
  • "Quais subdomínios a Let's Encrypt viu para mycompany.io?"
  • "Mostre-me certificados expirando nos próximos 30 dias para api.mycompany.io."
  • "Busque o PEM completo e os metadados do log CT para o SHA-256 <fingerprint>."

Por que este repositório existe

O monorepo do CertIndex agrupa um servidor MCP (montado em https://api.ctindex.io/mcp) que fala diretamente com o índice Postgres de produção. Este pacote independente é um shim fino do lado do cliente: ele fala MCP com seu editor / agente e encaminha cada chamada de ferramenta para a API REST hospedada do CertIndex via HTTPS. Duas consequências:

  1. Você não precisa de uma cópia do índice — cadastre-se para obter uma chave de API gratuita em https://ctindex.io e pronto.
  2. O pacote tem uma pegada de dependências mínima (mcp, httpx, pydantic) — fácil de auditar, fácil de incorporar, sem drivers de banco de dados.

Instalação

A versão 0.3.0 usa o MCP Python SDK 2.x (mcp>=2,<3) e Python 3.11+. O comando de console, as variáveis de ambiente e os dez nomes de ferramentas não mudaram. Para aplicações que precisam manter o SDK 1.x, use certindex-mcp==0.2.1.

pip install certindex-mcp

Ou com uvx para uso pontual:

uvx certindex-mcp

Para instalar a versão de desenvolvimento mais recente a partir do código-fonte:

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

Início rápido — Claude Desktop

Adicione em ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ou %APPDATA%\Claude\claude_desktop_config.json (Windows):

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

Reinicie o Claude Desktop. As dez ferramentas do CertIndex aparecem na bandeja de ferramentas.

Ferramentas

Dez ferramentas, correspondendo 1:1 ao servidor MCP hospedado do CertIndex:

FerramentaO que fazParâmetros notáveis
search_certificatesBusca no índice CT por domínio, CN, emissor, SAN, validade ou status de curinga.domain, cn, issuer, san, expired, is_wildcard, page/limit
get_certificateBusca um único certificado pela impressão digital SHA-256.sha256, include_enrichment
get_domain_certificatesCertificados indexados para um domínio exato.valid_only, include_enrichment, include_signals (planos pagos), page/limit
get_subdomainsEnumera subdomínios únicos vistos no CT.Offset (page/limit) ou modo de cursor por conjunto de chaves — passe cursor="" para começar e depois alimente de volta o next_cursor de cada resposta
get_latest_certCertificado válido mais recente para um domínio.include_enrichment, include_signals, include_precerts (permite que pré-certificados concorram pelo "mais recente")
get_expiring_certsCertificados de um domínio expirando em até days dias.days
submit_global_sweepEnvia uma varredura assíncrona de substring CN/SAN sem domínio em todo o índice (POST /v1/sweeps).cn/san_contains (3+ caracteres, pelo menos um obrigatório), issuer, is_wildcard, is_precert, expired, first_seen_*/not_after_* limites de data, strict_attribution, resume_token (continuação além do limite de resultados)
get_sweep_resultsConsulta um job de varredura e pagina seus resultados quando concluído (GET /v1/sweeps/{id}).sweep_id, page/limit (até 1.000)
get_usageNível do chamador, uso atual, cota restante e direitos.—
get_historical_backfill_statusVerifica / inicia o preenchimento histórico profundo pago para um domínio.domain

Início rápido — MCP Inspector

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

Configuração

Variável de ambientePadrãoDescrição
CERTINDEX_API_KEY(obrigatório)Sua chave de API do CertIndex. Crie uma em https://ctindex.io/app/keys
CERTINDEX_BASE_URLhttps://api.ctindex.ioSubstituição para implantações auto-hospedadas / staging
CERTINDEX_TIMEOUT30Tempo limite HTTP por solicitação (segundos)

Segurança

Validação de entrada, tratamento de limites de taxa e nossa postura de segurança da cadeia de suprimentos estão documentados em SECURITY.md. Por favor, relate vulnerabilidades para security@ctindex.io em vez de abrir issues públicas.

Desenvolvimento

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

O CI roda em Python 3.11 / 3.12 / 3.13 com o SDK 2.0.0 e a versão 2.x mais recente permitida. Ele também instala o wheel compilado em um ambiente novo e exercita inicialização, enumeração de ferramentas e chamadas via stdio real. Os fixtures HTTP rodam em loopback; os testes não exigem credenciais de produção.

Licença

MIT © Contribuidores do CertIndex.