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

CI PyPI License: MIT

一個 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。這帶來兩個結果:

  1. 您無需擁有索引副本 — 只需在 https://ctindex.io 註冊免費的 API 金鑰即可。
  2. 此套件的相依性極小(mcphttpxpydantic)— 易於稽核、易於納入管理,且無需資料庫驅動程式。

安裝

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 索引。domaincnissuersanexpiredis_wildcardpage/limit
get_certificate透過 SHA-256 指紋擷取單一憑證。sha256include_enrichment
get_domain_certificates曾為特定網域簽發的所有憑證。valid_onlyinclude_enrichmentinclude_signals(付費方案)、page/limit
get_subdomains列舉 CT 中出現過的不重複子網域。位移(page/limit鍵集游標模式 — 傳入 cursor="" 開始,然後回傳每個回應中的 next_cursor
get_latest_cert網域目前有效的最新憑證。include_enrichmentinclude_signalsinclude_precerts(讓預憑證也能競爭「最新」資格)
get_expiring_certs網域在 days 天內到期的憑證。days
submit_global_sweep提交一個非同步、不指定網域的 CN/SAN 子字串掃描,範圍涵蓋整個索引(POST /v1/sweeps)。cn/san_contains(至少 3 個字元,至少需提供一個)、issueris_wildcardis_precertexpiredfirst_seen_*/not_after_* 日期範圍、strict_attributionresume_token(超過結果上限時用於接續)
get_sweep_results輪詢掃描作業,並在完成時對其結果進行分頁(GET /v1/sweeps/{id})。sweep_idpage/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 上執行。

授權

MIT © CertIndex 貢獻者。