CertIndex MCP
公式唯一の証明書透過性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 (Model Context Protocol) サーバーで、 CertIndex の Certificate Transparency 検索ツールを、 あらゆる MCP 互換クライアント (Claude Desktop、MCP Inspector、Continue など) に公開します。
CertIndex は、公開 CT コーパス全体 (約 500 万証明書、1 日あたり約 10 万増加) をインデックス化しています。 このサーバーは公開 CertIndex REST API をラップし、LLM が次のような質問をできるようにします:
- 「
example.comに対して発行されたすべての TLS 証明書をリストアップして。」 - 「Let's Encrypt が
mycompany.ioに対して確認したサブドメインは?」 - 「
api.mycompany.ioの今後 30 日以内に期限切れとなる証明書を表示して。」 - 「SHA-256
<fingerprint>の完全な PEM と CT ログメタデータを取得して。」
このリポジトリが存在する理由
CertIndex モノレポには、本番 Postgres インデックスと直接通信する MCP サーバー (https://api.ctindex.io/mcp にマウント) がバンドルされています。
このスタンドアロンパッケージは、シンな クライアントサイド の仲介役です。エディタ/エージェントと MCP で通信し、すべてのツール呼び出しを HTTPS 経由でホストされた CertIndex REST API に転送します。これにより、次の 2 つの結果が得られます:
- インデックスのコピーは不要です — https://ctindex.io で無料の API キーにサインアップすれば完了です。
- パッケージの依存関係はごくわずか (
mcp、httpx、pydantic) で、監査やベンダー化が容易であり、DB ドライバーも不要です。
インストール
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 を再起動します。10 個の CertIndex ツールがツールトレイに表示されます。
ツール
ホストされた CertIndex MCP サーバーと 1:1 で対応する 10 個のツール:
| ツール | 機能 | 主なパラメータ |
|---|---|---|
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 | インデックス全体 (POST /v1/sweeps) に対する、非同期でドメインレスな CN/SAN サブストリングスイープを送信。 | cn/san_contains (3 文字以上、少なくとも 1 つ必須)、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 に記載されています。 脆弱性は、公開 Issue を作成するのではなく、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 contributors.