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

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 伺服器 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_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 貢獻者。