项目简介

Secure Chain MCP Server是一个专门为大型语言模型(LLM)客户端提供软件供应链安全上下文和工具的后端服务。它集成了Neo4j图数据库和MongoDB,用于存储和管理软件依赖关系、漏洞、共同弱点枚举(CWE)和利用信息。通过标准化的MCP协议,LLM可以调用这些工具来查询特定软件包或版本的安全状态、其软件供应链组成,以及相关的漏洞和威胁情报。

主要功能点

  • 软件包与版本状态查询: 检查软件包或特定版本是否存在于依赖图中,并获取其基本状态信息。
  • 软件供应链分析 (SSC): 分析软件包或版本的直接及传递性软件供应链,揭示其完整的依赖关系。
  • 漏洞信息检索: 根据漏洞ID查询详细的漏洞信息,或查找与特定CWE或漏洞利用相关的漏洞列表。
  • 漏洞利用与CWE查询: 查询特定漏洞利用(Exploit)或共同弱点枚举(CWE)的详细信息,以及与特定漏洞ID相关的利用和CWE。
  • 漏洞可利用性交换 (VEX) 与威胁情报交换 (TIX): 为给定仓库生成并检索VEX和TIX信息,提供漏洞可利用性和威胁情报的上下文。
  • 统一接口: 通过Model Context Protocol (MCP) 提供统一的JSON-RPC接口,方便LLM客户端进行功能调用和信息获取。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/securechaindev/securechain-mcp-server.git
    cd securechain-mcp-server
  2. 配置环境变量:

    • 从仓库根目录的'.env.example'文件创建'.env.local'文件。
    • 根据提示配置GitHub API密钥(如果需要)。
    • 生成并设置您自己的JSON Web Token (JWT) 密钥和算法。例如,可以使用命令 'openssl rand -base64 32' 生成一个随机密钥。
  3. 创建Docker网络: 确保已创建名为'securechain'的Docker网络。如果尚未创建,请运行以下命令:

    docker network create securechain
  4. 下载数据并启动数据库:

    • 从Zenodo下载数据压缩包(访问 https://doi.org/10.5281/zenodo.16739081)。
    • 将下载的压缩包解压到项目根目录。
    • 在项目根目录运行 'docker compose up --build' 命令,这将启动数据库容器并自动填充数据。
  5. 启动应用程序: 在项目根目录运行以下命令以启动MCP服务器:

    docker compose -f dev/docker-compose.yml up --build
  6. 创建本地用户: 访问 'http://localhost:8000/docs#/Secure%20Chain%20Auth%20-%20User/signup_signup_post'。在此页面创建一个新用户,例如:

    {
      "email": "[email protected]",
      "password": "supersecre3T*"
    }

    请记住您创建的邮箱和密码,它们将用于MCP客户端的认证。

服务器配置 (供MCP客户端使用)

MCP客户端(例如VS Code的Copilot插件或其他支持MCP的LLM客户端)需要配置连接此MCP服务器。以下是一个示例配置信息,通常放置在MCP客户端的配置目录中(例如,VS Code的'.vscode/mcp.json'文件)。您需要将'X-Auth-Email'和'X-Auth-Pass'替换为您在安装步骤6中创建的用户凭据。

{
  "servers": {
    "Secure Chain MCP Server": {
      "type": "http",
      "url": "http://localhost:8005/mcp",
      "headers": {
        "X-Auth-Email": "您创建的用于认证的邮箱地址",
        "X-Auth-Pass": "您创建的用于认证的密码"
      }
    }
  }
}
  • '"Secure Chain MCP Server"': 这是您为该MCP服务器定义的名称,客户端将使用此名称来识别它。
  • '"type": "http"': 指定客户端通过HTTP协议与服务器通信。
  • '"url": "http://localhost:8005/mcp"': MCP服务器的访问地址。在本地部署时,通常是'http://localhost:8005/mcp'。
  • '"headers"': 包含用于服务器认证的自定义HTTP头。
    • '"X-Auth-Email"': 您在本地部署Secure Chain时注册的邮箱地址。
    • '"X-Auth-Pass"': 您在本地部署Secure Chain时注册的密码。

基本使用方法

配置完成后,您的MCP客户端(如VS Code中的AI助手)将能够通过上述配置连接到Secure Chain MCP Server。LLM客户端可以利用服务器注册的各种工具,以自然语言或其他支持的格式向服务器提出查询请求。

例如,您可以通过LLM客户端执行以下操作:

  • 查询软件包状态: "检查Python包'requests'是否存在并获取其状态。" (内部调用'get_package_status'工具)
  • 分析软件供应链: "分析Maven包'org.apache.commons:commons-lang3'的软件供应链。" (内部调用'get_package_ssc'工具)
  • 获取漏洞信息: "告诉我关于漏洞'CVE-2023-XXXX'的详细信息。" (内部调用'get_vulnerability'工具)
  • 查找相关CWE: "找出与漏洞'CVE-2023-XXXX'相关的所有CWE。" (内部调用'get_cwes_by_vulnerability_id'工具)

服务器将处理这些请求,执行相应的工具功能,并以结构化的形式返回结果给LLM客户端。

信息

分类

开发者工具