mcpField
R
RISKEN MCP Server

RISKEN MCP Server

本地服务
github.com/ca-risken安全740 周前更新

关于 RISKEN MCP Server

RISKEN MCP Server 将 MCP 客户端连接到 RISKEN API,用于安全运营。它支持搜索发现项和告警、读取发现项内容及归档已解决项,并提供本地或远程部署和 OAuth2.1 授权。

主要功能

  1. 01按 ID、来源、资源、评分或状态搜索发现项
  2. 02按状态搜索告警
  3. 03为发现项添加备注并归档
  4. 04将发现项内容作为资源读取
  5. 05支持本地和远程服务模式
  6. 06支持第三方 OAuth2.1 授权

适用场景

  1. 01检查活跃的安全告警
  2. 02调查发现项及其修复详情
  3. 03归档已解决的发现项
  4. 04通过客户端连接远程 MCP 服务

MCP 相关

向 MCP 客户端提供 RISKEN 发现项和告警操作、身份验证上下文,以及发现项内容资源。支持 stdio 和 Streamable HTTP 连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"risken": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"\\"
]
}
}
}
启动命令docker run -i --rm '\'

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
oci\

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

RISKEN MCP 服务

远程 MCP 服务

RISKEN MCP 服务是一个 模型上下文协议(MCP) 服务,可与 RISKEN API 无缝集成,为开发者和工具提供高级自动化和交互能力。

使用场景

将 RISKEN MCP 服务连接到日常使用的 AI 工具后,可以执行各种操作,例如:

  • 查看 RISKEN 中的活动警报并监控其状态。
  • 搜索、分析和查看发现项,包括其说明和修复步骤。
  • 归档已解决的发现项,以保持安全态势整洁有序。

前提条件

  1. 要在容器中运行服务,需要安装 Docker。
  2. 安装 Docker 后,还需要确保 Docker 正在运行。
  3. 还需要拥有 RISKEN 访问令牌。

本地 MCP 服务

请将以下 MCP 服务配置添加到 MCP 客户端(Claude Desktop 或 Cursor)设置中。

{
  "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 服务支持 Streamable 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
在 Cloud Run 上

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

  1. 访问 terraform/examples/googlecloud,并使用 Terraform 在 Google Cloud Run 上部署服务。

  2. 将以下 MCP 服务配置添加到 MCP 客户端(Claude Desktop 或 Cursor)设置中。

**注意:**由于大多数 MCP 客户端仅允许 stdio 连接,目前需要使用 mcp-remote 作为代理来连接远程 MCP 服务。

Claude Desktop、Cursor 等
{
  "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. IdP对用户进行身份验证,并将其返回到 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 服务的公开 URLhttp://localhost:8080
AUTHZ_METADATA_ENDPOINT✅IdP 的 OAuth 元数据端点https://your-idp.com/.well-known/oauth-authorization-server
CLIENT_ID✅IdP 的 OAuth 客户端 IDyour-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_context - 获取当前的身份验证上下文。
    • 如果使用组织令牌,则返回组织信息;如果使用项目令牌,则返回项目信息。
发现
  • search_finding - 搜索 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 - 按数量限制搜索。
  • archive_finding - 归档 RISKEN 发现。(支持组织令牌和项目令牌)

    • finding_id - 按发现 ID 归档。(必填)
    • note - 备注。
警报
  • search_alert - 搜索 RISKEN 警报。(仅限项目令牌)
    • status - 按状态搜索。
      • 1 - 活跃
      • 2 - 待处理
      • 3 - 已停用(已关闭)

资源

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

许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。