certindex-mcp について
certindex-mcpは、CertIndexのホスト型Certificate Transparency APIへリクエストを転送する軽量なMCPサーバーです。証明書、サブドメイン、発行履歴、有効期限を扱うエージェントやクライアント向けで、過去のデータは不完全な場合があります。
主な機能
- 01ドメインや属性で証明書を検索
- 02SHA-256フィンガープリントで証明書を取得
- 03観測されたサブドメインを列挙
- 04有効期限が近い証明書を検索
- 05インデックス全体の検索を実行・取得
- 06利用状況とバックフィル状態を確認
活用シーン
- 01ドメインで索引化された証明書を確認
- 02CTログで観測されたサブドメインを列挙
- 03期限切れが近い証明書を特定
- 04証明書インデックスを広範囲に検索
MCP 対応
CertIndex REST APIの操作をMCPクライアント向けのツールとして公開し、HTTPSでホスト型サービスに転送します。APIキーが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
certindex-mcp
CertIndex の Certificate Transparency 検索ツールを、MCP 対応クライアント(Claude Desktop、MCP Inspector、Continue など)で利用できるようにする MCP(Model Context Protocol)サーバーです。
CertIndex は、公開されている Certificate Transparency ログから証明書を直接取り込み、独自のインデックスで提供します。過去の データのバックフィルは現在も進行中のため、特に古い証明書の検索結果は 不完全な場合があります。この サーバーは公開されている 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 で通信し、すべてのツール
呼び出しを HTTPS 経由でホストされている CertIndex REST API に転送します。これにより、次の 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 を再起動します。ツールトレイに CertIndex の 10 個のツールが表示されます。
ツール
ホスト型の 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文字以上。少なくとも一方が必須)、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を 作成するのではなく、[email protected] に報告してください。
開発
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のコントリビューター。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。