CertIndex MCP
公式唯一の証明書透過性MCPサーバー。21.5億以上のTLS証明書を検索し、ドメインの新規発行を監視し、グローバルCTファイアホースをエージェントにストリーミングします。
CertIndex MCPで何ができますか?
- 証明書透明性データの検索 —
search_certificatesを使用して、ドメイン、CN、発行者、SAN、またはワイルドカード状態に対してインデックス化されたTLS証明書を検索します。 - 証明書詳細の取得 — SHA-256フィンガープリントを使用して
get_certificateで、単一の証明書の完全なPEMおよびCTログメタデータを取得します。 - サブドメインの列挙 — ドメインのCTで確認された一意のサブドメインを、
get_subdomainsによるカーソルベースのページネーションで一覧表示します。 - 証明書の有効期限の監視 —
get_expiring_certsを使用して、指定した日数以内に期限切れになるドメインの証明書を検索します。 - グローバルスイープの実行 —
submit_global_sweepでインデックス全体に対してCN/SANパターンの非同期サブストリングスイープを送信し、get_sweep_resultsで結果をポーリングします。 - API使用状況の確認 —
get_usageで、階層、現在の使用量、残りクォータ、および権限を確認します。
ドキュメント
certindex-mcp
MCP(Model Context Protocol)サーバーです。CertIndex の証明書透明性(Certificate Transparency)検索ツールを、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 モノレポには、本番の Postgres インデックスに直接接続する MCP サーバー(https://api.ctindex.io/mcp にマウント)が含まれています。このスタンドアロンパッケージは薄いクライアント側のシムです。エディタやエージェントと MCP で通信し、すべてのツール呼び出しをホストされた CertIndex REST API に HTTPS 経由で転送します。その結果は2つあります:
- インデックスのコピーは不要です。https://ctindex.io で無料の API キーにサインアップすれば完了です。
- 依存関係のフットプリントが小さい(
mcp、httpx、pydantic)ため、監査が容易で、ベンダリングも簡単、DB ドライバも不要です。
インストール
バージョン 0.3.0 は MCP Python SDK 2.x(mcp>=2,<3)と Python 3.11+ を使用します。コンソールコマンド、環境変数、10個のツール名は変更されていません。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 を再起動します。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 | ドメイン指定なしの非同期 CN/SAN 部分文字列スイープをインデックス全体に送信(POST /v1/sweeps)。 | 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 で、SDK 2.0.0 と最新の許可された 2.x リリースの両方で実行されます。また、ビルドしたホイールを新しい環境にインストールし、実際の stdio 経由で初期化、ツール列挙、呼び出しを検証します。HTTP フィクスチャはループバックで実行され、テストは本番資格情報を必要としません。
ライセンス
MIT © CertIndex コントリビューター。