风险MCP服务器
RISKEN MCP服务器是 模型上下文协议(MCP) 该服务器提供与RISKEN API的无缝集成,为开发人员和工具提供高级自动化和交互功能。
用例
通过将RISKEN MCP服务器连接到您的日常AI工具,您可以执行各种操作,例如:
- 检查RISKEN中的活动警报并监控其状态。
- 搜索、分析和审查调查结果,包括其解释和补救步骤。
- 归档已解决的发现,以保持干净有序的安全态势。
先决条件
- 要在容器中运行服务器,您需要 码头工人 安装。
- 安装Docker后,您还需要确保Docker正在运行。
- 你还需要有一个 RISKEN访问令牌.
本地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上部署服务器。
- 访问 地形/示例/谷歌云 并使用Terraform在Google Cloud Run上部署服务器。
注: 由于大多数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授权规范 使用第三方授权流,其中:
- MCP客户端 使用MCP服务器启动OAuth流
- MCP 服务器 充当授权服务器并将用户重定向到IdP
- 身份提供商 对用户进行身份验证并返回MCP服务器
- MCP 服务器 为MCP客户端发放访问令牌
- 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许可证获得许可。请参阅 许可证 文件以获取详细信息。
