使用说明

项目简介

CyberMCP 是一个专门为网络安全API测试设计的 Model Context Protocol (MCP) 服务器。它提供了一系列专业的工具和资源,旨在帮助大型语言模型(LLM)识别后端API中的安全漏洞。通过 CyberMCP,LLM 客户端可以方便地调用各种安全测试工具,并访问相关的安全知识库,从而实现自动化、智能化的 API 安全测试。

主要功能点

  • 全面的安全测试工具: 提供包括身份验证漏洞、注入漏洞、数据泄露、速率限制和安全头部的多项API安全测试工具。
  • 丰富的安全资源: 内置API安全测试的检查清单和指南,为LLM提供测试策略和方法参考。
  • 灵活的身份验证支持: 支持多种身份验证方式(Basic Auth, Token Auth, OAuth2等),可以测试各种安全配置的API端点。
  • 标准MCP协议: 遵循 Model Context Protocol 协议,易于与各种 MCP 客户端集成,特别是与支持 MCP 协议的 LLM 平台无缝对接。
  • 多种传输协议支持: 支持 Stdio 和 HTTP SSE 传输协议,满足不同应用场景的需求。

安装步骤

  1. 克隆仓库
git clone https://github.com/ricauts/CyberMCP.git
cd CyberMCP
  1. 安装依赖
npm install
  1. 构建项目
npm run build

服务器配置

为了让 MCP 客户端(如 LLM 平台)连接到 CyberMCP 服务器,您需要提供以下配置信息。这些信息通常配置在 MCP 客户端的应用设置中。

{
  "serverName": "CyberMCP",  // MCP 服务器名称,用于在客户端标识
  "command": "npm",        // 启动服务器的命令,这里使用 npm
  "args": ["start"],       // 启动命令的参数,npm start 会执行 package.json 中定义的 start 脚本
  "transport": "stdio",    // 传输协议,默认使用 stdio。如果需要使用 HTTP 传输,请参考基本使用方法中的 HTTP 传输方式
  "description": "CyberMCP - Cybersecurity API Testing with MCP" // 服务器描述信息
}

参数注释:

  • 'serverName': 自定义的服务器名称,客户端用以区分不同的 MCP 服务器。
  • 'command': 运行服务器启动脚本的命令。对于 Node.js 项目,通常是 'npm' 或 'node'。
  • 'args': 传递给启动命令的参数。'npm start' 命令会执行 'package.json' 中 'scripts' 字段下定义的 'start' 脚本。
  • 'transport': 指定 MCP 服务器使用的传输协议。默认为 'stdio',适用于与本地 LLM 平台集成。如果需要通过 HTTP 访问,可以设置为 'http' (但需要在启动服务器时配置 HTTP 传输,见基本使用方法)。
  • 'description': 服务器的简短描述,方便在客户端界面展示。

基本使用方法

  1. 启动 MCP 服务器

    使用 stdio 传输 (默认,推荐与 LLM 平台集成):

    npm start

    启动后,CyberMCP 服务器将通过标准输入输出 (stdio) 与 MCP 客户端进行通信。

    使用 HTTP 传输 (用于本地开发和测试):

    TRANSPORT=http PORT=3000 npm start

    使用 HTTP 传输时,需要设置 'TRANSPORT=http' 环境变量,并可通过 'PORT' 环境变量指定端口号(默认为 3000)。

  2. 连接 MCP 客户端

    配置您的 MCP 客户端(例如,LLM 平台)连接到 CyberMCP 服务器。根据您选择的传输协议,客户端需要配置相应的连接方式。对于 'stdio' 传输,通常客户端和服务器运行在同一进程或父子进程中,无需额外配置连接信息。对于 'HTTP' 传输,客户端需要配置服务器的 HTTP 地址(例如 'http://localhost:3000')。

  3. 使用安全测试工具和资源

    连接成功后,您可以通过 MCP 客户端调用 CyberMCP 提供的工具和资源,进行 API 安全测试。

    示例 - 使用 'security_headers_check' 工具:

    在 MCP 客户端中,您可以调用 'security_headers_check' 工具来检测目标 API 端点的安全头部配置。 例如,您可能需要提供以下参数:

    {
      "tool_call": {
        "tool_name": "security_headers_check",
        "parameters": {
          "endpoint": "https://example.com/api/secure-endpoint"
        }
      }
    }

    CyberMCP 服务器会执行安全头部检查,并将结果以 MCP 响应格式返回给客户端,客户端可以将结果展示给用户或用于后续的分析和决策。

    示例 - 访问安全检查清单资源:

    在 MCP 客户端中,您可以请求访问 'cybersecurity://checklists/authentication' 资源来获取 API 身份验证安全检查清单。客户端会发送资源请求,CyberMCP 服务器会返回包含检查清单内容的 MCP 响应。

注意事项

  • 启动服务器前请确保已完成安装步骤并成功构建项目。
  • 根据实际需求选择合适的传输协议和启动方式。
  • HTTP 传输方式主要用于本地开发测试,生产环境建议根据安全性和性能需求选择合适的传输方式。
  • 详细的工具和资源使用方法请参考仓库 'README.md' 文件或工具和资源的具体定义。

信息

分类

开发者工具