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

CI PyPI License: MIT

一个 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。由此产生两个结果:

  1. 你不需要索引副本——在 https://ctindex.io 注册一个免费 API 密钥即可。
  2. 该包依赖面极小(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_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 上运行,同时使用 SDK 2.0.0 和最新的 允许的 2.x 版本。它还会将构建的 wheel 安装到全新环境中, 并通过真实 stdio 执行初始化、工具枚举和调用测试。 HTTP 测试夹具在回环地址上运行;测试不需要生产凭据。

许可证

MIT © CertIndex 贡献者。