🚀 Panther MCP Server
Panther的模型上下文協議(MCP)服務器具備以下功能:
- 在IDE中編寫和調整檢測規則
- 使用自然語言交互式查詢安全日誌
- 對一個或多個警報進行分類、評論和解決
🔍 可用工具
警報工具
警報
工具名稱 |
描述 |
示例提示 |
add_alert_comment |
為Panther警報添加評論 |
"為警報abc123添加評論 '看起來很嚴重'" |
get_alert_by_id |
獲取特定警報的詳細信息 |
"警報8def456的狀態如何?" |
get_alert_events |
獲取給定警報的少量事件樣本 |
"顯示與警報8def456相關的事件" |
list_alerts |
列出具有綜合過濾選項(日期範圍、嚴重性、狀態等)的警報 |
"顯示過去24小時內的所有高嚴重性警報" |
update_alert_assignee_by_id |
更新一個或多個警報的負責人 |
"將警報abc123和def456分配給John" |
update_alert_status |
更新一個或多個警報的狀態 |
"將警報abc123和def456標記為已解決" |
list_alert_comments |
列出特定警報的所有評論 |
"顯示警報abc123的所有評論" |
數據工具
數據
工具名稱 |
描述 |
示例提示 |
execute_data_lake_query |
針對Panther的數據湖執行SQL查詢 |
"查詢過去一天內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的事件模式" |
規則工具
規則
工具名稱 |
描述 |
示例提示 |
create_rule |
創建新的Panther規則 |
"創建一個新規則,以檢測AWS控制檯中任何用戶在一天內超過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的嚴重性更新為高" |
架構工具
架構
工具名稱 |
描述 |
示例提示 |
create_or_update_schema |
創建或更新架構 |
"為自定義日誌類型創建新架構" |
get_schema_details |
獲取特定架構的詳細信息 |
"獲取AWS.CloudTrail架構的完整詳細信息" |
list_schemas |
列出可用的架構,支持可選過濾 |
"顯示所有與AWS相關的架構" |
指標工具
指標
工具名稱 |
描述 |
示例提示 |
get_rule_alert_metrics |
獲取按規則分組的警報指標 |
"按警報數量顯示前10條規則" |
get_severity_alert_metrics |
獲取按嚴重性分組的警報指標 |
"顯示上週按嚴重性劃分的警報數量" |
用戶工具
用戶
工具名稱 |
描述 |
示例提示 |
list_panther_users |
列出所有Panther用戶賬戶 |
"顯示所有活躍的Panther用戶" |
get_permissions |
獲取當前用戶的權限 |
"我有哪些權限?" |
⚠️ 安全最佳實踐
Panther強烈建議遵循以下MCP最佳實踐:
- 僅運行受信任的、官方簽名的MCP服務器:在運行前驗證數字簽名或校驗和,審計工具代碼,並避免使用非官方發佈者的社區工具。
- 對Panther API令牌應用嚴格的最小權限原則:將令牌的權限範圍設置為所需的最小權限,並將其綁定到IP允許列表或CIDR範圍,這樣即使令牌被洩露也將毫無用處。定期輪換憑證(例如,每30天一次)。
- 將MCP服務器部署在鎖定的沙箱(如Docker)中,並使用只讀掛載:這樣可以將任何安全漏洞的影響範圍降至最低。
- 監控對Panther的憑證訪問並監測異常情況:可以編寫一個Panther規則來實現!
- 使用
mcp - scan
掃描MCP服務器:利用invariantlabs提供的mcp - scan
工具來檢測常見漏洞。
⚙️ Panther配置
-
在Panther中創建API令牌:
- 導航到設置(齒輪圖標)→ API令牌
- 創建一個具有以下權限的新令牌(建議從只讀權限開始):
查看所需權限

-
安全地存儲生成的令牌(例如,存儲在1Password中)
-
從瀏覽器中獲取Panther實例URL(例如,https://YOUR - PANTHER - INSTANCE.domain
)
📦 安裝指南
請選擇以下安裝方法之一:
Docker安裝(推薦)
使用我們預先構建的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安裝
對於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"
🛠️ 故障排除
查看服務器日誌以獲取詳細的錯誤消息: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做出貢獻!您可以通過以下方式提供幫助:
- 報告問題:為任何漏洞或功能請求創建一個問題
- 提交拉取請求:分叉倉庫並提交修復漏洞或新增功能的PR
- 改進文檔:幫助我們使文檔更加清晰和全面
- 分享使用案例:告訴我們您如何使用MCP - Panther以及如何使其變得更好
請確保您的貢獻遵循我們的編碼標準,幷包含適當的測試和文檔。