返回 MCP 目录
public公开dns本地运行

mcp-panther

Panther MCP服务器是一个安全分析平台,提供IDE编写检测规则、自然语言查询安全日志、警报处理等功能,支持多种工具和客户端配置。

article

README

🚀 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令牌
    • 创建一个具有以下权限的新令牌(建议从只读权限开始):
    查看所需权限

    Screenshot of Panther Token permissions Screenshot of Panther Token permissions

  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以及如何使其变得更好

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

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端