mcpField
B
Blackpoint Cyber

Blackpoint Cyber

本地服务
github.com安全03 周前更新

关于 Blackpoint Cyber

面向使用 Blackpoint Cyber CompassOne MDR 的安全团队的 MCP 服务,通过平铺的工具集提供租户、资产、检测、漏洞、暗网和外部暴露数据。

主要功能

  1. 01列出并查看客户租户
  2. 02搜索资产并查看关联关系
  3. 03获取 OPEN 或 RESOLVED 检测
  4. 04列出漏洞扫描
  5. 05查看暗网和外部暴露结果
  6. 06使用 stdio 或 HTTP 传输

适用场景

  1. 01查看某租户的检测
  2. 02搜索资产及其关联关系
  3. 03检查漏洞扫描结果
  4. 04查看暗网或外部暴露发现

MCP 相关

将 CompassOne 安全能力作为 MCP 工具提供,包括租户、资产、检测和漏洞。领域工具无需导航即可直接调用;HTTP 网关模式支持按请求提供凭据。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"wyre-technology-blackpoint": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BLACKPOINT_API_TOKEN",
"-e",
"BLACKPOINT_BASE_URL",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-technology/blackpoint-mcp:v1.1.12"
],
"env": {
"BLACKPOINT_API_TOKEN": "<BLACKPOINT_API_TOKEN>",
"BLACKPOINT_BASE_URL": "<BLACKPOINT_BASE_URL>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"AUTH_MODE": "<AUTH_MODE>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
启动命令docker run -i --rm -e BLACKPOINT_API_TOKEN -e BLACKPOINT_BASE_URL -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-technology/blackpoint-mcp:v1.1.12
需要配置的环境变量
BLACKPOINT_API_TOKEN密钥Blackpoint Cyber API token (Bearer credential)
BLACKPOINT_BASE_URLBlackpoint API base URL (region-specific). Optional — defaults to the production US endpoint.
MCP_TRANSPORTTransport mode for the server. Set to 'stdio' for local CLI use; the image defaults to 'http' for gateway hosting.
AUTH_MODE密钥Credential source: 'env' reads vars locally, 'gateway' expects header injection from the WYRE MCP Gateway.
LOG_LEVELLog verbosity: debug, info, warn, error

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

安装包
ocighcr.io/wyre-technology/blackpoint-mcp:v1.1.12

工具

还没有获取到工具列表

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

详细介绍

blackpoint-mcp

Blackpoint Cyber CompassOne 的模型上下文协议(MCP)服务——托管检测与响应(MDR)平台。

功能

此 MCP 服务通过决策树导航界面提供对 CompassOne 安全功能的访问:

可用领域
  • 🏢 租户:客户租户管理
  • 💻 资产:按文档记录的类别(CONTAINER、DEVICE、FRAMEWORK、NETSTAT、PERSON、PROCESS、SERVICE、SOFTWARE、SOURCE、SURVEY、USER)分类的资产清单。CLOUD 不是资产类别。
  • 🔍 检测:来自 GET /alert-groups 的警报组(OPEN / RESOLVED、skip / take)
  • 🛡️ 漏洞:漏洞管理、暗网监控、外部暴露扫描
领域结构

所有已实现的工具都会在一次 tools/list 调用中一并列出,无需 导航步骤。blackpoint_status 会报告当前运行状况和 可用领域;blackpoint_navigate/blackpoint_back 仍为喜欢引导式菜单的 客户端保留,但它们是可选的:每个领域工具 (blackpoint_tenants_*、blackpoint_assets_*、blackpoint_detections_*、 blackpoint_vulnerabilities_*)从一开始就可以直接调用。

(早期版本会要求先调用 blackpoint_navigate,才能使用领域工具。 在 Conduit 网关后方,这种方式行不通——出于安全原因,Conduit 会从所有供应商的工具列表中 隐藏 _navigate/_back,导致所有领域工具都无法通过它访问。现在工具列表是扁平的, 因此无论在哪里都能以相同方式使用。)

工具命名约定

所有工具都遵循以下模式:blackpoint_{domain}_{action}

示例:

  • blackpoint_assets_list - 按类别列出资产
  • blackpoint_detections_list - 列出安全检测项
  • blackpoint_vulnerabilities_scans_list - 列出漏洞扫描

安装

npm install blackpoint-mcp

配置

环境变量
变量描述必填
BLACKPOINT_API_TOKENCompassOne API 令牌stdio 模式下必填
BLACKPOINT_BASE_URLAPI 基础 URL。默认为 https://api.blackpointcyber.com/v1。值可以包含或不包含 /v1,也可以使用旧版主机 api.compassone.blackpointcyber.com;这些值都会被规范化为该 URL。其他主机保留其源地址,并添加单个 /v1 后缀。否
MCP_TRANSPORT传输模式:stdio 或 http否(默认:stdio)
MCP_HTTP_PORT网关模式的 HTTP 端口否(默认:8080)
MCP_HTTP_HOSTHTTP 绑定地址。未设置时绑定到 127.0.0.1。容器映像会设置为 0.0.0.0。否(默认:127.0.0.1)
CONDUIT_S2S_SECRETHTTP 服务间密钥。/mcp 要求提供有效的 X-Gateway-S2S 标头。此值为空时,HTTP 服务会以非零状态码退出。HTTP 模式下必填
MCP_ALLOW_INSECURE_DEV设置为 1,即可在未设置 CONDUIT_S2S_SECRET 时启动 HTTP。会记录警告并跳过 S2S 检查。仅用于本地开发。否
AUTH_MODE设置为 gateway 以启用基于标头的身份验证否
LOG_LEVEL日志级别:debug、info、warn、error否(默认:info)
网关模式

当 AUTH_MODE=gateway 时,服务会从 HTTP 请求头读取凭据,不会回退到 process.env:

  • X-Blackpoint-API-Token → API 令牌(必需;缺少请求头时返回 HTTP 401)
  • X-Blackpoint-Base-Url → 本次请求的基础 URL(按与 BLACKPOINT_BASE_URL 相同的方式规范化)。缺少此请求头时,不会使用进程环境变量。

这样,支持多租户的网关即可针对每个请求进行身份验证。

HTTP 还要求设置 CONDUIT_S2S_SECRET。每个 /mcp 请求都必须携带与该密钥匹配的有效 X-Gateway-S2S 请求头。缺少请求头或请求头无效时,会在读取供应商凭据之前返回 HTTP 401。如果 CONDUIT_S2S_SECRET 为空,进程会记录错误并以非零状态退出,而不会提供 /mcp 服务。设置 MCP_ALLOW_INSECURE_DEV=1 后,进程仍会启动并记录警告;请勿在本地开发环境之外使用此设置。密钥绝不会写入日志。

GET /、GET /health 和 GET /healthz 仍是无需身份验证的存活检查,不会读取凭据。stdio 传输不使用 S2S 密钥。

用法

独立模式(stdio)
# Set credentials
export BLACKPOINT_API_TOKEN="your-api-token"

# Run the server
blackpoint-mcp
网关模式(HTTP)
export AUTH_MODE=gateway
export MCP_TRANSPORT=http
export MCP_HTTP_PORT=8080
export CONDUIT_S2S_SECRET="your-s2s-secret"
# Optional. Unset binds to 127.0.0.1.
# export MCP_HTTP_HOST=127.0.0.1

blackpoint-mcp

不设置密钥的本地开发模式(不安全;会记录警告):

export MCP_TRANSPORT=http
export MCP_ALLOW_INSECURE_DEV=1

blackpoint-mcp
工具调用示例
// Start by checking available domains
await tools.call("blackpoint_status");

// Navigate to assets domain
await tools.call("blackpoint_navigate", { domain: "assets" });

// List device assets for one tenant (tenantId is sent as x-tenant-id)
await tools.call("blackpoint_assets_list", { 
  class: "DEVICE",
  tenantId: "tenant_123",
  pageSize: 10 
});

// Get specific asset details
await tools.call("blackpoint_assets_get", { 
  id: "asset_12345",
  tenantId: "tenant_123"
});

// Return to navigation
await tools.call("blackpoint_back");

API 覆盖范围

✅ 已实现
领域工具描述
tenantslist、get客户租户管理
assetslist、get、relationships、search资产清单和关系
detectionslist、get警报组(GET /alert-groups,skip/take,状态为 OPEN 或 RESOLVED)。工具名称保持不变。
vulnerabilitieslist、scans_list、darkweb_list、external_list漏洞管理、暗网和外部暴露
📋 计划中
领域状态备注
partnersSDK 已就绪账户管理——可开始实现
alerts仅模型CompassOne 封装程序中没有可用的 API 处理程序
tickets仅模型CompassOne 封装程序中没有可用的 API 处理程序
cloud_securitySDK 已就绪M365/Google/Cisco 入驻——可开始实现
notificationsSDK 已就绪联系人组和渠道——可开始实现

Partner 与 Tenant 范围

CompassOne 使用分层范围:Partner → Tenants → Assets

  • Partner 令牌可访问所有关联的租户
  • 限定 Tenant 范围的令牌仅限访问特定客户
  • 始终指定 tenantId 参数,以避免跨租户操作

错误处理

服务会提供结构化错误响应:

{
  "content": [{ 
    "type": "text", 
    "text": "Failed to list assets: Authentication failed" 
  }],
  "isError": true
}

常见错误场景:

  • 401 / 403:API 密钥无效,或账户无权访问该资源
  • 404:基础 URL 或路径错误(线上 API 地址为 https://api.blackpointcyber.com/v1)
  • 速率限制:自动重试,并采用指数退避
  • 验证:参数无效或缺少必填字段(class、tenantId)

失败日志会记录 HTTP 状态、方法、路径和响应正文。Bearer 令牌会被隐藏。

速率限制

底层 SDK 会自动实施速率限制:

  • 默认值:每个 API 密钥每 15 分钟 2000 次请求
  • 429 处理:遵循 Retry-After 请求头
  • 退避:后续请求采用指数退避

Docker

# Build
docker build -t blackpoint-mcp .

# Run in gateway mode. The image sets MCP_HTTP_HOST=0.0.0.0 and refuses to
# start until CONDUIT_S2S_SECRET is set. Publish the port on loopback.
docker run -p 127.0.0.1:8080:8080 \
  -e AUTH_MODE=gateway \
  -e MCP_TRANSPORT=http \
  -e MCP_HTTP_PORT=8080 \
  -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
  blackpoint-mcp

开发

# Install dependencies
npm install

# Run in development mode
npm run dev

# Build
npm run build

# Test
npm test

# Lint
npm run lint

安全注意事项

API 访问要求
  • 访问 API 需要签订 CompassOne Partner Agreement
  • 多租户操作需要 Partner 级别的凭据
  • 建议使用 限定范围的令牌进行特定租户访问
破坏性操作

以下操作在实现后需要确认:

  • 资产隔离/响应操作
  • 会触发操作的工单状态更改
  • 警报确认/关闭
  • 修复工作流

这些操作使用 elicitConfirmation 模式,以防止意外执行。

故障排查

常见问题

未显示任何工具:

  • 检查是否已设置 BLACKPOINT_API_TOKEN
  • 确认令牌具有正确的作用域
  • 检查到 CompassOne API 的网络连接

网关模式无法正常工作:

  • 确认已设置 AUTH_MODE=gateway
  • 确认已设置 CONDUIT_S2S_SECRET(如果该值为空,HTTP 会退出,除非设置了 MCP_ALLOW_INSECURE_DEV=1)
  • 检查是否传入了 X-Gateway-S2S 和 X-Blackpoint-API-Token
  • 确认客户端可以访问绑定地址(默认为 127.0.0.1)

速率限制:

  • 监控日志中的 429 响应
  • 考虑降低请求频率
  • 确认令牌未在多个实例间共享
调试日志
export LOG_LEVEL=debug
blackpoint-mcp
健康检查

GET /、GET /health 和 GET /healthz 无需身份验证,也不会读取凭据:

curl -f http://127.0.0.1:8080/health
已验证身份的 MCP 调用

设置了 CONDUIT_S2S_SECRET 时,/mcp 需要 X-Gateway-S2S。在网关模式下,还需要 X-Blackpoint-API-Token:

curl -X POST http://127.0.0.1:8080/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "X-Gateway-S2S: <gateway-signed header>" \
  -H "X-Blackpoint-API-Token: your-token" \
  -d '{"jsonrpc": "2.0", "method": "initialize", "id": 1, "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "curl", "version": "0.0.0"}}}'

贡献

  1. Fork 此仓库
  2. 创建功能分支:git checkout -b feature-name
  3. 进行修改并添加测试
  4. 为新功能遵循领域处理程序模式
  5. 提交 pull request

详细指南请参阅 CONTRIBUTING.md。

许可证

Apache-2.0 - 详情请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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