Crtsh について
Crtsh は crt.sh の Certificate Transparency 記録を検索する MCP サーバーです。ドメインの証明書履歴、見つかったホスト名、特定証明書の詳細を調べるセキュリティやインフラ業務に向いています。
主な機能
- 01ドメインによる証明書検索
- 02SAN からホスト名を列挙
- 03有効期限切れ証明書の除外
- 04ID またはシリアル番号で PEM を取得
- 05結果の重複排除と新しい順の整列
活用シーン
- 01証明書記録からサブドメインを発見
- 02ドメインの発行済み TLS 証明書を確認
- 03証明書の有効期間と発行者を確認
- 04crt.sh ID またはシリアル番号で証明書を取得
MCP 対応
Pipeworx ゲートウェイまたはローカル stdio サーバーを通じて、MCP クライアントに crt.sh のドメイン検索および証明書参照ツールを提供します。ゲートウェイには共通メタツールもあり、単独モードではこのパックのツールのみを公開します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/crtsh/mcpclaude mcp add --transport http pipeworx-io-crtsh https://gateway.pipeworx.io/crtsh/mcp{"mcpServers":{"pipeworx-io-crtsh":{"type":"http","url":"https://gateway.pipeworx.io/crtsh/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-crtsh":{"type":"http","url":"https://gateway.pipeworx.io/crtsh/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-crtsh":{"type":"http","url":"https://gateway.pipeworx.io/crtsh/mcp"}}}{"mcpServers":{"pipeworx-io-crtsh":{"serverUrl":"https://gateway.pipeworx.io/crtsh/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
@pipeworx/crtsh
crt.sh から Certificate Transparency ログを検索します。ドメインとそのサブドメインに対して発行されたすべての TLS 証明書を、発行者、有効期間、シリアル番号、完全な SAN リストとともに確認できます。
Pipeworx の一部です。AI エージェントを 1875 以上の稼働中のデータソースに接続する MCP ゲートウェイです。これは独立した非公式の連携であり、上流のプロバイダーとは提携、承認、公開のいずれの関係もありません。
ツール
crtsh_search_domain(domain, include_subdomains?, exclude_expired?, limit?)— ドメインのログに記録されたすべての証明書を、証明書 ID で重複を除いて新しい順に返します。また、すべての証明書で確認されたホスト名をそれぞれ含むunique_namesも返します。このリストが、ほとんどの呼び出し元が実際に求めているサブドメイン列挙の結果です。crtsh_certificate(id?, serial?, include_pem?)— crt.sh ID または 16 進数のシリアル番号で証明書を 1 件取得します。PEM 本文を返します。serialによる検索ではログのメタデータも含まれますが、idによる検索では PEM のみが返されます(「注意点」を参照)。
認証
キーは不要です。
データソース
- https://crt.sh/?q=%25.example.com&output=json — アイデンティティ(ドメイン、SAN、または
%ワイルドカード)で証明書を検索します。 - https://crt.sh/?serial=...&output=json — 16 進数のシリアル番号で証明書を検索します。
- <https://crt.sh/?d=> — 1 件の証明書の PEM 本文を取得します。
crt.sh は Sectigo が運営しており、公開されている Certificate Transparency ログの PostgreSQL データベースを JSON 形式で表示します。
注意点
- crt.sh の応答は遅いです。 大規模なドメインに対するワイルドカード検索には、通常 10~20 秒かかり、サーバー側ではクエリのタイムアウトが設定されていません。このパックの各呼び出しには、パックのデフォルトではなく 25 秒の上限が設定されています。
output=jsonが有効なのは、アイデンティティ形式のクエリ(q=、serial=、Identity=)のみです。?id=<n>&output=jsonは、文字どおりの文字列Unsupported output type: jsonを HTTP 200 で返します。確認せずに解析すると、何もない結果として処理されます。crtJson()は、[または{で始まらない本文を拒否します。?d=<id>と?id=<id>は異なるパラメーターです。dは PEM を返し、idは HTML ページを表示します。そのため、crtsh_certificateは ID を指定すると PEM を返せますが、メタデータは返せません。ID を指定して JSON を取得できるエンドポイントがないため、メタデータを取得できるのはserial=を使う方法のみです。name_valueには、すべての SAN が改行区切りでまとめて格納されています。 これを分割するかどうかで、証明書を 8 件と報告するか、呼び出し元が求めたホスト名 40 件を報告するかが変わります。- 1 件の証明書が複数の行として表示されます。 crt.sh は一致した各アイデンティティについて 1 行を返すため、SAN が 6 件一致する証明書は、同じ
idを持つ 6 行として表示されます。idで重複を除かないと、件数がすべて過大になります。 - プレ証明書と最終証明書は、2 件の CT エントリーとして記録されます。 2 つの crt.sh ID を持ち、シリアル番号は同じなので、ID の件数は実際に発行された証明書数のおおよそ 2 倍になります。
crtsh_search_domainは両方の件数を報告します。total_log_entries_foundは crt.sh ID の重複を除いた件数、unique_certificates_foundはシリアル番号の重複を除いた件数です。「証明書の数はいくつか」と回答する場合は、後者を使ってください。 - CT の対象は、公的に信頼されている CA のみです。 内部 CA またはプライベート CA を使用しているホストは、ここには表示されません。結果が空でも、そのホストが存在しない証拠にはなりません。
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。
{
"mcpServers": {
"crtsh": {
"url": "https://gateway.pipeworx.io/crtsh/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/crtsh/mcp の tools/list は、上の表にあるツールに加えて、Pipeworx 共通のメタツール(ask_pipeworx、discover_tools、search_within、remember/recall など、ゲートウェイ全体で使えるツール)も返します。そのため、表示されるツール数はこの表より多くなります。単一パックのエンドポイントでも、現在はパック独自のツールとともに、共通ツールがおよそ30個一覧表示されます。接続時の initialize 応答に正確な範囲が記載されており、その日の状況を確認する際の決定的な情報となります。
これは意図的な設計であり、偶然に複数のパックをまとめているわけではありません。メタツールを使えば、このパックの範囲外の質問にも、カタログ全体を検索する ask_pipeworx 経由で回答できます。MCP サーバーを追加する必要はありません。現時点では、メタツールなしでパックのエンドポイントを利用する方法はありません。追加のスキーマによるコンテキスト消費がルーティングの利点を上回る場合は、複数のパックエンドポイントではなく、フルゲートウェイに一度だけ接続してください。
または、Pipeworx のフルゲートウェイに接続すると、このパックだけでなく、すべてのパックのツールが直接一覧表示されます。
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
どちらの URL も同じゲートウェイと同じ1875以上のデータソースに接続します。違いは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも ask_pipeworx を使って、すべてのツールにアクセスできます。
MCP クライアントがない場合は、HTTP 経由で呼び出す
curl -X POST https://gateway.pipeworx.io/v1/tools/crtsh_search_domain \
-H 'Content-Type: application/json' \
-d '{"domain":"pipeworx.io","exclude_expired":true,"limit":3}'
最初の呼び出しにはアカウントは不要です。ツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/crtsh_search_domain を実行します。ツールを探すには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージは、ローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイへの往復通信も必要ありません。
{
"mcpServers": {
"crtsh": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-crtsh"]
}
}
}
または、直接実行して起動することを確認できます。
npx -y @pipeworx/mcp-crtsh
stdin/stdout 経由で MCP を使用し、このパックのツールのみを対象に initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共通メタツールは含まれません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。
ask_pipeworx を使用する
ツールを直接呼び出す代わりに、自然な英語で質問できます。これは上記のパックエンドポイントでも、フルゲートウェイでも利用できます。
ask_pipeworx({ question: "your question about Crtsh data" })
ゲートウェイが適切なツールを選び、引数を自動的に設定します。
詳細情報
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。