模型上下文协议服务器

RISKEN MCP Server 是一个模型上下文协议服务器,提供与RISKEN API的无缝集成,支持开发者进行高级自动化和交互操作。

  • by ca-risken
  • Go
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 ca-risken/risken-mcp-server

使用说明

风险MCP服务器

RISKEN MCP服务器是 模型上下文协议(MCP) 该服务器提供与RISKEN API的无缝集成,为开发人员和工具提供高级自动化和交互功能。

用例

通过将RISKEN MCP服务器连接到您的日常AI工具,您可以执行各种操作,例如:

  • 检查RISKEN中的活动警报并监控其状态。
  • 搜索、分析和审查调查结果,包括其解释和补救步骤。
  • 归档已解决的发现,以保持干净有序的安全态势。

先决条件

  1. 要在容器中运行服务器,您需要 码头工人 安装。
  2. 安装Docker后,您还需要确保Docker正在运行。
  3. 你还需要有一个 RISKEN访问令牌.

本地MCP服务器

请将以下MCP服务器配置添加到您的MCP客户端(克劳德桌面版 或 光标)设置。

{
  "mcpServers": {
    "risken": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "RISKEN_ACCESS_TOKEN",
        "-e",
        "RISKEN_URL",
        "ghcr.io/ca-risken/risken-mcp-server",
        "stdio"
      ],
      "env": {
        "RISKEN_URL": "http://localhost:8098",
        "RISKEN_ACCESS_TOKEN": "your_access_token"
      }
    }
  }
}

远程MCP服务器

RISKEN MCP服务器支持流式HTTP。

在本地

docker run -it --rm \
  -e RISKEN_URL=http://localhost:8098 \
  -e RISKEN_ACCESS_TOKEN=xxxxxx \
  -p 8080:8080 \
  ghcr.io/ca-risken/risken-mcp-server http

在云端运行

您可以使用Terraform在Google Cloud Run上部署服务器。

  1. 访问 地形/示例/谷歌云 并使用Terraform在Google Cloud Run上部署服务器。

  2. 将以下MCP服务器配置添加到MCP客户端(克劳德桌面版 或 光标)设置。

注: 由于大多数MCP客户端只允许stdio连接,因此目前有必要使用 mcp遥控器 作为连接到远程MCP服务器的代理。

克劳德桌面,光标。..

{
  "mcpServers": {
    "risken": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://localhost:8098/mcp",
        "--header",
        "RISKEN-ACCESS-TOKEN:${RISKEN_ACCESS_TOKEN}"
      ],
      "env": {
        "RISKEN_ACCESS_TOKEN": "xxxxxx"
      }
    }
  }
}

第三方授权(OAuth2.1)

RISKEN MCP服务器支持第三方授权(OAuth2.1),通过外部身份提供者(IdP)实现安全身份验证。

概述

OAuth2.1实现遵循 MCP授权规范 使用第三方授权流,其中:

  1. MCP客户端 使用MCP服务器启动OAuth流
  2. MCP 服务器 充当授权服务器并将用户重定向到IdP
  3. 身份提供商 对用户进行身份验证并返回MCP服务器
  4. MCP 服务器 为MCP客户端发放访问令牌
  5. MCP客户端 使用访问令牌进行后续MCP请求

OAuth流

sequenceDiagram
    participant Browser as User Browser
    participant Client as MCP Client
    participant Server as MCP Server
    participant IdP as Identity Provider

    Client->>Server: POST /mcp (no auth)
    Server->>Client: 401 Unauthorized + WWW-Authenticate
    Client->>Server: GET /.well-known/oauth-authorization-server
    Server->>Client: Authorization metadata
    Client->>Server: POST /register (Dynamic Client Registration)
    Server->>Client: client_id
    Client->>Browser: Open authorization URL (with PKCE challenge)
    Browser->>IdP: User authentication
    IdP->>Browser: Redirect to callback URL (with code)
    Browser->>Server: GET /oauth/callback (IdP code)
    Note over Server: Store IdP code, generate internal JWT authorization code
    Server->>Client: Authorization complete (internal code)
    Client->>Server: POST /token (internal code + PKCE verifier)
    Note over Server: Verify PKCE challenge/verifier
    Server->>IdP: Exchange IdP code for access token
    IdP->>Server: Access token
    Server->>Client: Access token
    Client->>Server: POST /mcp (with Bearer token)
    Server->>Client: MCP response

配置

MCP服务器配置

OAuth2.1支持需要以下环境变量:

变量 必填 描述 示例
MCP_SERVER_URL ✅ MCP服务器的公共URL http://localhost:8080
AUTHZ_METADATA_ENDPOINT ✅ IdP的OAuth元数据端点 https://your-idp.com/.well-known/oauth-authorization-server
CLIENT_ID ✅ IdP的OAuth客户端ID your-client-id
CLIENT_SECRET ✅ IdP的OAuth客户端密钥 your-client-secret
JWT_SIGNING_KEY ✅ 会话JWT令牌的签名密钥 your-256-bit-secret

身份提供者要求

您的IdP必须支持以下OAuth功能:

功能 要求 描述
授权码流 ✅ 必需 标准OAuth授权码授予
JWKS端点 ✅ 必需 用于JWT验证的JSON Web密钥集
元数据发现 ✅ 必需 RFC 8414授权服务器元数据

备注:PKCE验证由MCP客户端和MCP服务器之间的MCP服务器内部处理(根据MCP规范)。IdP不需要支持PKCE。

工具

上下文

  • get_text -获取当前身份验证上下文。
    • 如果使用组织令牌,返回组织信息;如果使用项目令牌,返回项目信息。

发现

  • 搜索查找 -搜索RISKEN搜索结果。(支持组织和项目令牌)

    • finding_id -通过查找ID进行搜索。
    • alert_id -按警报ID搜索。(仅限项目令牌)
    • data_source -按数据源搜索。
    • resource_name -按资源名称搜索。
    • from_score -按最低分数搜索。
      • 0.0 ~ 0.3 -低
      • 0.3 ~ 0.6 -中等
      • 0.6 ~ 0.8 -高
      • 0.8 ~ 1.0 -关键
    • status -按状态搜索。
      • 0 -全部
      • 1 -活动(默认)
      • 2 -待定
    • offset -按偏移量搜索。
    • limit -按限制搜索。
  • 档案查找 -将RISKEN的发现存档。(支持组织和项目令牌)

    • finding_id -通过查找ID进行存档。(必填)
    • note -注意。

警报

  • 搜索警报 -搜索RISKEN警报。(仅限项目令牌)
    • status -按状态搜索。
      • 1 -活动
      • 2 -待定
      • 3 -停用(已关闭)

资源

查找内容

  • 获取查找内容 检索特定查找结果的内容。
    • 模板: finding://{project_id}/{finding_id}
    • 参数:
      • project_id:项目的ID。
      • finding_id:发现的ID。

许可证

该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。