CertIndex MCP

官方

唯一的证书透明度MCP服务器。搜索21.5亿+ TLS证书,监控域名新签发,将全球CT数据流实时传输至您的智能体。

你可以用 CertIndex MCP 做什么?

  • 按域名或颁发者搜索证书 — 使用 search_certificates 查找与域名、CN、颁发者或 SAN 模式匹配的 TLS 证书。
  • 按指纹检索证书 — 通过 get_certificate 获取特定 SHA-256 指纹的完整 PEM 数据和 CT 日志元数据。
  • 列出域名的所有证书 — 通过 get_domain_certificates 获取为确切域名颁发的所有证书,可选择仅过滤当前有效的证书。
  • 枚举 CT 日志中出现的子域名 — 使用 get_subdomains 中的基于游标的分页发现为某个域名观察到的唯一子域名。
  • 查找即将过期的证书 — 使用 get_expiring_certs 识别在给定天数内过期的域名证书。
  • 运行全局索引扫描 — 使用 submit_global_sweep 提交对整个 CT 语料库的异步子字符串搜索(按 CN 或 SAN),然后使用 get_sweep_results 轮询结果。

文档

certindex-mcp

CI PyPI License: MIT

一个 MCP(模型上下文协议)服务器,可将 CertIndex 的证书透明度搜索工具暴露给任何兼容 MCP 的客户端(如 Claude Desktop、MCP Inspector、Continue 等)。

CertIndex 索引了完整的公共 CT 语料库(约 500 万张证书,每天增长约 10 万张)。此服务器封装了公共 CertIndex REST API,因此 LLM 可以提出如下问题:

  • “列出曾为 example.com 签发的所有 TLS 证书。”
  • “Let's Encrypt 为 mycompany.io 发现了哪些子域名?”
  • “显示 api.mycompany.io 在未来 30 天内到期的证书。”
  • “提取 SHA-256 指纹为 <fingerprint> 的完整 PEM 和 CT 日志元数据。”

为何存在此仓库

CertIndex 单体仓库捆绑了一个 MCP 服务器(挂载于 https://api.ctindex.io/mcp),该服务器直接与生产环境的 Postgres 索引通信。此独立包是一个轻量级的客户端适配层:它向你的编辑器/代理端使用 MCP 协议,并将每个工具调用通过 HTTPS 转发到托管的 CertIndex REST API。这带来两个结果:

  1. 你无需拥有索引副本——在 https://ctindex.io 注册一个免费 API 密钥即可。
  2. 此包的依赖项极少(mcphttpxpydantic)——易于审计,易于纳入,无需数据库驱动。

安装

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 工具将出现在工具托盘中。

工具

共十个工具,与托管的 CertIndex MCP 服务器一一对应:

工具功能重要参数
search_certificates按域名、CN、颁发者、SAN、有效期或通配符状态搜索 CT 索引。domaincnissuersanexpiredis_wildcardpage/limit
get_certificate通过 SHA-256 指纹获取单张证书。sha256include_enrichment
get_domain_certificates曾为某个确切域名签发的所有证书。valid_onlyinclude_enrichmentinclude_signals(付费计划)、page/limit
get_subdomains枚举 CT 中出现的唯一子域名。偏移量(page/limit键集游标模式——传入 cursor="" 开始,然后反馈每个响应中的 next_cursor
get_latest_cert某个域名当前有效的最新证书。include_enrichmentinclude_signalsinclude_precerts(允许预证书参与“最新”竞争)
get_expiring_certs某个域名在 days 天内到期的证书。days
submit_global_sweep提交一个异步的、无域名的 CN/SAN 子串扫描,覆盖整个索引(POST /v1/sweeps)。cn/san_contains(至少 3 个字符,至少提供一个)、issueris_wildcardis_precertexpiredfirst_seen_*/not_after_* 日期范围、strict_attributionresume_token(超出结果上限后的继续)
get_sweep_results轮询扫描作业并在完成后分页获取其结果(GET /v1/sweeps/{id})。sweep_idpage/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(必填)你的 CertIndex API 密钥。在 https://ctindex.io/app/keys 创建一个。
CERTINDEX_BASE_URLhttps://api.ctindex.io用于自托管部署/测试环境的覆盖地址
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 贡献者。