CertIndex MCP
官方唯一支援憑證透明度(Certificate Transparency)的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 貢獻者。