关于 Cork
Cork 是面向使用 Cork 网络保险 API 的 MSP 的只读 MCP 服务。它汇总客户保障、网络安全评分、风险事件、漏洞、集成、发票和安装器信息,不提供凭据或写入操作。
主要功能
- 01客户保障状态与评分历史
- 02风险、合规和漏洞数据
- 03已连接集成清单
- 04保修与发票记录
- 05安装历史和软件包详情
适用场景
- 01查看客户保修状态和网络安全评分
- 02跟踪合规事件与软件漏洞
- 03检查已连接集成及其观测到的设备
- 04查看发票或过往软件安装尝试
MCP 相关
将 Cork API 的只读操作作为 MCP 工具公开,涵盖客户、风险、集成、保修、发票、合作伙伴和安装器数据。凭据与原始集成数据接口以及变更操作均不在范围内。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm -e CORK_API_KEY -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-ai/cork-mcp:v1.0.1CORK_API_KEY密钥Cork API key (Bearer token, generated in Cork's Admin UI). It only ever holds a live bearer key.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+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/wyre-ai/cork-mcp:v1.0.1stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Cork MCP 服务
面向 AI 助手和 WYRE Conduit 网关的 MCP 服务,用于访问 Cork 面向 MSP 的网络保险 API,包括客户端及其保修/保障状态、Cork Cyber Score 历史记录、风险与合规事件、软件漏洞(CVE/CVSS/EPSS/KEV)、已连接的集成、发票、分销商合作伙伴以及软件安装程序元数据。
身份验证
Cork 使用静态 Bearer API 密钥进行身份验证,该密钥在 Cork 的管理界面中生成(Settings -> API)。Cork 的 OpenAPI 规范还记录了其自有远程 MCP 服务的 OAuth2 流程,但底层凭据仍是同一个 API 密钥——此连接器不会执行 OAuth 流程,只会持有有效的 Bearer 密钥,并通过 Authorization: Bearer <key> 将其发送到 Cork 的 API。在网关模式下,密钥会随每个请求通过 X-Cork-Api-Key 标头传入;在本地/stdio 模式下,则从 CORK_API_KEY 读取一次。
配置
| Env var | Description |
|---|---|
CORK_API_KEY | 由 Cork 管理界面签发的 Bearer API 密钥。 |
MCP_TRANSPORT | stdio(默认)或 http。 |
AUTH_MODE | env(默认,读取上述变量)或 gateway(凭据随每个请求通过 X-Cork-Api-Key 标头传入,由 Conduit 网关注入)。 |
CONDUIT_S2S_SECRET | 设置后,HTTP 传输要求每个 /mcp 请求都带有有效的 X-Gateway-S2S 标头(Conduit 边车身份验证)。 |
LOG_LEVEL | debug | info(默认)| warn | error。 |
请求限制
- HTTP 请求正文上限为 256 KiB(262144 字节)。通过
X-Gateway-S2S检查(在网关模式下还需通过X-Cork-Api-Key存在性检查;两者失败时均返回 401)后,若Content-Length超出上限,则返回带有 JSON-RPC 错误的 413;没有Content-Length的正文由 MCP SDK 传输层限制。未经身份验证的请求仍会首先收到 401。 tools/call参数上限为 10,000 个元素(包括任意深度的每个数组项和对象键)。超出上限的输入会返回isError工具结果,且不会被分发。
这些限制用于应对 CVE-2026-111768 / GHSA-46jr-4wx8-v453(验证期间内存耗尽)和 GHSA-f897-62hf-6gxq(缺少请求正文/批次上限)。
工具
客户端
cork_get_clients- 列出客户端及其保修状态、集成租户和近期 Cork Cyber Score。cork_get_client_devices- 列出所有已连接集成中观测到的客户端设备。cork_get_client_domains- 列出观测到的客户端电子邮件域名。cork_get_client_inboxes- 列出观测到的客户端电子邮件收件箱。cork_get_client_score_history- 列出客户端完整的 Cork Cyber Score 历史记录,按时间从新到旧排序。
风险与合规
cork_get_compliance_events- 列出针对客户端资产检测到的策略违规和风险事件。cork_get_compliance_notification_settings- 列出合规事件的通知/警报规则。cork_get_compliance_event_types- 列出所有合规事件类型及其说明和补救期限。cork_get_software_vulnerabilities- 列出 CVSS/EPSS/KEV 详细信息对应的各项 CVE。cork_get_software_vulnerability_summary- 获取按软件产品分组的 CVE 汇总。
集成 - 只读子集
cork_get_available_integrations- 列出可连接到 Cork 的集成类型。cork_get_connected_integrations- 列出已连接到 Cork 的集成。cork_get_integration_devices- 列出从集成中观测到的设备。cork_get_integration_tenants- 列出从集成中观测到的客户租户。cork_get_integration_users- 列出从集成中观测到的用户。
保修
cork_get_warranties- 列出有效的网络保修套餐。
发票
cork_get_invoices- 列出账单发票。cork_get_invoice_line_items- 列出发票中的计费明细项。
分销商 - 只读子集
cork_get_partners- 列出由此分销商管理的合作伙伴子账户。
软件安装程序 - 只读子集
cork_get_installer_history- 列出过去的软件安装尝试。cork_get_software_packages- 列出可供安装的软件包。cork_get_installer_setup- 获取软件安装所需的一次性 RMM 设置说明。
关于我
cork_who_am_i- 获取已认证用户的信息。
范围
这是一个刻意收窄、只读且不暴露凭据的 v1 接口,严格限定为 Cork 的 31 项操作中的 23 项(29 个已记录路径)。 鉴于保险/风险/合规数据的敏感性,Conduit 网关将每项工具都归类为 isAdmin: true。Cork 的完整 API 中约三分之一具有写入能力或会暴露机密信息;这里没有实现其中任何一项,这是有意为之,并非疏忽:
明确排除(会暴露凭据)- 永不实现:
GET /integrations/{uuid}/credentials(get-integration-credentials) - 返回集成中存储的第三方机密信息原文(credentials: {...})。
明确排除(批量原始数据外泄,出于谨慎考虑,与凭据一并排除):
GET /integrations/{uuid}/raw-data(get-integration-raw-data) - 返回一个预签名下载 URL(有效期 10 分钟),指向客户端完整的原始同步集成数据。这不会返回凭据,但会形成批量数据外泄途径,且 Cork 自己的规范要求“需要分销商权限”才能访问。已在接线 PR 中明确标出以供审核,而非悄然纳入。
明确排除(配置/变更)- 永不实现:
POST /distributor/partners(provision-partner) - 配置新的 Partner 账户。POST /integrations(connect-integration) - 连接新的集成并立即开始同步数据。PATCH /integrations/{uuid}(update-integration) - 更新集成的名称和/或凭据。DELETE /integrations/{uuid}(delete-integration) - 删除集成。POST /integrations/{uuid}/resync(resync-integration) - 手动触发数据刷新。POST /software/installer/install(install-software) - 通过客户端的 RMM,向实际管理的终端派发真实的软件安装。这是一项真正的远程软件配置操作。
如有需求,可在审慎决定范围后续行添加这些操作——不会默认加入。
凭据范围
此连接器的代码在设计上只读,但底层 API 密钥并非如此。 Cork 自己的文档指出,API 密钥权限与创建密钥的用户相关联;文档中未说明存在只读或受限范围的密钥类型。以下是两项不同的声明,各自保持不同的置信度:
- 结构上已验证(直接检查,完全确信): 此连接器自身的代码不会调用任何写入/删除/重新同步/配置操作,也不会调用凭据或原始数据端点。
client.ts中的每个函数都只调用上述 23 项已记录的只读操作之一;src/中不存在任何通配符/直通调用。 - 供应商文档所述,未经独立验证(有意保留余地): Cork 自己的文档未说明存在任何范围更窄或只读的 API 密钥类型。由拥有完整访问权限的 Cork 用户生成的密钥很可能能够访问此连接器排除的写入/删除/凭据/原始数据操作——我们尚未使用有效密钥进行测试,且 WYRE 未发现供应商提供任何可在凭据层面进一步限制密钥权限的方式。
不要将此连接器或此 README 理解为已确认底层 API 密钥本身受到限制——这里只能确认此连接器自身的代码不会尝试执行超出其 23 项只读操作范围的任何操作。
开发
npm install
npm run build
npm test
npm run lint # tsc --noEmit
Docker
docker build -t cork-mcp .
docker run -p 8080:8080 -e CORK_API_KEY=... cork-mcp
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。