mcpField
B
Blackpoint Cyber

Blackpoint Cyber

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

关于 Blackpoint Cyber

Blackpoint Cyber MCP 服务为 CompassOne MDR 平台提供多租户安全数据查询,面向需要访问租户、资产、检测和漏洞信息的 AI 助手。工具按领域平铺提供,也保留可选的导航接口。

主要功能

  1. 01管理客户租户
  2. 02查询资产及关联关系
  3. 03搜索安全检测与告警组
  4. 04查看漏洞、暗网和外部暴露数据
  5. 05提供状态与领域信息

适用场景

  1. 01按租户盘点设备或软件资产
  2. 02调查开放或已解决的检测
  3. 03查看漏洞扫描与外部暴露情况
  4. 04核对资产之间的关系

MCP 相关

该 MCP 服务将 CompassOne 的租户、资产、检测和漏洞能力作为工具提供给 MCP 客户端,并支持 stdio 与 HTTP 传输。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"wyre-ai-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-ai/blackpoint-mcp:v1.2.1"
],
"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-ai/blackpoint-mcp:v1.2.1
需要配置的环境变量
BLACKPOINT_API_TOKEN密钥Blackpoint Cyber API token (Bearer credential)
BLACKPOINT_BASE_URLBlackpoint API base URL. Optional. Defaults to https://api.blackpointcyber.com/v1. A value with or without /v1, or the legacy api.compassone.blackpointcyber.com host, is normalized to that URL. Other hosts keep their origin and gain a single /v1 suffix.
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-ai/blackpoint-mcp:v1.2.1

工具

还没有获取到工具列表

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

详细介绍

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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。