返回市场
MCP服务器-TheHive

MCP服务器-TheHive

作者:gbrigandi11 星标更新:2025-05-27

项目介绍

MCP Server for TheHive

一个提供AI模型和自动化工具访问TheHive事件响应平台的MCP(模型上下文协议)服务器。

概述

此服务器作为MCP客户端(如AI助手)与TheHive之间的桥梁,允许它们进行以下操作:

  • 获取并分析安全警报
  • 访问案件信息
  • 将警报提升为案件
  • 执行事件响应操作

功能

可用工具

  1. get_thehive_alerts - 从TheHive获取警报列表

    • 可选参数 limit(默认值:100)
    • 返回格式化的警报信息,包括ID、标题、严重性和状态
  2. get_thehive_alert_by_id - 获取特定警报的详细信息

    • 必需参数 alert_id
    • 返回详细的警报信息
  3. get_thehive_cases - 从TheHive获取案件列表

    • 可选参数 limit(默认值:100)
    • 返回格式化的案件信息
  4. get_thehive_case_by_id - 获取特定案件的详细信息

    • 必需参数 case_id
    • 返回详细的案件信息
  5. promote_alert_to_case - 将警报提升为案件

    • 必需参数 alert_id
    • 返回新创建案件的信息
  6. create_thehive_case - 在TheHive中创建新的案件

    • 必需参数 titledescription
    • 可选参数:severitytagstlppapstatusassigneecase_templatestart_date
    • 返回新创建案件的信息

安装

先决条件

  • 对TheHive 5实例的访问权限
  • 有效的TheHive API令牌

下载预编译二进制文件

你可以从GitHub Releases页面下载适用于各种操作系统的预编译二进制文件。下载适合你系统的二进制文件,使其可执行,并放置在你希望的位置。

从源码构建

git clone <repository-url>
cd mcp-server-thehive
cargo build --release

配置

服务器需要以下环境变量:

  • THEHIVE_URL - TheHive API基础URL(默认值:http://localhost:9000/api
  • THEHIVE_API_TOKEN - TheHive API令牌(必需)
  • VERIFY_SSL - 是否验证SSL证书(默认值:false
  • RUST_LOG - 日志级别(可选,例如:debuginfo

环境文件

在项目根目录创建一个.env文件:

THEHIVE_URL=https://your-thehive-instance.com/api
THEHIVE_API_TOKEN=your-api-token-here
VERIFY_SSL=true
RUST_LOG=info

获取TheHive API令牌

  1. 登录到你的TheHive实例
  2. 转到用户设置API密钥
  3. 点击创建API密钥
  4. 复制生成的令牌并将其用作THEHIVE_API_TOKEN

使用方法

运行服务器

# 使用cargo
cargo run

# 使用已构建的二进制文件
./target/release/mcp-server-thehive

与MCP客户端集成

服务器通过标准输入输出使用MCP协议进行通信。配置你的MCP客户端以使用此服务器:

{
  "mcpServers": {
    "thehive": {
      "command": "/path/to/mcp-server-thehive",
      "env": {
        "THEHIVE_URL": "https://your-thehive-instance.com:9000/api",
        "THEHIVE_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

示例

获取最近的警报

{
  "method": "tools/call",
  "params": {
    "name": "get_thehive_alerts",
    "arguments": {
      "limit": 10
    }
  }
}

获取警报详情

{
  "method": "tools/call",
  "params": {
    "name": "get_thehive_alert_by_id",
    "arguments": {
      "alert_id": "~123456"
    }
  }
}

将警报提升为案件

{
  "method": "tools/call",
  "params": {
    "name": "promote_alert_to_case",
    "arguments": {
      "alert_id": "~123456"
    }
  }
}

创建新的案件

{
  "method": "tools/call",
  "params": {
    "name": "create_thehive_case",
    "arguments": {
      "title": "潜在恶意软件爆发",
      "description": "多个终端报告可疑进程活动。",
      "severity": 3,
      "tags": ["恶意软件", "终端", "EPP"],
      "tlp": 2,
      "assignee": "soc_level2"
    }
  }
}

开发

项目结构

mcp-server-thehive/
├── src/
│   ├── main.rs              # 主服务器实现
│   ├── lib.rs               # 库导出
│   └── thehive/
│       ├── mod.rs           # 模块声明
│       ├── client.rs        # TheHive API客户端
│       └── error.rs         # 错误类型
├── tests/
│   ├── bin/
│   │   └── mock_thehive_server.rs # 测试使用的模拟TheHive API服务器
│   ├── integration_test.rs    # 集成测试
│   └── mcp_stdio_test.rs      # 标准输入输出接口测试
├── Cargo.toml               # 依赖项和元数据
└── README.md                # 此文件

依赖项

  • rmcp - MCP协议实现
  • thehive-client - TheHive API客户端库
  • tokio - 异步运行时
  • reqwest - HTTP客户端
  • serde - 序列化框架
  • tracing - 日志记录和仪器

测试

该项目包含一套全面的集成测试,利用模拟的TheHive服务器。这个模拟服务器模拟TheHive API,使得可以在没有实际TheHive实例的情况下进行隔离和重复的测试。

运行测试:

# 运行所有测试(包括使用模拟服务器的集成测试)
cargo test

# 运行带有详细日志的测试(包括MCP服务器和模拟服务器的日志)
RUST_LOG=debug MCP_SERVER_THEHIVE_VERBOSE_TEST_LOGS=true cargo test

安全注意事项

  • 安全存储API令牌(使用环境变量或安全凭证存储)
  • 切勿将API令牌提交到版本控制
  • 生产环境中启用SSL验证
  • 限制对TheHive实例的网络访问
  • 使用最小权限API令牌访问TheHive
  • 监控并记录所有API交互
  • 定期轮换API令牌

故障排除

常见问题

  1. 连接被拒绝

    • 验证THEHIVE_URL是否正确
    • 检查与TheHive实例的网络连接
    • 确保TheHive正在运行且可访问
  2. 身份验证失败

    • 验证THEHIVE_API_TOKEN是否正确且未过期
    • 检查API令牌是否有必要的权限
    • 确保令牌格式正确
  3. SSL证书错误

    • 设置VERIFY_SSL=false用于测试(不推荐用于生产环境)
    • 安装正确的SSL证书
    • 使用有效的证书颁发机构

日志记录

启用调试日志以进行故障排除:

RUST_LOG=debug cargo run

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 如适用,添加测试
  5. 提交拉取请求

许可

本项目根据MIT许可发布 - 查看LICENSE文件了解详情。

相关项目