项目简介

RISKEN MCP 服务器是一个基于 Model Context Protocol (MCP) 的后端服务,它将 RISKEN 平台的安全数据和操作能力集成进来,允许支持 MCP 的 LLM (大型语言模型) 客户端(如 Claude Desktop, Cursor 等)通过标准化的协议与 RISKEN 进行交互。这使得 LLM 可以获取最新的安全上下文,调用 RISKEN API 执行任务,从而实现安全分析、数据提取和自动化工作流程。

主要功能点

  • 提供 RISKEN 数据资源: 允许 LLM 通过 Resource URI 访问 RISKEN 中的特定数据,例如获取某个安全问题的详细内容。
  • 注册和执行 RISKEN 工具: 提供一系列可供 LLM 调用的工具,例如:
    • 获取当前认证的 RISKEN 项目信息。
    • 根据多种条件(如 ID、数据源、风险评分、状态等)搜索安全问题 (Findings)。
    • 归档特定的安全问题。
    • 根据状态搜索告警 (Alerts)。
  • 支持多种传输协议: 支持 Stdio(标准输入输出)和 Streamable HTTP 协议与 MCP 客户端通信。
  • 会话管理和能力声明: 服务器遵循 MCP 协议,负责管理客户端会话,并向客户端声明其支持的资源模板和工具列表及其参数定义。

安装步骤

该服务器推荐使用 Docker 容器运行。

  1. 确保您已安装 Docker 并正在运行。
  2. 获取您的 RISKEN 访问令牌 (Access Token) 和 RISKEN API 的 URL。

服务器配置

要在您的 MCP 客户端中配置 RISKEN MCP 服务器,需要添加相应的 MCP 服务器配置信息。配置是 JSON 格式,包含服务器的名称、启动命令 ('command') 及其参数 ('args') 等。

Stdio 模式配置示例 (用于直接启动容器):

{
  "mcpServers": {
    "risken": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "RISKEN_ACCESS_TOKEN",  // 将从env中获取RISKEN_ACCESS_TOKEN
        "-e", "RISKEN_URL",           // 将从env中获取RISKEN_URL
        "ghcr.io/ca-risken/risken-mcp-server",
        "stdio"                       // 启动stdio模式
      ],
      "env": {
        "RISKEN_ACCESS_TOKEN": "您的RISKEN访问令牌", // 替换为您的实际令牌
        "RISKEN_URL": "您的RISKEN API URL"         // 替换为您的实际API URL,例如 http://localhost:8000
      }
    }
  }
}

Streamable HTTP 模式配置示例 (需要先独立运行服务器):

  1. 首先,在终端中运行服务器容器:

    docker run -it --rm \
      -e RISKEN_ACCESS_TOKEN="您的RISKEN访问令牌" \
      -e RISKEN_URL="您的RISKEN API URL" \
      -e MCP_AUTH_TOKEN="您设置的MCP认证令牌" \
      -p 8080:8080 \
      ghcr.io/ca-risken/risken-mcp-server http

    替换 '"您的RISKEN访问令牌"'、'"您的RISKEN API URL"' 和 '"您设置的MCP认证令牌"' 为实际值。 'MCP_AUTH_TOKEN' 是用于客户端连接到 HTTP 服务器的额外认证令牌,可以任意设置,但必须与客户端配置一致。

  2. 然后在 MCP 客户端中添加配置:

    {
      "mcpServers": {
        "risken": {
          "command": "npx", // 使用mcp-remote工具连接
          "args": [
            "mcp-remote",
            "http://localhost:8080/mcp", // 服务器运行的地址和路径
            "--header",
            "Authorization: Bearer ${MCP_AUTH_TOKEN}" // 认证头部
          ],
          "env": {
            "MCP_AUTH_TOKEN": "您设置的MCP认证令牌" // 与服务器启动时设置的令牌一致
          }
        }
      }
    }

    确保 'http://localhost:8080/mcp' 是您运行 HTTP 服务器的正确地址和路径。 替换 '"您设置的MCP认证令牌"' 为您在服务器启动时使用的令牌。

将上述对应的配置添加到您的 MCP 客户端的服务器设置中。

基本使用方法

配置完成后,您的 LLM 客户端将能够感知到 RISKEN MCP 服务器提供的能力(工具和资源)。您可以通过与 LLM 进行自然语言对话,请求它执行与 RISKEN 相关的任务。例如:

  • 询问 LLM:“帮我查找一下得分在 0.8 分以上的活跃安全问题。” (LLM 可能调用 'search_finding' 工具)
  • 询问 LLM:“请获取 Finding ID 为 1234 的详细内容。” (LLM 可能使用 'finding://<project_id>/1234' Resource URI)
  • 请求 LLM:“将 Finding ID 为 5678 的问题标记为已归档,备注‘不是真正的风险’。” (LLM 可能调用 'archive_finding' 工具)

LLM 将通过 MCP 协议调用服务器提供的工具或读取资源,服务器处理请求(与 RISKEN API 交互),并将结果返回给 LLM,LLM 再将结果整合到对话回复中。

信息

分类

AI与计算