返回市场
MCP服务器皮层

MCP服务器皮层

作者:gbrigandi12 星标更新:2025-07-18

项目介绍

Cortex 的 MCP 服务器

Claude Cortex Session

此服务器充当桥梁,将一个 Cortex 实例的强大分析能力作为工具提供给 Model Context Protocol (MCP) 客户端使用,例如 Claude 这样的大型语言模型。它允许这些客户端利用 Cortex 分析器进行威胁情报任务。

什么是 Cortex?

Cortex 是一个强大、免费且开源的可观察性分析和主动响应引擎。它允许您使用各种“分析器”——连接外部服务或执行本地分析的模块化代码片段来分析可观察对象(如 IP 地址、URL、域名、文件等)。

使用 Cortex(以及这个 MCP 服务器)的好处:

  • 集中式分析:从单个点运行各种分析。
  • 可扩展性:轻松添加新的分析器以支持不同的威胁情报源和工具。
  • 自动化:自动执行丰富可观察对象的过程。
  • 集成:设计为与 TheHive(安全事件响应平台 SIRP)紧密协作,但也可以独立使用。
  • 安全性:基于 API 密钥的访问以保护您的 Cortex 实例。

此 MCP 服务器使这些好处对兼容 MCP 的客户端可用,使它们能够请求分析并接收结构化的结果。

预备条件

  1. Rust 工具链:确保已安装 Rust(访问 rustup.rs)。
  2. Cortex 实例:需要一个正在运行的 Cortex 实例。
    • 服务器需要网络访问此 Cortex 实例。
    • 具有权限列出分析器和运行作业的 Cortex API 密钥。
  3. 配置好的分析器:您打算使用的特定分析器(例如,AbuseIPDB_1_0Abuse_Finder_3_0VirusTotal_Scan_3_1Urlscan_io_Scan_0_1_0)必须在您的 Cortex 实例中启用并正确配置。

安装

推荐的安装方式是下载适用于您操作系统的预编译二进制文件。

  1. 前往发布页面: 导航到 GitHub 发布页面

  2. 下载二进制文件: 查找最新发布的版本,并下载适合您操作系统的二进制文件(例如,mcp-server-cortex-linux-amd64mcp-server-cortex-macos-amd64mcp-server-cortex-windows-amd64.exe)。

  3. 放置并准备二进制文件

    • 将下载的二进制文件移动到系统上的合适位置(例如,在 Linux/macOS 上为 /usr/local/bin,或者在 Windows 上为 C:\Program Files\MCP Servers\)。
    • 对于 Linux/macOS:使二进制文件具有可执行权限:
      chmod +x /path/to/your/mcp-server-cortex
      
    • 如果希望不指定完整路径即可运行,请确保包含二进制文件的目录在系统的 PATH 中。

另外,您可以从源代码构建服务器(参见下文的构建部分)。

配置

服务器通过以下环境变量进行配置:

  • CORTEX_ENDPOINT:指向您的 Cortex API 的完整 URL。
    • 示例:http://localhost:9000/api
  • CORTEX_API_KEY:用于与 Cortex 实例进行身份验证的 API 密钥。
  • RUST_LOG(可选):控制服务器的日志级别。
    • 示例:info(一般信息)
    • 示例:mcp_server_cortex=debug,cortex_client=info(详细的服务器日志和来自 cortex 客户端库的信息)

Cortex 分析器配置

为了使此 MCP 服务器提供的工具正常工作,对应的分析器必须在您的 Cortex 实例中启用并正确配置。服务器依赖于这些 Cortex 分析器来执行实际的分析任务。

当前工具默认使用以下分析器(尽管这些通常可以通过工具参数覆盖):

  • analyze_ip_with_abuseipdb:使用类似 AbuseIPDB_1_0 的分析器。
    • 此分析器通常需要来自 AbuseIPDB 的 API 密钥。确保在 Cortex 中配置了该密钥。
  • analyze_with_abusefinder:使用类似 Abuse_Finder_3_0 的分析器。
    • AbuseFinder 可能有自己的配置需求或在 Cortex 中的依赖项。
  • scan_url_with_virustotal:使用类似 VirusTotal_Scan_3_1 的分析器。
    • 此分析器需要 VirusTotal API 密钥。确保在 Cortex 中配置了该密钥。
  • analyze_url_with_urlscan_io:使用类似 Urlscan_io_Scan_0_1_0 的分析器。
    • 此分析器需要 urlscan.io 的 API 密钥。确保在 Cortex 中配置了该密钥。

关键点:

  • 启用分析器:确保您打算使用的分析器已在 Cortex 实例的“组织”->“分析器”部分启用。
  • 配置分析器:每个分析器都有其自己的配置页面,在 Cortex 中您需要输入 API 密钥、设置阈值或定义其他操作参数。参考每个具体 Cortex 分析器的文档。
  • 在 Cortex 中测试:最好先直接在 Cortex UI 中测试分析器,确保它们按预期工作,然后再尝试通过此 MCP 服务器使用它们。

如果分析器未配置、未启用或配置错误(例如,无效的 API 密钥),则从 MCP 客户端调用相应工具时可能会失败或从 Cortex 返回错误。

示例:Claude Desktop 配置

对于像 Claude Desktop 这样的 MCP 客户端,通常通过指定启动 MCP 服务器的命令以及该服务器所需的任何环境变量来进行配置。

  1. 构建或下载服务器二进制文件: 确保您拥有 mcp-server-cortex 可执行文件。如果您是从源代码构建的,则会在 target/debug/mcp_server_cortextarget/release/mcp_server_cortex 中找到它。

  2. 配置您的 LLM 客户端(例如,Claude Desktop)

    • 根据客户端本身的不同,配置方法会有所不同。

    • 对于支持 MCP 的客户端,通常需要将客户端指向 mcp-server-cortex 可执行文件的路径。

    • Claude Desktop claude_desktop_config.json 示例: 您需要修改您的 Claude Desktop 配置文件(通常是 claude_desktop_config.json),以包括此服务器的条目。

      例如,如果您的 mcp-server-cortex 二进制文件位于 /opt/mcp-servers/mcp-server-cortex,您的配置可能如下所示:

      {
        "mcpServers": {
          // ... 其他服务器配置 ...
          "cortex": {
            "command": "/opt/mcp-servers/mcp-server-cortex",
            "args": [],
            "env": {
              "CORTEX_ENDPOINT": "http://your-cortex-instance:9000/api",
              "CORTEX_API_KEY": "your_cortex_api_key_here",
            }
          }
          // ... 其他服务器配置 ...
        }
      }
      

可用工具

服务器提供了以下工具,可以由 MCP 客户端调用:

  1. analyze_ip_with_abuseipdb

    • 描述:使用 AbuseIPDB 分析器(或类似的 IP 声誉分析器)通过 Cortex 分析 IP 地址。如果成功,返回作业报告。
    • 参数
      • ip(字符串,必需):要分析的 IP 地址。
      • analyzer_name(字符串,可选):Cortex 中 AbuseIPDB 分析器实例的具体名称。默认为 AbuseIPDB_1_0
      • max_retries(整数,可选):轮询分析器作业完成的最大次数。默认为 5。
  2. analyze_with_abusefinder

    • 描述:使用 AbuseFinder 分析器通过 Cortex 分析多种类型的数据(IP、域名、FQDN、URL 或电子邮件)。如果成功,返回作业报告。
    • 参数
      • data(字符串,必需):要分析的数据(例如,“1.1.1.1”,“example.com”,“http://evil.com/malware”,“test@example.com”)。
      • data_type(字符串,必需):数据的类型。必须是以下之一:ipdomainfqdnurlmail
      • analyzer_name(字符串,可选):Cortex 中 AbuseFinder 分析器实例的具体名称。默认为 Abuse_Finder_3_0
      • max_retries(整数,可选):轮询分析器作业完成的最大次数。默认为 5。
  3. scan_url_with_virustotal

    • 描述:使用 VirusTotal_Scan 分析器(例如,VirusTotal_Scan_3_1)通过 Cortex 扫描 URL。如果成功,返回作业报告。
    • 参数
      • url(字符串,必需):要扫描的 URL。
      • analyzer_name(字符串,可选):Cortex 中 VirusTotal_Scan 分析器实例的具体名称。默认为 VirusTotal_Scan_3_1
      • max_retries(整数,可选):轮询分析器作业完成的最大次数。默认为 5。
  4. analyze_url_with_urlscan_io

    • 描述:使用 Urlscan.io 分析器(例如,Urlscan_io_Scan_0_1_0)通过 Cortex 分析 URL。如果成功,返回作业报告。
    • 参数
      • url(字符串,必需):要分析的 URL。
      • analyzer_name(字符串,可选):Cortex 中 Urlscan.io 分析器实例的具体名称。默认为 Urlscan_io_Scan_0_1_0
      • max_retries(整数,可选):轮询分析器作业完成的最大次数。默认为 5。

构建

要从源代码构建服务器,请确保已安装 Rust 工具链(如预备条件部分所述)。

  1. 克隆仓库(如果尚未克隆)

    git clone https://github.com/gbrigandi/mcp-server-cortex.git
    cd mcp-server-cortex
    

    如果您已经在克隆的仓库中并且处于根目录,则可以跳过此步骤。

  2. 使用 Cargo 构建项目

    • 对于调试构建
      cargo build
      
      可执行文件将位于 target/debug/mcp-server-cortex
    • 对于发布构建(建议用于性能和实际使用):
      cargo build --release
      
      可执行文件将位于 target/release/mcp-server-cortex

构建完成后,您可以运行服务器可执行文件。请参阅“配置”部分以了解所需环境变量,以及“示例:Claude Desktop 配置”部分以了解 MCP 客户端如何启动服务器。