🚀 Panther MCP Server
Pantherのモデルコンテキストプロトコル(MCP)サーバーは、以下の機能を提供します。
- IDEから検出ルールを作成し、調整する
- 自然言語を使用してセキュリティログを対話的にクエリする
- 1つまたは複数のアラートをトリアージし、コメントを追加し、解決する

🚀 クイックスタート
このセクションでは、Panther MCP Serverの利用を開始するための基本的な手順を説明します。
✨ 主な機能
- IDEからの検出ルール作成と調整:IDEを使って検出ルールを作成し、調整することができます。
- 自然言語によるセキュリティログクエリ:自然言語を使ってセキュリティログを対話的にクエリすることができます。
- アラートのトリアージ、コメント、解決:1つまたは複数のアラートをトリアージし、コメントを追加し、解決することができます。
📦 インストール
Docker Setup (おすすめ)
最も簡単な方法は、事前にビルドされたDockerイメージを使用することです。
{
"mcpServers": {
"mcp-panther": {
"command": "docker",
"args": [
"run",
"-i",
"-e", "PANTHER_INSTANCE_URL",
"-e", "PANTHER_API_TOKEN",
"--rm",
"ghcr.io/panther-labs/mcp-panther"
],
"env": {
"PANTHER_INSTANCE_URL": "https://YOUR-PANTHER-INSTANCE.domain",
"PANTHER_API_TOKEN": "YOUR-API-KEY"
}
}
}
}
UVX Setup
Pythonユーザーは、uvxを使用してPyPIから直接実行することができます。
- UVをインストールする
- MCPクライアントを設定する
{
"mcpServers": {
"mcp-panther": {
"command": "uvx",
"args": ["mcp-panther"],
"env": {
"PANTHER_INSTANCE_URL": "https://YOUR-PANTHER-INSTANCE.domain",
"PANTHER_API_TOKEN": "YOUR-PANTHER-API-TOKEN"
}
}
}
}
💻 使用例
Cursor
こちらの手順に従って、プロジェクトまたはグローバルのMCP設定を構成します。このファイルをバージョン管理にチェックインしないようにしてください。
設定後、Cursorの設定 > MCPに移動して、実行中のサーバーを表示します。
ヒント
- 新しいルールを生成する場所を指定するには、
@
記号を使用してから特定のディレクトリを入力します。
- ツールの使用中により高い信頼性を得るには、特定のモデル(例:Claude 3.7 Sonnet)を選択してみましょう。
- MCPクライアントがPanther MCPサーバーからツールを見つけられない場合は、クライアントを再起動し、MCPサーバーが実行中であることを確認します。Cursorでは、MCPサーバーを更新して新しいチャットを開始します。
Claude Desktop
Claude Desktopで使用するには、claude_desktop_config.json
を手動で設定します。
- Claude Desktopの設定を開き、開発者タブに移動します。
- [設定を編集] をクリックして、設定ファイルを開きます。
- 次の設定を追加します。
{
"mcpServers": {
"mcp-panther": {
"command": "uvx",
"args": ["mcp-panther"],
"env": {
"PANTHER_INSTANCE_URL": "https://YOUR-PANTHER-INSTANCE.domain",
"PANTHER_API_TOKEN": "YOUR-PANTHER-API-TOKEN"
}
}
}
}
- ファイルを保存し、Claude Desktopを再起動します。
問題が発生した場合は、こちらのトラブルシューティング手順 を試してみてください。
Goose
Goose(BlockのオープンソースAIエージェント)で使用するには、次のコマンドを実行します。
goose session --with-extension "uvx mcp-panther"
📚 詳細ドキュメント
利用可能なツール
Alerts
ツール名 |
説明 |
サンプルプロンプト |
add_alert_comment |
Pantherアラートにコメントを追加する |
"アラートabc123にコメント 'かなり深刻そう' を追加する" |
get_alert_by_id |
特定のアラートの詳細情報を取得する |
"アラート8def456のステータスは何ですか?" |
get_alert_events |
特定のアラートのイベントのサンプルを取得する |
"アラート8def456に関連するイベントを表示してください" |
list_alerts |
包括的なフィルタオプション(日付範囲、重大度、ステータスなど)でアラートをリストする |
"過去24時間のすべての高重大度アラートを表示してください" |
update_alert_assignee_by_id |
1つまたは複数のアラートの担当者を更新する |
"アラートabc123とdef456をJohnに割り当てる" |
update_alert_status |
1つまたは複数のアラートのステータスを更新する |
"アラートabc123とdef456を解決済みとしてマークする" |
list_alert_comments |
特定のアラートのすべてのコメントをリストする |
"アラートabc123のすべてのコメントを表示してください" |
Data
ツール名 |
説明 |
サンプルプロンプト |
execute_data_lake_query |
Pantherのデータレイクに対してSQLクエリを実行する |
"過去1日間の失敗したログイン試行をAWS CloudTrailログからクエリする" |
get_data_lake_query_results |
以前に実行したデータレイククエリの結果を取得する |
"クエリID abc123の結果を取得する" |
get_sample_log_events |
特定のログタイプの最近の10件のイベントのサンプルを取得する |
"AWS_CLOUDTRAILログのサンプルイベントを表示してください" |
get_table_schema |
特定のテーブルのスキーマ情報を取得する |
"AWS_CLOUDTRAILテーブルのスキーマを表示してください" |
list_databases |
Pantherのすべての利用可能なデータレイクデータベースをリストする |
"すべての利用可能なデータベースを表示してください" |
list_log_sources |
オプションのフィルタ(ヘルスステータス、ログタイプ、統合タイプなど)でログソースをリストする |
"すべての健全なS3ログソースを表示してください" |
list_database_tables |
Pantherのデータレイク内の特定のデータベースのすべての利用可能なテーブルをリストする |
"panther_logsデータベースにあるテーブルは何ですか?" |
summarize_alert_events |
複数のアラートのイベントデータを集計して、パターンと関係を分析する |
"アラートabc123とdef456のイベントのパターンを表示してください" |
Rules
ツール名 |
説明 |
サンプルプロンプト |
create_rule |
新しいPantherルールを作成する |
"AWSコンソールで1日以内に7回以上のログイン失敗を検出する新しいルールを作成する" |
disable_rule |
ルールを無効にする(有効フラグをfalseに設定する) |
"ルールabc123を無効にする" |
get_global_helper_by_id |
特定のグローバルヘルパーの詳細情報を取得する |
"グローバルヘルパーID panther_github_helpersの詳細を取得する" |
get_policy_by_id |
特定のポリシーの詳細情報を取得する |
"ポリシーID AWS.S3.Bucket.PublicReadACPの詳細を取得する" |
get_rule_by_id |
特定のルールの詳細情報を取得する |
"ルールID abc123の詳細を取得する" |
get_scheduled_rule_by_id |
特定のスケジュールされたルールの詳細情報を取得する |
"スケジュールされたルールabc123の詳細を取得する" |
get_simple_rule_by_id |
特定のシンプルルールの詳細情報を取得する |
"シンプルルールabc123の詳細を取得する" |
list_global_helpers |
オプションのページネーションですべてのPantherグローバルヘルパーをリストする |
"CrowdStrikeイベントのすべてのグローバルヘルパーを表示してください" |
list_policies |
オプションのページネーションですべてのPantherポリシーをリストする |
"AWSリソースのすべてのポリシーを表示してください" |
list_rules |
オプションのページネーションですべてのPantherルールをリストする |
"すべての有効なルールを表示してください" |
list_scheduled_rules |
オプションのページネーションですべてのスケジュールされたルールをリストする |
"Panther内のすべてのスケジュールされたルールをリストする" |
list_simple_rules |
オプションのページネーションですべてのシンプルルールをリストする |
"Panther内のすべてのシンプルルールを表示してください" |
put_rule |
既存のルールを更新するか、新しいルールを作成する |
"ルールabc123を新しい重大度HIGHで更新する" |
Schemas
ツール名 |
説明 |
サンプルプロンプト |
create_or_update_schema |
スキーマを作成または更新する |
"カスタムログタイプの新しいスキーマを作成する" |
get_schema_details |
特定のスキーマの詳細情報を取得する |
"AWS.CloudTrailスキーマの完全な詳細を取得する" |
list_schemas |
オプションのフィルタで利用可能なスキーマをリストする |
"すべてのAWS関連のスキーマを表示してください" |
Metrics
ツール名 |
説明 |
サンプルプロンプト |
get_rule_alert_metrics |
ルールごとにグループ化されたアラートに関するメトリクスを取得する |
"アラート数で上位10のルールを表示する" |
get_severity_alert_metrics |
重大度ごとにグループ化されたアラートに関するメトリクスを取得する |
"過去1週間の重大度別のアラート数を表示する" |
Users
ツール名 |
説明 |
サンプルプロンプト |
list_panther_users |
すべてのPantherユーザーアカウントをリストする |
"すべてのアクティブなPantherユーザーを表示してください" |
get_permissions |
現在のユーザーの権限を取得する |
"私はどのような権限を持っていますか?" |
セキュリティのベストプラクティス
Pantherは、以下のMCPのベストプラクティスを強く推奨します。
- 信頼できる、公式に署名されたMCPサーバーのみを実行する:実行前にデジタル署名またはチェックサムを検証し、ツールコードを監査し、非公式のパブリッシャーからのコミュニティツールを避けます。
- Panther APIトークンに厳格な最小特権を適用する:トークンを必要な最小限の権限にスコープし、IP許可リストまたはCIDR範囲にバインドして、漏洩した場合に無力化します。好みの間隔(例:30日ごと)で資格情報をローテーションします。
- 読み取り専用マウントでロックダウンされたサンドボックス(例:Docker)でMCPサーバーをホストする:これにより、侵害を最小限の影響範囲に限定します。
- Pantherへの資格情報アクセスを監視し、異常を監視する:Pantherルールを作成しましょう!
mcp-scan
でMCPサーバーをスキャンする:invariantlabsによる mcp-scan
ツールを使用して、一般的な脆弱性をスキャンします。
Pantherの設定
- PantherでAPIトークンを作成する
- 生成されたトークンを安全に保存する(例:1Password)
- ブラウザからPantherインスタンスのURLを取得する(例:
https://YOUR-PANTHER-INSTANCE.domain
)
- 注:これには
https://
が含まれている必要があります。
🔧 トラブルシューティング
サーバーログを確認して、詳細なエラーメッセージを取得します:tail -n 20 -F ~/Library/Logs/Claude/mcp*.log
。一般的な問題と解決策を以下に示します。
ツールの実行
{"success": false, "message": "Failed to [action]: Request failed (HTTP 403): {\"error\": \"forbidden\"}"}
エラーが発生した場合、APIトークンにツールが必要とする特定の権限がない可能性があります。
- PantherインスタンスのURLが正しく設定されていることを確認します。これは、MCPクライアントの
config://panther
リソースで確認できます。
📄 ライセンス
このプロジェクトは、Apache License 2.0の下でライセンスされています - 詳細については、LICENSEファイルを参照してください。
貢献者
このプロジェクトは、すべての貢献者のおかげで存在しています。Block の Tomasz Tchorz と Glenn Edwards に特別な感謝を送ります。彼らは、Pantherとの共同オープンソース取り組みとしてMCP-Pantherを立ち上げる核心的な役割を果たしました。
貢献者の完全なリストについては、CONTRIBUTORS.md を参照してください。
貢献
MCP-Pantherの改善に貢献することを歓迎します!以下の方法でお手伝いいただけます。
- 問題の報告:バグや機能要求について問題を開きます。
- プルリクエストの送信:リポジトリをフォークし、バグ修正や新機能のプルリクエストを送信します。
- ドキュメントの改善:ドキュメントをより明確で包括的にするのを手伝ってください。
- ユースケースの共有:MCP-Pantherの使用方法と改善点を教えてください。
貢献がコーディング標準に従い、適切なテストとドキュメントを含むことを確認してください。