CertIndex MCP
官方唯一的证书透明度MCP服务器。搜索21.5亿+ TLS证书,监控域名新签发,将全球CT数据流实时传输至您的智能体。
你可以用 CertIndex MCP 做什么?
- 搜索证书透明度数据 — 通过
search_certificates查询按域名、CN、颁发者、SAN 或通配符状态索引的 TLS 证书。 - 获取证书详情 — 使用
get_certificate通过 SHA-256 指纹检索单个证书的完整 PEM 和 CT 日志元数据。 - 枚举子域名 — 列出某个域名在 CT 中出现的唯一子域名,并通过
get_subdomains支持基于游标的分页。 - 监控证书过期 — 使用
get_expiring_certs查找某个域名在指定天数内即将过期的证书。 - 运行全局扫描 — 通过
submit_global_sweep提交对整个索引中 CN/SAN 模式的异步子串扫描,然后使用get_sweep_results轮询结果。 - 检查 API 使用情况 — 使用
get_usage查看您的层级、当前使用量、剩余配额和权限。
文档
certindex-mcp
一个 MCP(模型上下文协议)服务器, 将 CertIndex 的证书透明度搜索工具暴露给任何兼容 MCP 的客户端 (Claude Desktop、MCP Inspector、Continue 等)。
CertIndex 直接从公共证书透明度日志中摄取证书,并从其自身索引中提供服务。 历史回填仍在进行中,因此结果(尤其是较旧证书的结果)可能不完整。 该服务器封装了公共 CertIndex REST API,使 LLM 能够提出如下问题:
- “列出 CertIndex 已为
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)——易于审计、易于供应商化,无需数据库驱动。
安装
0.3.0 版本使用 MCP Python SDK 2.x(mcp>=2,<3)和 Python 3.11+。
控制台命令、环境变量和十个工具名称均未更改。
对于必须保留 SDK 1.x 的应用程序,请使用 certindex-mcp==0.2.1。
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 上运行,同时使用 SDK 2.0.0 和最新的 允许的 2.x 版本。它还会将构建的 wheel 安装到全新环境中, 并通过真实 stdio 执行初始化、工具枚举和调用测试。 HTTP 测试夹具在回环地址上运行;测试不需要生产凭据。
许可证
MIT © CertIndex 贡献者。