Patch Tuesday について
Patch Tuesdayは、公開MSRCデータからMicrosoftのセキュリティ更新を検索するPython製MCPサーバーです。リリースや製品ごとのトリアージに対応し、CVE、KB、悪用状況、EPSS、CISA KEVの情報を提供します。
主な機能
- 01月次MSRCリリースの検索
- 02製品、深刻度、CWEによる絞り込み
- 03KB記事とCVEの対応付け
- 04EPSSとCISA KEV情報の付加
- 05緩和策と既知の問題の確認
- 06トリアージ結果をMarkdownまたはCSVで出力
活用シーン
- 01月次のMicrosoftパッチを要約
- 02脆弱性の修正優先度を決定
- 03KBに再起動が必要か確認
- 04パッチのトリアージ資料を作成
MCP 対応
`msrc_search`ツールを通じて、MCPクライアントにMicrosoftのセキュリティ更新検索を提供します。公開MSRCデータを読み取り、APIキーは不要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://patch-tuesday-mcp.agreeabledesert-d0b8e491.eastus2.azurecontainerapps.io/mcpclaude mcp add --transport http patch-tuesday https://patch-tuesday-mcp.agreeabledesert-d0b8e491.eastus2.azurecontainerapps.io/mcp{"mcpServers":{"patch-tuesday":{"type":"http","url":"https://patch-tuesday-mcp.agreeabledesert-d0b8e491.eastus2.azurecontainerapps.io/mcp"}}}Cursor で開く{"servers":{"patch-tuesday":{"type":"http","url":"https://patch-tuesday-mcp.agreeabledesert-d0b8e491.eastus2.azurecontainerapps.io/mcp"}}}VS Code で開く{"mcpServers":{"patch-tuesday":{"type":"http","url":"https://patch-tuesday-mcp.agreeabledesert-d0b8e491.eastus2.azurecontainerapps.io/mcp"}}}{"mcpServers":{"patch-tuesday":{"serverUrl":"https://patch-tuesday-mcp.agreeabledesert-d0b8e491.eastus2.azurecontainerapps.io/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
注意:これは独立して開発されたプロジェクトであり、Microsoft の公式ツールやサービスではありません。
Patch Tuesday MCP Server
mcp-name: io.github.jonnybottles/patch-tuesday
Microsoft のセキュリティ更新プログラムについて、AI アシスタントに質問できます。この Python ベースの MCP(Model Context Protocol)サーバーは、Claude、Copilot、ChatGPT などの AI アシスタントを、Microsoft が修正するすべての CVE の信頼できる情報源である MSRC Security Update Guide に接続し、Patch Tuesday のリリースに関する CVE、KB 記事、深刻度評価、CVSS スコア、影響を受ける製品、実際に悪用されているかどうかを自然言語で検索できるようにします。
できること
Patch Tuesday MCP Server は、Microsoft の公式 CVRF セキュリティ更新 API と AI アシスタントをつなぎ、次のことを可能にします:
- 月次の概要を取得する - 「今月の Patch Tuesday では何が修正されましたか?」
- 現在悪用されている脆弱性を見つける - 「実環境で悪用されている脆弱性はどれですか?」
- 任意の CVE を調べる - 「CVE-2026-41108 について教えてください」(KB、影響を受ける製品、CVSS、説明)
- KB と CVE を対応付ける - 「KB5094123 で修正される脆弱性はどれですか?」
- 製品で絞り込む - 「今月、Windows Server 2022 に影響する Critical CVE は何ですか?」
- ゼロデイを追跡する - 「4月に、一般公開された脆弱性へのパッチはありましたか?」
- 悪用が確認されている脆弱性を確認する - 「今月の CVE のうち、CISA KEV リストに掲載されているものはどれですか?」 — 連邦機関向けの修正期限も確認できます
- 悪用される可能性でランク付けする - 「EPSS が 50% を超える CVE を表示してください」 — FIRST.org による毎日の悪用予測スコアを確認できます
- ゼロクリックで、インターネットから到達可能な Critical CVE を見つける - 「ネットワーク経由で到達可能で、特権もユーザーの操作も不要な Critical CVE はどれですか?」 — 解析済みの CVSS 攻撃ベクトル、特権、ユーザー操作の各フィールドで絞り込めます
- 権威ある情報源に直接アクセスする - 各 CVE の詳細には、すぐに開ける MSRC、NVD、EPSS、および(掲載されている場合)CISA KEV の参照リンクが含まれます
- 古いパッチを避ける - 「KB5087538 は、より新しい更新プログラムに置き換えられていますか?」 — Microsoft の置き換えリンクをたどります
- パッチがまだない場合の緩和策を取得する - 「CVE-2026-47291 の緩和策や回避策はありますか?」 — Microsoft の緩和策、回避策、および修正しない方針に関するガイダンスを確認できます
- 経時的な傾向を把握する - 「過去 6 か月間に HTTP.sys の CVE はいくつ公開されましたか?」(
months_back=6、またはstart_month/end_month)— 公開月ごとの該当件数を集計します - Microsoft 独自の悪用予測で絞り込む - 「今月の CVE のうち、Microsoft が『悪用される可能性が高い』と評価しているものはどれですか?」(
exploitation_likely=True) - ランサムウェアで悪用されている CVE を見つける - 「今月の CVE のうち、既知のランサムウェアキャンペーンで使われているものはどれですか?」(
ransomware=True。必要な対応を含む CISA の完全な項目を取得するには、include_kev_details=Trueを追加します) - 優先順位だけでなく、展開計画も立てる - 「KB5094123 の適用には再起動が必要ですか? また、どのビルドで修正されますか?」(
include_kb_details=Trueを指定すると、KB ごとの URL、修正されるビルド、置き換え情報、再起動の要件が追加されます) - 更新プログラムによる既知の問題を確認する - 「KB5094126 を展開する前に、既知の問題はありますか?」(
include_known_issues=Trueを指定すると、各 KB の Microsoft が確認した既知の問題(症状、回避策、解決する更新プログラム)が追加されます。公開サポートページから可能な範囲で取得します。主に Windows の更新プログラム向けに公開されており、Microsoft が何も公開していない場合は、その旨が回答に明記されます) - 修正内容だけでなく、更新内容も把握する - 「セキュリティ修正以外に、KB5099536 には何が含まれていますか?」(
include_update_summary=Trueを指定すると、KB サポートページの概要と改善点が追加されます。MSRC のセキュリティデータには含まれない変更内容を、既知の問題の確認と同じページ取得処理から取得します) - 脆弱性の種類で月ごとの結果を絞り込む - 「今月の use-after-free の CVE を表示してください」(
cwe="CWE-416"またはcwe="use after free") - リリースカタログを確認する - 「利用可能な月次リリースと、最終改訂日はいつですか?」(
list_months=True) - トリアージ用の概要をエクスポートする - 「今月の Critical CVE を Markdown レポートにしてください」または「…を CSV にしてください」 — 優先度順のエグゼクティブサマリーと表、または表計算ソフトですぐに使える形式でエクスポートします(
format="markdown"/format="csv") - 強制的に最新データを取得し、鮮度を確認する - 「今月のデータを新たに再取得してください」(
force_refresh=Trueを指定するとプロセス内キャッシュをバイパスします。include_freshness=Trueを指定すると、MSRC ドキュメントと EPSS/KEV の補足データのキャッシュ経過時間と TTL が報告されます) - パッチの優先順位を付ける - 結果は緊急度の高い順に並びます。KEV/悪用の有無、次に EPSS、深刻度、CVSS の順です
Security Update Guide ポータルをいちいちクリックせずに、毎月 Microsoft のセキュリティ更新プログラムをトリアージするセキュリティアナリスト、システム管理者、IT プロフェッショナルに最適です。 データは、公式の公開 MSRC CVRF v3 API から取得しています。認証や API キーは不要です。
このサーバーを選ぶ理由
Patch Tuesday のリリースそのものをモデル化している MCP サーバーは、これだけです。 多くの MCP サーバーは CVE を検索できます。汎用の脆弱性アグリゲーターは、既知の CVE ID を NVD、OSV、脅威インテリジェンスフィードに照会します。これらが答えるのは「CVE-X について教えてください」です。しかし、毎月の Microsoft リリース、KB 記事、製品ファミリーという概念がないため、毎月第 2 火曜日に Microsoft 製品を利用する組織が実際に尋ねる質問には、構造上答えられません。
| 実際に知りたいこと | 汎用 CVE 検索サーバー | patch-tuesday-mcp |
|---|---|---|
| 「今月の Patch Tuesday を要約してください」 | ❌ リリースという概念がない | ✅ 1 回の呼び出しで概要と統計を取得 |
| 「今月、Windows Server 2022 に影響する重大な CVE は?」 | ❌ Microsoft 製品で絞り込めない | ✅ 製品とファミリーで絞り込み |
| 「KB5094123 で修正される脆弱性は?」 | ❌ KB を認識しない | ✅ KB ↔ CVE の対応付け |
| 「現在、実際に悪用されているものは?」 | ⚠️ CVE ごとのみ。CVE を事前に把握している場合に限る | ✅ 月全体を絞り込み |
| 「最初に適用すべきパッチは?」 | ❌ | ✅ 緊急度順に並べ替え:悪用中/KEV → EPSS → 深刻度 → CVSS |
| 「ゼロクリックでインターネットから到達可能な重大な脆弱性は?」 | ⚠️ CVE ごとの CVSS のみ | ✅ CVSS の攻撃ベクター/必要な権限/ユーザー操作を解析して、月全体を絞り込み |
| 「CVE-X について教えてください」 | ✅(エコシステム全体のデータがより多い場合がよくあります) | ✅ MSRC の詳細:KB、ビルド、置き換え関係、解析済み CVSS、MSRC/NVD/EPSS/KEV のリンク |
内部の違いはデータソースにあります。このサーバーは、MSRC CVRF の月次ドキュメント全体を解析します。これには、ProductTree、製品ごとの深刻度に関する脅威、悪用可能性の評価、KB による修正の連鎖が含まれますが、CVE ごとの API では公開されません。これにより、リリースを中心とした質問に答えられます。
ほかにも、意図的に次の点を適切に設計しています。
- API キーもアカウントも不要 — MSRC API は公開されており、セットアップは
uvxコマンド 1 つです - ツールは 30 個ではなく 1 個 — 統合された単一の
msrc_searchにより、AI クライアントのコンテキストを簡潔に保ち、ツール選択の信頼性を高めます - 毎月のワークフロー向けに構築 — リリースをトリアージし、チームに概要を伝え、パッチ適用の優先順位を決めたら、あとは普段どおりに過ごせます
すぐに試す — ホスト型エンドポイント(インストール不要)
無料のリモートインスタンスを以下で利用できます。
https://patch-tuesday-mcp.agreeabledesert-d0b8e491.eastus2.azurecontainerapps.io/mcp
アカウントや API キーは不要です。このエンドポイントは、ローカルにインストールした場合と同じ公開データを提供します。大量に利用する場合や可用性を保証したい場合は、ローカルで実行するか(以下を参照)、独自のサーバーをセルフホストしてください。記録されるのは最小限の匿名化された利用データのみです。テレメトリとプライバシーを参照してください。
要件
全般
- Python 3.11 以降
- MCP 対応クライアント(Claude Desktop、Cursor、Claude Code、GitHub Copilot CLI など)
uvx を使用する場合(推奨)
uvx を使ってサーバーをインストールまたは実行する場合は、最初に uv をインストールする必要があります。
- uv(
uvxを含む):https://github.com/astral-sh/uv
uv をインストールします。
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
irm https://astral.sh/uv/install.ps1 | iex
uvxを使用すると、パッケージをグローバルにインストールせずに MCP サーバーを実行できます。
pip を使用する場合(代替方法)
pip install patch-tuesday-mcp
インストール
PyPI からインストール
uvx patch-tuesday-mcp
または pip でインストールします。
pip install patch-tuesday-mcp
最新バージョンにアップグレード
uvx patch-tuesday-mcp@latest
または pip を使用します。
pip install --upgrade patch-tuesday-mcp
クイックセットアップ
ワンクリックセットアップ: VS Code のバッジをクリックすると、自動で設定できます(
uvのインストールが必要です)。 手動セットアップ: VS Code、Cursor、Claude Code、Copilot CLI、または Claude Desktop の手順は以下をご覧ください。
機能
- msrc_search – キーワード、CVE、KB 番号、月、製品、重大度、CVSS スコア、実環境での悪用状況、または一般公開状況で Microsoft セキュリティ更新プログラムを検索・絞り込みます。月を指定しない場合、既にパッチチューズデーを迎えた最新リリースがデフォルトの検索対象になります。翌月のプレリリース文書(初期の Chromium/帯域外エントリのみ)はデフォルトで除外されますが、
month=で明示的に指定できます。検索結果には、EPSS スコア(FIRST.org による30日間の悪用確率、min_epss=0.5で絞り込み)と、連邦政府機関の修正期限を含むCISA KEVカタログのステータス(kev=Trueで絞り込み)が付加されます。どちらも公開されており、キーは不要です。解析済みの CVSS v3.x の露出フィールド(attack_vector(N/A/L/P)、privileges_required(N/L/H)、user_interaction(N/R)、scope(U/C))で絞り込めば、たとえばネットワーク経由で到達可能な、ユーザー操作不要の緊急の脆弱性を抽出できます。一致した結果では、未加工のベクトル文字列から分割された構造化済みのcvssオブジェクトが表示されます。各 CVE の詳細には、すぐに開けるリンク(MSRC 更新ガイド、NVD、EPSS API、該当する場合は CISA KEV カタログ)をまとめたreferencesブロックも含まれます。KB を検索する際にinclude_chain=Trueを追加すると、Microsoft が明記する置き換えチェーン(置き換え対象の KB を新しいものから古いものの順に表示)をたどれます。KB 番号のリスト(kb=["5094123", "KB5094127", ...]、最大30件)を渡すと、たとえばコンピューターにインストール済みの更新プログラム一覧をパッチレポートのコンテキストとして、一度の呼び出しでまとめて解決できます。各 KB の結果(見つかったかどうかを示し、単一 KB の検索と同じ内容を含む)をグループ化して返します。バッチ全体で、各月の文書が上流から取得されるのは最大1回です。単一またはバッチの KB 検索にinclude_known_issues=Trueを追加すると、各更新プログラムについてMicrosoft が確認した既知の問題(問題のタイトル、症状、回避策、Microsoft が明記している場合は解決する KB)を取得できます。KB の公開サポートページから可能な範囲で情報を取得し、KB ごとに明確なステータスを返します。publishedは公開済み、none_publishedはその KB に関する既知の問題データを Microsoft が公開していない状態(Windows OS 以外の更新プログラムでは一般的)、unavailableは取得または解析に失敗した状態です。unavailableは「問題なし」とは明確に区別されます。これは Microsoft が確認した不具合の情報であり、お使いの環境での発生予測ではありません。KB 検索にinclude_update_summary=Trueを追加すると、更新プログラムによる変更内容を取得できます。サポートページの概要/ハイライトのテキストと、改善点の箇条書きが含まれます(サイズには上限があり、上限に達したブロックにはtruncatedが付与されます)。ステータスは同じく3種類です。サポートページの両ブロックは1回の取得で提供され、共有キャッシュレコードが使われます。CVE 検索にinclude_guidance=Trueを追加すると、ベンダー提供の修正 KB と併せて、Microsoft が提供する緩和策、回避策、修正しない旨の勧告を表示できます。月別または条件を指定した検索にformat="markdown"またはformat="csv"を渡すと、追加のトリアージ概要を取得できます。優先順位付けされたエグゼクティブサマリーと表(Markdown)、またはスプレッドシートで扱いやすい、列が固定されたエクスポート(CSV)が、同じ緊急度ランキングに基づいて生成されます。JSON のvulnerabilitiesリストは常に含まれます。force_refresh=Trueを指定すると、プロセス内キャッシュをバイパスして、リクエストに必要な MSRC 文書と EPSS/KEV の付加情報を再取得します。include_freshness=Trueを指定すると、MSRC 文書と付加情報のキャッシュ経過時間および TTL を報告するfreshnessブロックが追加されます。単月ではなく過去の期間を検索するには、months_back=N(直近 N か月のリリース済み月)またはstart_month/end_monthを指定します。レスポンスには、期間内で条件に一致する CVE が集約され、月ごとの傾向件数が追加されます。期間は最大12か月で、既存のキャッシュ/並行処理制御が適用されます。集計件数(重大度、影響、製品ファミリー、悪用状況、KEV 別)を取得するには、include_stats=Trueを指定します。月の統計だけを確認するには、include_stats=Trueとlimit=0を指定します。Microsoft による悪用可能性の評価はexploitation_likely=True(「悪用される可能性が高い」/「悪用を検知」と評価されたもの。該当結果にはexploitation_assessmentフィールドが付きます)で絞り込めます。また、既知のランサムウェアキャンペーンでの使用状況は、ransomware=True(CISA KEV カタログに基づく)で絞り込めます。必要に応じて、より詳細な結果を有効にできます。include_references=Trueを指定すると、月別/KB/傾向のリスト結果に MSRC/NVD/EPSS/KEV のリンクブロックが追加されます。include_kev_details=Trueを指定すると、ブール値の KEV フラグが、期限、必須の対応、ベンダー/製品、ランサムウェアでの使用状況を含むカタログの完全なエントリに置き換わります。include_kb_details=Trueを指定すると、KB 番号が KB ごとの URL、修正ビルド、置き換え情報、サブタイプ、再起動の要否を含む完全なオブジェクトに展開されます。include_temporal=Trueを指定すると、cvss ブロックに Microsoft のCVSS 時間的スコアが追加されます。cwe=(ID または名前の部分文字列。例:cwe="CWE-416")で弱点クラスを絞り込めます。list_months=Trueを指定すると、リリースカタログ(利用可能なすべての月と初回/現行リリース日)を取得できます。これは有効なmonth=値の確認や、同じ月内での改訂の把握に役立ちます。新しいフィールドはすべてオプトインです。デフォルトの JSON 形式は変更されません。
製品プロファイル(監視リスト)
実際に使用している製品に検索対象を絞り込めます。product_profile="identity-core"(組み込みプロファイル:identity-core、endpoint、server-infrastructure)を渡すか、products=["Exchange Server", "Windows Server"]/product_families=["Windows", "Azure"] を指定してください。脆弱性は、指定した製品または製品ファミリーのいずれかに一致すれば保持されます。一致判定はすべてローカルで行われ、プロファイルの内容が MSRC、FIRST.org、CISA、またはテレメトリに送信されることはありません。
MSRC_PROFILES_PATH に JSON ファイルを指定すると、組み込みプロファイルを上書きまたは拡張できます。
{
"my-estate": {
"families": ["Windows", "Azure"],
"products": ["Exchange Server", "Microsoft Entra"]
}
}
各エントリーでは、products および/または families(大文字と小文字を区別しない部分一致の照合条件)を設定できます。組み込みプロファイルと同じ名前のファイルエントリーがある場合は、組み込みプロファイルが置き換えられます。不明な product_profile を指定した場合、または MSRC_PROFILES_PATH が存在しないか無効な場合は、対象を絞らない広範な結果にフォールバックせず、明確な invalid_input エラーを返します。
補助トリアージスキル
ポータブルなエージェントスキル patch-tuesday-triage は、月次ワークフローで msrc_search をどのように実行するか(実行する検索、その順序、優先順位の付け方)を AI エージェントに教えます。プレーンな Markdown 形式で、このサーバーとは独立してデプロイできます。skills/patch-tuesday-triage/ をエージェントのスキルディレクトリにコピーしてください。デプロイの詳細については、skills/README.md を参照してください。
ガイド付きトリアージプロンプト
このサーバーは、monthly_triage という名前の MCP プロンプトを登録します。プロンプトに対応した MCP クライアントはこれを選択し、msrc_search のみを使用して構成された、アナリスト向けのステップごとのワークフローを取得できます。ワークフローには、一般公開されたゼロデイ、CISA KEV、悪用された脆弱性、ネットワーク経由/認証不要/UI 不要の重大な脆弱性、ID 関連製品、エンドポイント/Intune、ブリーフィングが含まれます。省略可能な引数は product_profile(ワークフロー全体を監視リストに絞り込む)と month(特定のリリースをトリアージする)の 2 つです。新しいツールは追加されず、このプロンプトは msrc_search の呼び出しを調整するだけです。
このプロンプトのポータブルなプレーンテキスト版は prompts/ にあり、ワークフローをサーバーとは独立して使用できます。
プロンプトの例
MCP クライアントに接続したら、次のような質問をすることができます。
- 月次概要:「今月の Patch Tuesday を要約してください」
- 悪用されている脆弱性:「現在、積極的に悪用されている Microsoft の脆弱性はどれですか?」
- CVE の検索:「CVE-2026-41108 とは何ですか?また、どの KB で修正されますか?」
- KB の検索:「KB5094123 で修正される内容は何ですか?」
- マシンのパッチレポート:「このサーバーにインストールされている KB は、KB5094123、KB5094127、KB5093998 です。それぞれ何を修正し、後継の更新プログラムに置き換えられているものはありますか?」
- 製品による絞り込み:「今月、Exchange Server に影響する重大な脆弱性を表示してください」
- パッチの優先順位付け:「2026 年 6 月の更新プログラムでは、何からパッチを適用すべきですか?」
- CISA KEV:「今月の CVE のうち、CISA KEV リストに掲載されているものはどれですか?」
- EPSS:「EPSS が 50% を超える CVE を表示してください」
- 露出条件による絞り込み:「ネットワーク経由で到達可能で、特権もユーザー操作も必要としない重大な CVE はどれですか?」
- 参照リンク:「CVE-2026-41108 の MSRC、NVD、EPSS のリンクを教えてください」
- 緩和策と回避策:「CVE-2026-41108 に緩和策や回避策はありますか?」
- トリアージレポート:「今月の重大な CVE を Markdown のブリーフィングにまとめてください」(または「…CSV としてエクスポートしてください」)
- 必要に応じた最新データの取得:「今月の更新プログラムを改めて取得し、データがどの程度最新か教えてください」(
force_refresh=True,include_freshness=True) - 過去の傾向:「過去 6 か月間に HTTP.sys の RCE CVE はいくつ公開されましたか?」(
query="HTTP.sys",months_back=6) - 後継更新プログラム:「KB5087538 は、より新しい更新プログラムに置き換えられていますか?」
- 悪用の予測:「今月、Microsoft が「悪用される可能性がより高い」と評価している CVE はどれですか?」
- ランサムウェア:「今月の CVE のうち、既知のランサムウェアキャンペーンで使われているものはどれですか?」
- 展開計画:「KB5094123 の適用には再起動が必要ですか?また、どのビルドで修正されますか?」
- 展開前の既知の問題:「KB5094126 で問題が発生することを Microsoft が確認しているものは何ですか?また、修正プログラムや回避策はありますか?」(
include_known_issues=True) - 更新プログラムの内容:「セキュリティ修正以外に、KB5099536 で変更される内容を要約してください」(
include_update_summary=True) - 弱点の種類:「今月の use-after-free 脆弱性を表示してください」(
cwe="CWE-416") - リリースカタログ:「どの Patch Tuesday の月をクエリできますか?」
- 製品のウォッチリスト:「自分の環境全体に影響する、今月の重大な CVE を表示してください」(
product_profile="identity-core",severity="Critical") - ガイド付きトリアージ:「自分の ID 環境について、今月のトリアージを順を追って案内してください」(
product_profile="identity-core"を指定してmonthly_triageプロンプトを選択します)
使用方法
MCP サーバーの実行
uvx patch-tuesday-mcp
または、pip でインストールした場合:
patch-tuesday-mcp
VS Code からの接続
オプション 1:ワンクリックインストール(推奨)
この README の先頭にある VS Code でセットアップ バッジをクリックすると、自動的に構成できます(uv のインストールが必要です)。
オプション 2:手動での構成
VS Code では MCP サーバーの設定に、settings.json ではなく専用の mcp.json ファイルを使用します。 コマンドパレットを開き(Windows/Linux では Ctrl+Shift+P、macOS では Cmd+Shift+P)、次のいずれかを実行します。
MCP: Open User Configuration— ユーザーレベルのmcp.jsonを編集します(すべてのワークスペースで使用できます)MCP: Open Workspace Folder Configuration— プロジェクトローカルの.vscode/mcp.jsonを編集します
次に、サーバーを追加します。VS Code では、以下の他のクライアントで使われる "mcpServers" キーとは異なり、最上位の "servers" キーを使用します。
{
"servers": {
"patch-tuesday": {
"type": "stdio",
"command": "uvx",
"args": ["patch-tuesday-mcp"]
}
}
}
Claude Desktop からの接続
Claude Desktop の MCP 設定に追加します。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
uvx を使用する場合(推奨)
{
"mcpServers": {
"patch-tuesday": {
"command": "uvx",
"args": ["patch-tuesday-mcp"]
}
}
}
インストール済みパッケージを使用する場合
{
"mcpServers": {
"patch-tuesday": {
"command": "patch-tuesday-mcp"
}
}
}
Cursor からの接続
オプション 1:ワンクリックインストール(推奨)
cursor://anysphere.cursor-deeplink/mcp/install?name=patch-tuesday-mcp&config=eyJjb21tYW5kIjogInV2eCIsICJhcmdzIjogWyJwYXRjaC10dWVzZGF5LW1jcCJdfQ==
オプション 2:手動での構成
Cursor の MCP 設定(~/.cursor/mcp.json)に追加します。
{
"mcpServers": {
"patch-tuesday": {
"command": "uvx",
"args": ["patch-tuesday-mcp"]
}
}
}
Claude Code からの接続
claude mcp add --transport stdio patch-tuesday -- uvx patch-tuesday-mcp
GitHub Copilot CLI から接続する
~/.copilot/mcp-config.json に追加します:
{
"mcpServers": {
"patch-tuesday": {
"type": "stdio",
"command": "uvx",
"args": ["patch-tuesday-mcp"]
}
}
}
リモート MCP サーバーとしてセルフホストする
サーバーは、リモート/共有環境へのデプロイ向けに HTTP トランスポートもサポートしています:
MCP_TRANSPORT=http MCP_PORT=8000 patch-tuesday-mcp
# MCP endpoint: http://localhost:8000/mcp
または、Docker を使用します:
docker build -t patch-tuesday-mcp .
docker run -p 8000:8000 patch-tuesday-mcp
HTTP モードの環境変数:
| 変数 | デフォルト | 説明 |
|---|---|---|
MCP_TRANSPORT | stdio | リモートでサービスを提供するには http に設定します |
MCP_HOST / MCP_PORT | 0.0.0.0 / 8000 | バインドアドレス |
MCP_MAX_BODY_BYTES | 262144 | リクエストボディの最大サイズ。これを超えると 413 を返します(0 で無効化) |
MCP_CORS_ORIGINS | *(すべて) | ブラウザーのオリジンの許可リストをカンマ区切りで指定します。公開環境では明示的なリストを設定してください(例:https://app.example.com) |
MCP_LIMIT_CONCURRENCY | 40 | 同時に処理中の接続の最大数。これを超えると uvicorn は 503 を返します(0 で無効化) |
MCP_TIMEOUT_KEEP_ALIVE | 15 | アイドル状態のキープアライブ接続を閉じるまでの秒数 |
MCP_LOG_LEVEL | WARNING | ルートログレベル(DEBUG/INFO/WARNING/ERROR/CRITICAL)。ログは stderr に出力されます |
MCP_MSRC_MAX_RESPONSE_BYTES | 67108864(64 MiB) | 単一の MSRC 上流レスポンスボディの上限(ストリーミング中に読み取られ、上限を超えてバッファリングされることはありません) |
MCP_ENRICHMENT_MAX_RESPONSE_BYTES | 33554432(32 MiB) | 単一の EPSS/KEV 上流レスポンスボディの上限 |
MCP_KNOWN_ISSUES_MAX_RESPONSE_BYTES | 4194304(4 MiB) | 単一の support.microsoft.com KB ページのボディの上限(既知の問題/更新概要の検索) |
APPLICATIONINSIGHTS_CONNECTION_STRING | 未設定 | オプトインの使用状況テレメトリ(pip install patch-tuesday-mcp[telemetry] が必要です) |
MCP_DEPRECATION_SUNSET | 未設定 | このデプロイメントでサービスを停止する ISO 日付(YYYY-MM-DD)。移行を告知するには、MCP_DEPRECATION_REPLACEMENT_URL と併せて設定します(下記参照) |
MCP_DEPRECATION_REPLACEMENT_URL | 未設定 | クライアントの移行先となる URL |
MCP_DEPRECATION_SINCE | 未設定 | 非推奨化を告知した任意の ISO 日付(RFC 9745 の Deprecation 日付として出力されます) |
MCP_DEPRECATION_MESSAGE | 未設定 | 人が読める通知文の任意の上書き値 |
非推奨化を告知する(セルフホストする場合)
デプロイメントを終了する場合は、MCP_DEPRECATION_SUNSET と
MCP_DEPRECATION_REPLACEMENT_URL をそのデプロイメントだけに設定してください。サーバーは次の 4 つの方法で移行を通知します:
- すべての
msrc_searchレスポンス(および/health)に含まれるdeprecationブロック Deprecation、Sunset、およびLink: <url>; rel="successor-version"のレスポンスヘッダー (RFC 9745、 RFC 8594、 RFC 5829)- 接続時にクライアントへ表示される MCP サーバーの
instructions msrc_searchツールの説明
これらはすべて説明的なものであり、デプロイメントに関する事実を述べます。接続中のエージェントに何かを言う、または行うよう指示することはありません。他者のモデルに指示を出すツール出力は、どれほど無害な内容であってもプロンプトインジェクションです。変数を未設定のままにすると、動作はバイト単位で変わりません。2 つの変数の片方だけを設定した場合や、不正な日付を設定した場合は無視されます。
HTTP モードでは GET /health(稼働状況エンドポイント)も提供されます。また、ステートレスで動作するため、セッションアフィニティなしでロードバランサーの背後に複数のレプリカを配置してスケールできます。
公開 HTTP デプロイメントのセキュリティ強化
HTTP トランスポートは認証されていません。msrc_search は公開されている脆弱性データのみを読み取りますが、エンドポイントを公開すると悪用される可能性があります。インターネットに公開する前に、次の対策を行ってください。
- 認証済みの入口の背後に配置します。 リバースプロキシ/API ゲートウェイ(Azure API Management、
oauth2-proxyなどの OAuth2/OIDC プロキシ、Cloudflare Access、またはイングレスコントローラーの認証機能など)で TLS を終端し、認証を必須にします。このサーバーには意図的に認証機能が組み込まれていないため、組織標準のアクセス制御を前段に追加できます。 - CORS を制限します。 許容範囲の広いデフォルトの
*ではなく、MCP クライアントの正確なオリジンをMCP_CORS_ORIGINSに設定します。 - デフォルト設定を維持します。
MCP_MAX_BODY_BYTESとMCP_LIMIT_CONCURRENCYはデフォルトのまま(または、さらに厳しく)にしてください。これらは、過大なペイロードや接続の枯渇に対する第一の防御策です。 - 上流への読み取りには上限があり、リダイレクトは行われません。 MSRC/EPSS/KEV からのレスポンスはストリーミング中にサイズが制限され、HTTP リダイレクトは一切追跡されません。そのため、問題のある上流によってコンテナーのメモリが枯渇することはありません。
ローカルの stdio の使用には、上記の影響はありません。デフォルトのトランスポートでは、これらのミドルウェアは実行されません。
このコンテナーは、Azure Container Apps、Cloud Run、Fly.io、または通常の VM など、HTTP を提供できる任意のホストで実行できます。
テレメトリとプライバシー
- ローカルの stdio(デフォルト):テレメトリは一切ありません。情報を送信するコードパスはありません。
- ホストされたエンドポイントは、最小限の利用データを Azure Application Insights に記録します(保持期間は 90 日)。記録されるのは、日ごとにソルトを付与したクライアント IP のハッシュ(生の IP アドレスは保存されず、不正利用対策のためにメモリ上で短時間保持されるだけです)、リクエストパスとタイムスタンプ、使用されたツールのパラメーター(パラメーターの名前のみ。クエリのテキストや CVE/KB の値は記録されません。低カーディナリティの
monthとseverityの値のみ保持されます)、結果数、レイテンシー、エラーのカテゴリです。Cookie、アカウント、リクエスト/レスポンスの本文は記録されません。 - セルフホストの HTTP では、
APPLICATIONINSIGHTS_CONNECTION_STRINGに独自のリソースを設定しない限り、データは収集されません。設定した場合は、同じ最小限のデータがそのインスタンスに送信されます。
開発
pip install -e ".[dev]"
pytest # offline suite (mocked feeds)
pytest --run-live # also run live smoke tests against the real MSRC / EPSS / KEV APIs
pytest --cov=patch_tuesday_mcp # coverage (CI enforces >= 90%)
ruff check src/ tests/
CI(GitHub Actions)では、カバレッジゲート付きで Python 3.11/3.12/3.14 のオフラインテストを実行し、ruff で lint を行い、コンテナーをビルドして Trivy でスキャンし、すべての push/PR で SPDX SBOM を生成します。リリースビルドでは、公開する wheel/sdist の来歴を証明します。依存関係は uv.lock でロックされており、Docker のビルドでは uv sync --locked を使います。
セキュリティ
サポート対象のバージョン、対象範囲、脆弱性を非公開で報告する方法については、SECURITY.md を参照してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。