Contrast MCP Server について
Contrast MCP Server は Contrast Security を AI コーディングエージェントに接続し、脆弱性、ライブラリのリスク、セキュリティカバレッジを自然言語で確認できるようにします。SaaS 利用者向けのホスト型リモートサーバーと、オンプレミスや EOP 環境向けのオープンソースのローカルサーバーを提供します。
主な機能
- 01ブラウザーの OAuth サインインを使うホスト型リモートサーバー
- 02API キーで認証するオープンソースのローカルサーバー
- 03既存のロールベースの権限によるアクセス制御
- 04ホスト型ツールは読み取り専用で、呼び出しごとに監査
- 05脆弱性、SCA ライブラリ、Protect、SAST のデータを対象
活用シーン
- 01コーディングエージェントからアプリケーションの脆弱性を確認し修正する
- 02特定の CVE の影響を受けるアプリケーションを探す
- 03ルートのカバレッジと Protect ルールの設定を確認する
MCP 対応
MCP サーバーとして、Contrast の検索・分析ツールを MCP クライアントに公開します。ホスト型版はリモート HTTP で接続し、ローカル版はクライアントが stdio で起動します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Contrast MCP サーバー
Contrast MCP サーバーは Contrast Security を AI コーディングエージェントに接続し、自然言語を使って脆弱性を修正したり、安全でないライブラリを更新したり、セキュリティカバレッジを分析したりできるようにします。
2 つの形態があります。
- ホスト型 MCP サーバー(推奨) は、Contrast が運用するリモート MCP サーバーです。Contrast SaaS のお客様にとって最も簡単な方法で、ブラウザーでの OAuth サインインに対応し、インストールは不要です。ほとんどのユーザーにおすすめです。
- ローカル MCP サーバー は、このリポジトリにあるオープンソースのサーバーで、API キーを使ってご自身で実行します。オンプレミス環境や EOP(Enterprise On-Premises)インスタンスに適しています。
警告
重大なセキュリティ警告: プロンプトを使って学習する AI サービスに Contrast の脆弱性データを渡すと、機密情報が漏えいするおそれがあります。データの分離を契約で保証し、入力データを使ったモデルの学習を禁止している環境でのみ、Contrast MCP サーバーを使用してください。
AI データのプライバシーを確認してください: サービス契約でプロンプトを使ったモデルの学習が禁止されていることを確認し、Contrast のデータを共有する前にセキュリティチームに相談してください。
安全ではありません: プロンプトを学習に使用する一般向けの LLM サイト(例:無料版 ChatGPT、Gemini、Claude)。
安全である可能性があります: 契約でプライバシーが保証されるエンタープライズサービス(例:Google Cloud AI、AWS Bedrock、Azure OpenAI)。
目次
ホスト型 MCP サーバー(推奨)
Contrast が運用するリモート MCP サーバーであるホスト型 MCP サーバーは、AI エージェントを Contrast に接続する最も簡単な方法です。クライアントに URL を 1 つ指定してブラウザーからサインインすれば、エージェントがセキュリティデータについて質問できるようになります。コピーして使う API キーや、更新を続けるコンテナーや JAR、実行するローカルプロセスはありません。
ホスト型サーバーは読み取り専用で、現在 Contrast SaaS で利用できます。
前提条件
- 少なくとも 1 つの組織にアクセスできる Contrast SaaS アカウント
- Streamable HTTP トランスポートと PKCE を使用した OAuth 2.0 に対応する MCP クライアント(対応クライアントを参照)
- OAuth サインインに使用する最新のウェブブラウザー
接続
Contrast のホストに続けて /mcp を指定し、サーバーを Claude Code に追加します。
claude mcp add --transport http contrast-hosted-mcp https://app.contrastsecurity.com/mcp
専用インスタンスを使用している場合は、app.contrastsecurity.com を組織の Contrast URL に置き換えてください。エージェントが初めてツールを呼び出すと、ブラウザーが開いてサインインを求められます。サインインが自動で始まらない場合は、Claude Code で /mcp を実行し、contrast-hosted-mcp の「Authenticate」を選択してください。既存の Contrast 認証情報でログインし、組織を選択して、読み取りアクセスを承認します。セッションは自動で更新されるため、通常は一度サインインすれば、そのまま作業を続けられます。
Claude Code、Claude Desktop、Codex CLI、GitHub Copilot CLI、opencode の詳しいセットアップ手順については、ホスト型 MCP サーバーのインストールガイドを参照してください。
接続の詳細
Streamable HTTP トランスポートと PKCE を使用した OAuth 2.0 に対応する MCP クライアントであれば、接続できます。
| 設定 | 値 |
|---|---|
| エンドポイント URL | https://<your-contrast-host>/mcp(例:https://app.contrastsecurity.com/mcp) |
| トランスポート | Streamable HTTP(ステートレス) |
| HTTP メソッド | POST |
| 認証 | PKCE(S256)を使用した OAuth 2.0 |
| OAuth スコープ | openid、profile、offline_access |
クライアントは、標準の /.well-known/oauth-protected-resource メタデータドキュメントを示す WWW-Authenticate レスポンスヘッダーを通じて、OAuth の設定を自動的に検出します。Dynamic Client Registration に対応するクライアントは、Contrast のオリジンにある /oauth2/connect/register で登録できます。
これらの OAuth スコープが対象とするのは本人確認のみで、これは意図的な設計です。トークン自体にはデータへの権限がありません。Contrast プラットフォームは、サインインしたユーザーの既存のロールベースのアクセス制御を使用して、リクエストごとに認可を判断します。つまり、エージェントが保持したり漏えいさせたりする可能性のある、広範なスコープを持つトークンはなく、接続時に誤った認可スコープを設定する心配もありません。全体のモデルについては、セキュリティとプライバシーを参照してください。
対応クライアント
| クライアント | 状態 |
|---|---|
| Claude Code CLI | 動作確認済み |
| Codex CLI | 動作確認済み |
| GitHub Copilot CLI | 動作確認済み |
| opencode | 動作確認済み |
| Claude Desktop | 動作確認済み |
| Gemini CLI | 未対応。OAuth の互換性に関する問題があります |
| VS Code Copilot plugin | 未対応。OAuth の互換性に関する問題があります |
OAuth の処理が成熟するにつれて、より多くのクライアントへの対応を進めています。ログインページが表示される前に OAuth 登録でクライアントが失敗する場合は、通常、アカウントの問題ではなく、クライアントの互換性に関する問題です。
セキュリティとプライバシー
ホスト型サーバーでは、アクセスの仕組みを変更しつつ、閲覧できる情報の範囲は変わりません。
- API キーではなく OAuth を使用します。 ブラウザーでサインインするため、開発者のマシンに配布または保存する長期有効なキーはありません。
- 読み取り専用です。 ホスト型のすべてのツールは読み取り専用です。ホスト型サーバーを通じて、データの変更、更新、削除はできません。
- 組織の範囲に限定されます。 各セッションはサインイン時に選択した 1 つの組織に紐付けられるため、組織 ID を推測したり、誤って指定したりする必要はありません。
- 既存の権限が適用されます。 すべてのリクエストでユーザーの ID が Contrast に渡され、Web インターフェースと同じロールベースのアクセス制御が適用されます。Contrast で見られない情報は、エージェントにも見られません。認可はトークンにエンコードされた一度限りの許可ではなく、各リクエストで実行時に判断されるため、エージェントのスコープを設定する作業は、そのユーザーのスコープを設定する作業と同じです。
- すべてのツール呼び出しが監査されます。 Contrast は、インシデントの再構成を可能にするため、固有の識別子、呼び出されたツール、ユーザー、組織、結果とともに各リクエストを記録します。
- データは保存されません。 ホスト型サーバーはユーザーのデータを一切保存せず、ツールのレスポンスにトークンが含まれることもありません。
上記の共通の警告は引き続き適用されます。ツールの結果は AI との会話の一部となるため、どのセキュリティデータを選択した AI クライアントおよびモデルに送信できるかについて、組織のポリシーに従ってください。
利用可能なツール
どちらのサーバーも同じコアツールを共有しているため、以下の表では両方をまとめて説明します。Hosted 列と Local 列は、各ツールを提供するサーバーを示しています。エージェントは、質問に応じてツールを自動的に呼び出します。
認証
| ツール | 説明 | Hosted | Local |
|---|---|---|---|
get_user_info | サインイン中のユーザーと、現在有効な組織を表示します | ✅ | — |
脆弱性(評価)
| ツール | 説明 | ホスト型 | ローカル |
|---|---|---|---|
search_vulnerabilities | すべてのアプリケーションにまたがって脆弱性を検索します(組織レベル) | ✅ | ✅ |
search_app_vulnerabilities | セッションで絞り込みながら、特定のアプリケーション内の脆弱性を検索します | ✅ | ✅ |
get_vulnerability | スタックトレースや修正ガイダンスを含む、脆弱性の詳細情報を取得します | ✅ | ✅ |
list_vulnerability_types | 絞り込みに利用できるすべての脆弱性タイプを一覧表示します | ✅ | ✅ |
アプリケーション
| ツール | 説明 | ホスト型 | ローカル |
|---|---|---|---|
search_applications | 名前、タグ、またはメタデータのフィルターでアプリケーションを検索します | ✅ | ✅ |
get_session_metadata | アプリケーションで利用できるセッションメタデータフィールドを取得します | ✅ | ✅ |
サーバー
| ツール | 説明 | ホスト型 | ローカル |
|---|---|---|---|
search_servers | エージェントの健全性とProtectのカバレッジを確認するため、サーバーのインベントリを検索します | ✅ | ✅ |
ライブラリ(SCA)
| ツール | 説明 | ホスト型 | ローカル |
|---|---|---|---|
list_application_libraries | クラスの使用統計と脆弱性数を含め、アプリケーションで使用されているライブラリを一覧表示します | ✅ | ✅ |
list_applications_by_cve | 特定のCVEの影響を受けるアプリケーションを検索します | ✅ | ✅ |
保護(ADR/Protect)
| ツール | 説明 | ホスト型 | ローカル |
|---|---|---|---|
search_attacks | ステータス、タイプ、ルールで絞り込みながら攻撃イベントを検索します | ✅ | ✅ |
get_protect_rules | アプリケーションに設定されている保護ルールを取得します | ✅ | ✅ |
カバレッジ
| ツール | 説明 | ホスト型 | ローカル |
|---|---|---|---|
get_route_coverage | 実行済みルートと検出済みルートを示すルートカバレッジデータを取得します | ✅ | ✅ |
SAST(スキャン)
| ツール | 説明 | ホスト型 | ローカル |
|---|---|---|---|
get_scan_project | SASTプロジェクトの詳細と脆弱性数を取得します | ✅ | ✅ |
get_scan_results | SARIF形式でSASTスキャンの結果を取得します | — | ✅ |
CVE、課題、インシデント、観測
これらのツールはホスト型サーバーでのみ利用でき、組織でContrast統合データプラットフォーム(NorthStar)が有効になっている必要があります。
| ツール | 説明 | ホスト型 | ローカル |
|---|---|---|---|
search_cves | CVE Shieldのエクスポージャーとリスクについて、組織全体のCVEを検索します | ✅ | — |
list_cve_issues | CVEの影響を受けるアプリケーションとライブラリを、ペアごとに1件の課題として一覧表示します | ✅ | — |
get_cve_impact | 組織全体のCVEリスク、エクスポージャー、シールド保護状況を取得します | ✅ | — |
search_issues | 組織全体のセキュリティ課題を検索し、絞り込みます | ✅ | — |
get_issue | 特定の課題の詳細情報を取得します | ✅ | — |
list_issue_incidents | 課題に関連付けられたインシデントを一覧表示します | ✅ | — |
list_issues_by_library | アプリケーションライブラリに関連する未解決の課題を一覧表示します | ✅ | — |
search_incidents | インシデントを検索し、絞り込みます | ✅ | — |
get_incident | 特定のインシデントの詳細情報を取得します | ✅ | — |
list_incident_issues | インシデントに関連付けられた課題を一覧表示します | ✅ | — |
get_observation | 特定の観測の詳細情報を取得します | ✅ | — |
list_issue_observations | 課題に関連付けられた観測を一覧表示します(カーソルページネーション) | ✅ | — |
list_incident_observations | インシデントに関連付けられた観測を一覧表示します(カーソルページネーション) | ✅ | — |
ローカル MCP サーバー
ローカル MCP サーバーは、このリポジトリにあるオープンソースのサーバーです。MCP クライアントはstdio経由でローカルプロセスとして起動し、Contrast APIキーとサービスキーで認証して、オンプレミスやEOPを含む、お客様自身のContrastインスタンスに接続します。ホスト型サーバーを使用できない場合や、生のSARIFスキャン出力が必要な場合に使用してください。
ローカルサーバーでは、上記の利用可能なツールにあるローカルとマークされたツールを利用できます。
クイックスタート
前提条件
- Docker(推奨)または JAR デプロイ用の Java 21 以降
- Contrast API 認証情報(API 認証情報の取得方法)
VS Code(GitHub Copilot)- ワンクリックインストール
上のボタンをクリックすると、VS Code に自動的にインストールされます。手動で設定する場合は、VS Code(GitHub Copilot)インストールガイドをご覧ください。
IntelliJ IDEA(GitHub Copilot)
これを mcp.json 設定ファイルに追加し、プレースホルダーの値を Contrast の認証情報に置き換えてください。
{
"servers": {
"contrast": {
"command": "docker",
"args": [
"run",
"-e",
"CONTRAST_HOST_NAME",
"-e",
"CONTRAST_API_KEY",
"-e",
"CONTRAST_SERVICE_KEY",
"-e",
"CONTRAST_USERNAME",
"-e",
"CONTRAST_ORG_ID",
"-i",
"--rm",
"contrast/mcp-contrast:latest",
"-t",
"stdio"
],
"env": {
"CONTRAST_HOST_NAME": "example.contrastsecurity.com",
"CONTRAST_API_KEY": "example",
"CONTRAST_SERVICE_KEY": "example",
"CONTRAST_USERNAME": "[email protected]",
"CONTRAST_ORG_ID": "example"
}
}
}
}
📖 IntelliJ(GitHub Copilot)インストールガイド全文 - 手順に沿った設定方法と JAR デプロイのオプションを含みます
その他の AI アシスタント
- Claude Code - Anthropic 公式の CLI ツール
- Claude Desktop - スタンドアロンの Claude アプリケーション
- Cline Plugin - VS Code の代替 AI アシスタント
- その他すべての MCP ホスト - oterm などの完全なインストールガイド
追加の設定とトラブルシューティング
JAR ファイルの取得(ダウンロード、アテステーションの検証、ソースからのビルド)、プロキシの設定、トラブルシューティングについては、ローカル MCP サーバーガイドに移動しました。
プロンプトの例
特に記載のない限り、これらのプロンプトはどちらのサーバーでも使用できます。
開発者向け
コードの脆弱性を修正する
- アプリケーション Y の脆弱性を一覧表示してください。
- アプリケーション Y の脆弱性 X の詳細を教えてください。
- 脆弱性 X を確認して修正してください。
サードパーティライブラリの修正
- アプリケーション X で、重大または高リスクの脆弱性があり、現在使用されているライブラリはどれですか?
- 重大な脆弱性があるライブラリ X を、安全なバージョンに更新してください。
- アプリケーション X で使用されていないライブラリはどれですか?
タグでアプリケーションを取得する
- 「backend」タグが付いたアプリケーションを教えてください。
メタデータによるアプリケーションの取得
- メタデータが「dev-team」と「backend-team」のアプリケーションを教えてください。
セッションメタデータによる脆弱性の取得
- Application X のセッションメタデータを教えてください。
- Application X の最新セッションにおける脆弱性を教えてください。
- Application X のセッションメタデータが「Branch Name」「feature/some-new-fix」のセッションにおける脆弱性を教えてください。
- Application X の最新セッションのルートカバレッジを教えてください。
- Application X のセッションメタデータが「Branch Name」「feature/some-new-fix」のセッションのルートカバレッジを教えてください。
セキュリティ担当者向け
- CVE-xxxx-xxxx に対して脆弱なアプリケーションとサーバーの内訳を教えてください。
- xxx という名前のアプリケーションで使用されているライブラリを一覧表示し、commons-collections のバージョンを教えてください。
- Application X のどの脆弱性が Protect または ADR のルールによってブロックされていますか?
- Protect が有効になっていない本番サーバーはどれですか?
- エージェントが最新ではないサーバーを表示してください。
- 過去 7 日間の攻撃イベントを表示し、悪用されたものを教えてください。
統合データプラットフォーム(NorthStar)を備えたホステッドサーバー
これらのプロンプトを利用するには、組織でホステッドサーバーと Contrast 統合データプラットフォーム(NorthStar)が有効になっている必要があります。
- 組織全体で最も高いリスクとなる CVE はどれですか?
- 組織は CVE-xxxx-xxxx から保護されていますか?
- CVE-xxxx-xxxx の影響を受けるアプリケーションとライブラリはどれですか?
- Application X の未解決のセキュリティ問題を表示してください。
- incident X の詳細と、それに関連付けられた問題を教えてください。
- issue X の根拠となる observation は何ですか?
データプライバシー
Contrast MCP Server は、Contrast のデータと、選択した AI エージェント/LLM との橋渡しをします。 Contrast の MCP サーバーを使用すると、Contrast のデータが AI エージェント/LLM に提供されます。使用する AI エージェント/LLM がデータプライバシーポリシーに準拠していることを確認する責任は、お客様にあります。 質問の内容に応じて、次の情報が AI エージェント/LLM に提供されます。
- アプリケーションの詳細
- アプリケーションのルール設定
- 脆弱性の詳細
- ルートカバレッジデータ
- ADR/Protect の攻撃イベントの詳細
- サーバーのインベントリとエージェントの詳細(ホスト名、パス、エージェントのバージョン、環境、ログレベル、タグ)
- issue、incident、observation、CVE Shield のデータ(NorthStar を備えたホステッドサーバー)
変更履歴
破壊的変更や新機能を含む完全なリリース履歴については、CHANGELOG.md を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。