CertIndex MCP
官方唯一支援憑證透明度(Certificate Transparency)的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 伺服器 1:1 對應:
| 工具 | 功能 | 重要參數 |
|---|---|---|
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 貢獻者。