RISKEN MCP Server について
RISKEN MCP Serverは、MCPクライアントをRISKEN APIに接続し、セキュリティ運用を支援します。検出事項やアラートの検索、内容の取得、解決済み項目のアーカイブに対応し、ローカルとリモートの実行方式、OAuth2.1認証を備えています。
主な機能
- 01ID、ソース、リソース、スコア、状態による検出事項検索
- 02状態によるアラート検索
- 03メモを付けた検出事項のアーカイブ
- 04リソースとしての検出事項内容の取得
- 05ローカルとリモートの実行方式
- 06サードパーティーOAuth2.1認証
活用シーン
- 01アクティブなセキュリティアラートの確認
- 02検出事項と修正情報の調査
- 03解決済み検出事項のアーカイブ
- 04クライアントからリモートMCPサーバーへの接続
MCP 対応
RISKENの検出事項・アラート操作、認証コンテキスト、検出事項内容のリソースをMCPクライアントに提供します。stdioとStreamable HTTPに対応しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
RISKEN MCP サーバー

RISKEN MCP サーバーは、RISKEN API とのシームレスな統合を実現するModel Context Protocol(MCP)サーバーです。開発者やツール向けに、高度な自動化機能と対話機能を提供します。
ユースケース
RISKEN MCP サーバーを日常的に利用する AI ツールに接続すると、次のようなさまざまな操作を実行できます。
- RISKEN のアクティブなアラートを確認し、そのステータスを監視します。
- 説明や修復手順を含む検出結果を検索、分析、確認します。
- 解決済みの検出結果をアーカイブして、セキュリティ態勢を整理された状態に保ちます。
前提条件
- コンテナーでサーバーを実行するには、Dockerをインストールする必要があります。
- Docker をインストールしたら、Docker が実行中であることも確認してください。
- RISKEN アクセストークンも必要です。
ローカル MCP サーバー
次の MCP サーバー設定を、MCP クライアント(Claude DesktopまたはCursor)の設定に追加してください。
{
"mcpServers": {
"risken": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"RISKEN_ACCESS_TOKEN",
"-e",
"RISKEN_URL",
"ghcr.io/ca-risken/risken-mcp-server",
"stdio"
],
"env": {
"RISKEN_URL": "http://localhost:8098",
"RISKEN_ACCESS_TOKEN": "your_access_token"
}
}
}
}
リモート MCP サーバー
RISKEN MCP サーバーは Streamable HTTP に対応しています。
ローカルでの実行
docker run -it --rm \
-e RISKEN_URL=http://localhost:8098 \
-e RISKEN_ACCESS_TOKEN=xxxxxx \
-p 8080:8080 \
ghcr.io/ca-risken/risken-mcp-server http
Cloud Run での実行
Terraform を使って Google Cloud Run にサーバーをデプロイできます。
-
terraform/examples/googlecloudにアクセスし、Terraform を使ってサーバーを Google Cloud Run にデプロイします。
-
次の MCP サーバー設定を、MCP クライアント(Claude DesktopまたはCursor)の設定に追加します。
注: ほとんどの MCP クライアントでは stdio 接続のみが許可されているため、現在、リモート MCP サーバーへの接続にはプロキシとして mcp-remote を使用する必要があります。
Claude Desktop、Cursor など
{
"mcpServers": {
"risken": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8098/mcp",
"--header",
"RISKEN-ACCESS-TOKEN:${RISKEN_ACCESS_TOKEN}"
],
"env": {
"RISKEN_ACCESS_TOKEN": "xxxxxx"
}
}
}
}
サードパーティ認証(OAuth2.1)
RISKEN MCP サーバーは、外部の ID プロバイダー(IdP)を介した安全な認証を可能にするサードパーティ認証(OAuth2.1)に対応しています。
概要
OAuth2.1 の実装は、サードパーティ認証フローを含むMCP 認証仕様に準拠しており、次のように動作します。
- MCP クライアントが MCP サーバーとの OAuth フローを開始します
- MCP サーバーが認可サーバーとして動作し、ユーザーを IdP にリダイレクトします
- IdPがユーザーを認証し、MCP サーバーに戻します
- MCP サーバーが MCP クライアント用のアクセストークンを発行します
- MCP クライアントが以降の MCP リクエストでアクセストークンを使用します
OAuth フロー
sequenceDiagram
participant Browser as User Browser
participant Client as MCP Client
participant Server as MCP Server
participant IdP as Identity Provider
Client->>Server: POST /mcp (no auth)
Server->>Client: 401 Unauthorized + WWW-Authenticate
Client->>Server: GET /.well-known/oauth-authorization-server
Server->>Client: Authorization metadata
Client->>Server: POST /register (Dynamic Client Registration)
Server->>Client: client_id
Client->>Browser: Open authorization URL (with PKCE challenge)
Browser->>IdP: User authentication
IdP->>Browser: Redirect to callback URL (with code)
Browser->>Server: GET /oauth/callback (IdP code)
Note over Server: Store IdP code, generate internal JWT authorization code
Server->>Client: Authorization complete (internal code)
Client->>Server: POST /token (internal code + PKCE verifier)
Note over Server: Verify PKCE challenge/verifier
Server->>IdP: Exchange IdP code for access token
IdP->>Server: Access token
Server->>Client: Access token
Client->>Server: POST /mcp (with Bearer token)
Server->>Client: MCP response
設定
MCP サーバーの設定
OAuth2.1 に対応するには、次の環境変数が必要です。
| 変数 | 必須 | 説明 | 例 |
|---|---|---|---|
MCP_SERVER_URL | ✅ | MCP サーバーの公開 URL | http://localhost:8080 |
AUTHZ_METADATA_ENDPOINT | ✅ | IdP の OAuth メタデータエンドポイント | https://your-idp.com/.well-known/oauth-authorization-server |
CLIENT_ID | ✅ | IdP の OAuth クライアント ID | your-client-id |
CLIENT_SECRET | ✅ | IdP の OAuth クライアントシークレット | your-client-secret |
JWT_SIGNING_KEY | ✅ | セッション JWT トークンの署名キー | your-256-bit-secret |
ID プロバイダーの要件
IdP は、次の OAuth 機能に対応している必要があります。
| 機能 | 要件 | 説明 |
|---|---|---|
| 認可コードフロー | ✅ 必須 | 標準的な OAuth 認可コードグラント |
| JWKS エンドポイント | ✅ 必須 | JWT 検証用の JSON Web Key Set |
| メタデータ検出 | ✅ 必須 | RFC 8414 認可サーバーメタデータ |
注: PKCE の検証は、MCP 仕様に従って MCP クライアントと MCP サーバーの間で内部的に処理されます。IdP は PKCE に対応する必要はありません。
ツール
コンテキスト
- get_context - 現在の認証コンテキストを取得します。
- Organization トークンを使用している場合は Organization 情報、Project トークンを使用している場合は Project 情報を返します。
検出結果
-
search_finding - RISKEN の検出結果を検索します。(Organization トークンと Project トークンの両方に対応)
finding_id- 検出結果 ID で検索します。alert_id- アラート ID で検索します。(Project トークンのみ)data_source- データソースで検索します。resource_name- リソース名で検索します。from_score- 最小スコアで検索します。0.0~0.3- 低0.3~0.6- 中0.6~0.8- 高0.8~1.0- 重大
status- ステータスで検索します。0- すべて1- アクティブ(デフォルト)2- 保留中
offset- オフセットで検索します。limit- 上限で検索します。
-
archive_finding - RISKEN の検出結果をアーカイブします。(Organization トークンと Project トークンの両方に対応)
finding_id- 検出結果 ID を指定してアーカイブします。(必須)note- メモ。
アラート
- search_alert - RISKEN のアラートを検索します。(Project トークンのみ)
status- ステータスで検索します。1- アクティブ2- 保留中3- 無効(すでにクローズ済み)
リソース
検出結果の内容
- 検出結果の内容を取得 特定の検出結果の内容を取得します。
- テンプレート:
finding://{project_id}/{finding_id} - パラメーター:
project_id: プロジェクトの ID。finding_id: 検出結果の ID。
- テンプレート:
ライセンス
このプロジェクトは MIT ライセンスの下で公開されています。詳細は LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。