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
一个 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。这带来两个结果:
- 你无需拥有索引副本——在 https://ctindex.io 注册一个免费 API 密钥即可。
- 此包的依赖项极少(
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 工具将出现在工具托盘中。
工具
共十个工具,与托管的 CertIndex MCP 服务器一一对应:
| 工具 | 功能 | 重要参数 |
|---|---|---|
search_certificates | 按域名、CN、颁发者、SAN、有效期或通配符状态搜索 CT 索引。 | 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)或键集游标模式——传入 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 | (必填) | 你的 CertIndex API 密钥。在 https://ctindex.io/app/keys 创建一个。 |
CERTINDEX_BASE_URL | https://api.ctindex.io | 用于自托管部署/测试环境的覆盖地址 |
CERTINDEX_TIMEOUT | 30 | 每个请求的 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 贡献者。