Mcp Panther

Mcp Panther

🚀 Panther MCP Server

Panther的模型上下文协议(MCP)服务器具备以下功能:

  1. 在IDE中编写和调整检测规则
  2. 使用自然语言交互式查询安全日志
  3. 对一个或多个警报进行分类、评论和解决

🔍 可用工具

警报工具

警报
工具名称 描述 示例提示
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配置

  1. 在Panther中创建API令牌:

    • 导航到设置(齿轮图标)→ API令牌
    • 创建一个具有以下权限的新令牌(建议从只读权限开始):
    查看所需权限

  2. 安全地存储生成的令牌(例如,存储在1Password中)

  3. 从浏览器中获取Panther实例URL(例如,https://YOUR - PANTHER - INSTANCE.domain

    • 注意:URL必须包含https://

📦 安装指南

请选择以下安装方法之一:

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运行:

  1. 安装UV
  2. 配置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

  1. 打开Claude Desktop设置并导航到开发者选项卡
  2. 点击“编辑配置”以打开配置文件
  3. 添加以下配置:
{
"mcpServers": {
"mcp-panther": {
"command": "uvx",
"args": ["mcp-panther"],
"env": {
"PANTHER_INSTANCE_URL": "https://YOUR-PANTHER-INSTANCE.domain",
"PANTHER_API_TOKEN": "YOUR-PANTHER-API-TOKEN"
}
}
}
}
  1. 保存文件并重启Claude Desktop

如果遇到任何问题,请尝试此处的故障排除步骤

Goose客户端

Goose(Block的开源AI代理)一起使用:

# 使用MCP服务器启动Goose
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文件。

👥 贡献者

本项目的成功离不开所有贡献者的努力。特别感谢来自BlockTomasz TchorzGlenn Edwards,他们在与Panther的联合开源项目MCP - Panther的启动过程中发挥了核心作用。

完整的贡献者列表请参阅CONTRIBUTORS.md。

🤝 贡献指南

我们欢迎大家为改进MCP - Panther做出贡献!您可以通过以下方式提供帮助:

  • 报告问题:为任何漏洞或功能请求创建一个问题
  • 提交拉取请求:分叉仓库并提交修复漏洞或新增功能的PR
  • 改进文档:帮助我们使文档更加清晰和全面
  • 分享使用案例:告诉我们您如何使用MCP - Panther以及如何使其变得更好

请确保您的贡献遵循我们的编码标准,并包含适当的测试和文档。

  • 0 关注
  • 0 收藏,8 浏览
  • system 提出于 2025-09-30 03:09

相似服务问题