小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
MIT License
9
最近更新:1个月前

一个促进与OpenCTI集成的模型上下文协议服务器,允许用户通过标准化接口查询和检索网络威胁情报数据。

OpenCTI MCP 服务器

smithery badge
繁体中文

OpenCTI Server MCP server

概述

OpenCTI MCP 服务器是一个模型上下文协议(MCP)服务器,提供与 OpenCTI(开放网络威胁情报)平台的无缝集成。它通过标准化接口实现威胁情报数据的查询和检索。

功能特性

  • 获取和搜索威胁情报数据
    • 获取最新报告并按ID搜索
    • 搜索恶意软件信息
    • 查询入侵指标
    • 搜索威胁行为者
  • 用户和组管理
    • 列出所有用户和组
    • 按ID获取用户详情
  • STIX对象操作
    • 列出攻击模式
    • 按名称获取活动信息
  • 系统管理
    • 列出连接器
    • 查看状态模板
  • 文件操作
    • 列出所有文件
    • 按ID获取文件详情
  • 参考数据访问
    • 列出标记定义
    • 查看可用标签
  • 可自定义查询限制
  • 完整的GraphQL查询支持

先决条件

  • Node.js 16 或更高版本
  • 可访问的 OpenCTI 实例
  • OpenCTI API 令牌

安装

通过 Smithery 安装

通过 Smithery 为 Claude Desktop 自动安装 OpenCTI 服务器:

bash 复制代码
npx -y @smithery/cli install opencti-server --client claude

手动安装

bash 复制代码
# 克隆仓库
git clone https://github.com/yourusername/opencti-mcp-server.git

# 安装依赖
cd opencti-mcp-server
npm install

# 构建项目
npm run build

配置

环境变量

.env.example 复制为 .env 并更新您的 OpenCTI 凭据:

bash 复制代码
cp .env.example .env

必需的环境变量:

  • OPENCTI_URL: 您的 OpenCTI 实例 URL
  • OPENCTI_TOKEN: 您的 OpenCTI API 令牌

MCP 设置

在您的 MCP 设置位置创建配置文件:

json 复制代码
{
  "mcpServers": {
    "opencti": {
      "command": "node",
      "args": ["path/to/opencti-server/build/index.js"],
      "env": {
        "OPENCTI_URL": "${OPENCTI_URL}",  // 将从 .env 加载
        "OPENCTI_TOKEN": "${OPENCTI_TOKEN}"  // 将从 .env 加载
      }
    }
  }
}

安全注意事项

  • 切勿将 .env 文件或 API 令牌提交到版本控制
  • 妥善保管您的 OpenCTI 凭据
  • .gitignore 文件已配置排除敏感文件

可用工具

报告

get_latest_reports

检索最新的威胁情报报告。

typescript 复制代码
{
  "name": "get_latest_reports",
  "arguments": {
    "first": 10  // 可选,默认为10
  }
}

get_report_by_id

按ID检索特定报告。

typescript 复制代码
{
  "name": "get_report_by_id",
  "arguments": {
    "id": "report-uuid"  // 必需
  }
}

搜索操作

search_malware

在OpenCTI数据库中搜索恶意软件信息。

typescript 复制代码
{
  "name": "search_malware",
  "arguments": {
    "query": "ransomware",
    "first": 10  // 可选,默认为10
  }
}

search_indicators

搜索入侵指标。

typescript 复制代码
{
  "name": "search_indicators",
  "arguments": {
    "query": "domain",
    "first": 10  // 可选,默认为10
  }
}

search_threat_actors

搜索威胁行为者信息。

typescript 复制代码
{
  "name": "search_threat_actors",
  "arguments": {
    "query": "APT",
    "first": 10  // 可选,默认为10
  }
}

用户管理

get_user_by_id

按ID检索用户信息。

typescript 复制代码
{
  "name": "get_user_by_id",
  "arguments": {
    "id": "user-uuid"  // 必需
  }
}

list_users

列出系统中的所有用户。

typescript 复制代码
{
  "name": "list_users",
  "arguments": {}
}

list_groups

列出所有组及其成员。

typescript 复制代码
{
  "name": "list_groups",
  "arguments": {
    "first": 10  // 可选,默认为10
  }
}

STIX对象

list_attack_patterns

列出系统中的所有攻击模式。

typescript 复制代码
{
  "name": "list_attack_patterns",
  "arguments": {
    "first": 10  // 可选,默认为10
  }
}

get_campaign_by_name

按名称检索活动信息。

typescript 复制代码
{
  "name": "get_campaign_by_name",
  "arguments": {
    "name": "campaign-name"  // 必需
  }
}

系统管理

list_connectors

列出所有系统连接器。

typescript 复制代码
{
  "name": "list_connectors",
  "arguments": {}
}

list_status_templates

列出所有状态模板。

typescript 复制代码
{
  "name": "list_status_templates",
  "arguments": {}
}

文件操作

get_file_by_id

按ID检索文件信息。

typescript 复制代码
{
  "name": "get_file_by_id",
  "arguments": {
    "id": "file-uuid"  // 必需
  }
}

list_files

列出系统中的所有文件。

typescript 复制代码
{
  "name": "list_files",
  "arguments": {}
}

参考数据

list_marking_definitions

列出所有标记定义。

typescript 复制代码
{
  "name": "list_marking_definitions",
  "arguments": {}
}

list_labels

列出所有可用标签。

typescript 复制代码
{
  "name": "list_labels",
  "arguments": {}
}

贡献

欢迎贡献!请随时提交拉取请求。

许可证

MIT 许可证