对话里查高危、Finding 与门禁:AngusSecurity MCP 怎么接入

简介: Coding Agent 对话里查 Finding、告警与报告,权限齐全时可扫、可出报告:十六个工具、门户令牌、按角色收窄。与 Repo 只读八工具不同。

连上 AngusSecurity MCP 之后,在 IDE 对话里就能直接问扫描结论:这次有没有高危、某条 Finding 怎么改、门禁会不会挡住、报告出了没有——查高危与告警、解释 Finding、比两次检查、读/下载报告快照;权限与写开关齐全时,还能扫当前仓库、镜像或制品。返回的是脱敏结论,不是再塞一整份原始扫描结果。

主要实用场景:

  • 发版前问一句:这次检查有没有 Critical / 高危?
  • 点名一条 Finding:规则是什么、该怎么改?
  • 两次扫描比一比:多了什么、少了什么、还在不在?
  • 按现有策略模拟:门禁会不会挡住这次结果?
  • 读已有报告或下载正文;权限够时为已结束的检查出一份报告
  • 权限允许时,扫一下当前仓库(或镜像 / 制品)

结论: Security MCP 最多 16 个工具——多数查 Finding、告警、CVE、许可证、门禁与报告;权限与写开关齐全时可扫、可为已结束的检查出报告。不抑制误报、不揭密钥原文、不发布/分享。须用本产品门户签发的用户访问令牌。

控制台与宿主接线见文末参考「通过 MCP 连接 AngusSecurity」。制品坐标在哪个仓、客户端怎么配,见文末参考「AngusRepo MCP」——那边是恒只读八工具;这边答扫描结论、CVE、许可证、门禁与报告快照。统一引擎与报告怎么出,见文末:用一套扫描替换脚本、安全扫描报告怎么出。

1. Agent 常问的六类问题(以及明确不做)

  1. 扫当前仓库 / 镜像 / 制品 / 点名文件。
  2. 按代码安全、依赖、密钥、许可分组看这次结果。
  3. 列出或解释 Finding(密钥片段看不到原文)。
  4. 查本机漏洞库某条 CVE;汇总可见许可证。
  5. 用已有策略做门禁模拟;对比两次已完成检查。
  6. 读已有报告或下载正文;权限齐全时为已结束的检查生成报告。

明确不做: 抑制误报、揭开密钥原文、改告警状态、改策略、发布/分享/删报告、管理凭据与引擎、通用上传整棵未点名目录、导出引擎原始输出。

对比 AngusRepo MCP AngusSecurity MCP
工具面 8 个只读工具,不能扫、不能出报告 最多 16 个;权限齐全时可扫 + 出报告
回答什么 坐标在哪个仓、依赖/隔离快照、客户端模板 Finding、CVE、许可证、门禁模拟、报告快照
不做 不代理协议拉包、不触发扫描 不定位制品仓、不揭密、不抑制

2. 形态:进程内端点 + 回环

对话侧只看见具名工具;服务端在本进程内回环到已有管理 API,权限与审计不另起一套。

IDE / Agent
  --POST {网关}/security/mcp-->  Boot /mcp
  --回环 Bearer-->  /api/v1/**(白名单语义工具)

再做一个外部 Node 去包 REST,等于复制一份策略。回环没有通用 path 参数,通用上传网关、揭密与发布接口不会被模型拼出来。

项 口径
传输 无状态 POST;默认 /mcp;经网关 {host}/security/mcp
回环 本机 Security 端口(默认 1811);Bearer 原样转发;X-Angus-Client-Source: mcp
注册面 只注册 tools;无 resources / prompts / sampling
GM 不新增 GM 资源;显隐跟现有 @PPS 走
id 任务 id、Finding id 均为十进制字符串,勿截断或当浮点
配置 作用
angus.mcp.enabled(ANGUS_MCP_ENABLED,未设为 true) false → 无端点;控制台 / CLI / 已有检查不受影响
angus.mcp.write-enabled(当前发行未设时为 true) false → 列表无 security_scan、security_create_report;查询与下载不靠它

限流:每账号每分钟最多 30 次合法调用;超出 rate_limited,稍后再试。

3. 十六个工具(名称以文档为准)

分析师 / 管理员在写开关打开且权限齐全时,tools/list 应恰好 16。只读更少,见 §4。

3.1 发起检查与看这次结果

工具 权限要点 做什么 / 易踩坑
security_scan ScanJobs:EXECUTE + 写开关 kind:git / image / artifact / files;一次一种目标;立刻回任务 id(jobId)——先等扫描结束再问问题/出报告。git 只收 https;gitRef 用用户说的或当前分支,不猜 main。私有目标只填控制台已存凭据名称,不传令牌。点名能力放 capabilities;没点名由服务端展开
security_issues Findings:VIEW + ScanJobs:VIEW 按能力分组;某项 notScanned=true = 该项没跑;空列表 ≠ 安全;密钥片段为掩码

3.2 日常检索

工具 权限要点 做什么 / 易踩坑
security_list_findings Findings:VIEW 至少一项过滤(jobId / assetKey / keyword / ruleId 等);列表无代码片段;空 ≠ 安全
security_explain_finding Findings:VIEW;规则说明另需 RulePacks:VIEW 规则含义、修复建议、掩码片段;不可揭密;一次最多约 5 个 id
security_list_jobs ScanJobs:VIEW 查仓库/镜像/制品用 assetKeyword,勿把地址塞进 keyword;未 COMPLETED/PARTIAL 时不能把计数说成干净
security_list_alerts Alerts:VIEW 只读告警;不改状态、不指派

分页从 1 起,每页最多 20。

3.3 对比、漏洞库与门禁

工具 权限要点 做什么 / 易踩坑
security_compare_jobs ScanJobs:VIEW 两次已完成检查的指纹差(新增/消失/仍在);不建任务
security_lookup_vulnerability RulePacks:VIEW 查本机漏洞库;无记录说「库内无此条」,勿改写「没有漏洞」
security_license_summary Findings:VIEW 账号可见许可证汇总;不能指定某次检查——问某次用 security_issues
security_risk_summary Dashboard:VIEW 风险分数与态势摘要;不回概览大列表
security_simulate_gate Policies:VIEW 只读模拟;可选 lookbackJobs(最大 100);只读/研发角色通常看不到

3.4 报告

工具 权限要点 做什么 / 易踩坑
security_report_summary Reports:VIEW 查已有报告;无 READY 时说尚未生成;不含验真地址与分享口令
security_get_report Reports:VIEW 按 id 看范围、状态、指标;不含验真/分享口令/规格原文
security_compare_reports Reports:VIEW 两份报告摘要与问题指纹差
security_download_report Reports:EXECUTE 仅报告已就绪(READY);format:JSON/HTML/CSV/PDF/SARIF;文本约 64 KB 后截断并标 truncated;PDF/压缩包只回文件名、字节数与控制台路径
security_create_report Reports:EXECUTE + 写开关 仅已结束任务;参数主要是 jobId(+ 可选 name/format);创建后先是生成中(PENDING)——先等就绪再下载,用 security_get_report 轮询至 READY 或失败;不发布、不分享、不设打开密码

不在列表中: 抑制、揭密、发布、分享、删除报告、改策略、通用上传整棵目录、引擎原始输出导出。

报告是生成时刻的快照,不会随下一次扫描改写——与文末「安全扫描报告怎么出」一致。

4. 账号能看见哪些工具

角色 写开关打开 写开关关闭
只读(SEC_VIEWER) 12:有 security_issues;无扫、无门禁模拟、无报告下载/创建 同左(12)
研发(SEC_DEVELOPER) 13:只读 + security_scan 12
分析师 / 管理员(SEC_ANALYST / SEC_ADMIN) 16 14(无扫、无创建报告)

缺权限的工具不会出现在列表;按名硬调 → permission_denied。MCP 不会扩大账号权限。先用同一账号在控制台做同样操作,再怪 MCP。

5. 鉴权边界(容易踩坑)

凭证 结果
门户签发的用户访问令牌(PAT) 可进;工具集随角色与写开关收窄
repod_ 或 AngusRepo 等其他产品令牌 401,无工具列表
OAuth 刷新令牌 401
无 Bearer 401(避免收成工具内错误导致模型盲重试)

可见范围 = 该用户在 /api/v1 的范围,与控制台一致。个人令牌:头像 → 我的(/profile)。CI 用服务账号,勿把个人登录态写进仓库。

6. 宿主接入(最小可复制片段)

令牌放环境变量,勿写入仓库:

{
   
  "mcpServers": {
   
    "angus-security": {
   
      "url": "https://<gateway-host>/security/mcp",
      "headers": {
    "Authorization": "Bearer ${ANGUS_SECURITY_TOKEN}" }
    }
  }
}

对外用网关 {host}/security/mcp。私有化直连改为 https://<security-host>/mcp(默认端口 1811,经反代时不必把端口暴露公网)。地址可在控制台 系统 → MCP 接入 复制。

宿主 配置文件(以各宿主文档为准)
Cursor 项目 .cursor/mcp.json 或用户级 ~/.cursor/mcp.json
Claude claude_desktop_config.json
VS Code 工作区 .vscode/mcp.json
Codex / Qoder 见对应宿主 MCP 说明

仅 stdio 的宿主用 @anguskit/mcp --product security 转发(读 ANGUS_TOKEN / ANGUS_BASE_URL,与 ANGUS_SECURITY_TOKEN 不是同一变量名):

{
   
  "mcpServers": {
   
    "angus-security": {
   
      "command": "npx",
      "args": ["-y", "@anguskit/mcp", "--product", "security"],
      "env": {
   
        "ANGUS_BASE_URL": "https://<gateway-host>",
        "ANGUS_TOKEN": "${ANGUS_SECURITY_TOKEN}"
      }
    }
  }
}

ANGUS_BASE_URL 是网关根,不要带 /security/mcp。私有化无产品前缀时改用 --endpoint + https://<security-host>/mcp。默认 npm 源没有该包时,文档建议 https://repo.anguskit.com/npm/npm-public/。完整宿主表见文末 MCP 文档。

6.1 对话示例:用户问 → 工具 → 期望字段

例 A:扫完再问问题

步骤 内容
用户问 扫一下这个仓库的代码安全和秘钥。
应调用 security_scan(kind=git,https gitUrl,gitRef=用户/当前分支,可选 capabilities)→ 稍后 security_issues / security_list_jobs
期望字段 立刻拿到任务 id(jobId,十进制字符串);扫描结束后再看分组结果;密钥片段为掩码
不应出现 猜 main、在对话里填 PAT、把 SSH git@ 原样提交而不改 https

例 B:解释一条已有 Finding

步骤 内容
用户问 解释这条 Finding,并说明怎么改。
应调用 先 security_list_findings(带过滤)拿完整 id,再 security_explain_finding
期望字段 规则含义、remediation / 固定版本、路径行号、掩码 snippet
不应出现 密钥原文、抑制/审批、把模型自己的改法说成扫描器结论

例 C:门禁与报告

步骤 内容
用户问 按这个策略会不会挡住?给这次已结束检查出一份 HTML 报告。
应调用 security_simulate_gate(需 Policies:VIEW)→ 写开关开且有 Reports:EXECUTE 时 security_create_report → 轮询 security_get_report
期望字段 模拟不新建扫描;创建后先是生成中;就绪后再 security_download_report(文本可带 truncated)
不应出现 只读/研发硬调门禁或创建报告;把「生成中」当成已出报告;发布/分享

连上后也可先 tools/list 对角色表对一下个数,再对控制台里已有 Finding 做一次 security_explain_finding 冒烟。

7. 与业界形态、与 Repo 的对照(极短)

形态 代表 与 AngusSecurity(一句话)
本机 stdio 扫工作区 Snyk CLI MCP 服务端拉仓库/镜像/制品;点名文件走有上限上传
平台检索 + 可改状态 SonarQube MCP 采纳检索与门禁模拟;不改 Finding 状态、不挂载工作区
制品情报 MCP Sonatype Guide / JFrog Xray 坐标归属走 Repo MCP;这里答扫描结论与门禁
进程内语义工具 AngusSecurity 回环本进程 REST;抑制/揭密/发布不进工具面

对照说明取舍,不是采购排名。细节以各厂商当日文档为准。

8. 边界与翻车表

连上之后最常见的三种翻车:拿错产品令牌连不上、空 Finding 列表被说成「安全」、扫描或报告还没出完就追问正文——对照下表与 FAQ。

现象 原因 处理
连不上 enabled=false / URL 错 / 控制台域名 /mcp 被反代拦 开开关;核对网关 /security/mcp;宿主须 POST
401 其他产品令牌或 repod_ / 无 Bearer / 令牌过期 「我的」里重签 PAT;刷新宿主 MCP
工具很少 / 比同事少 角色缺权限或写开关关 对照 §4;只读无扫;研发无门禁模拟与报告下载/创建
permission_denied 列表外硬调或控制台也无权限 先控制台验证同一账号;MCP 不扩权
助手说扫不了当前仓 无 ScanJobs:EXECUTE、写开关关、缺 gitRef、私有仓未给凭据名 开写开关;给 https + 分支;说出控制台凭据名称
想抑制误报 无对应工具 回控制台处置(避免模型把「接受风险」写成自动抑制)
密钥看不清原文 设计如此 揭密只在控制台
刚创建报告仍是生成中(PENDING) 报告异步出 轮询 security_get_report 至就绪(READY)/失败——不要刚创建就读正文
PDF「下载了」却无正文 二进制不进对话 看文件名 + consolePath,去控制台取
rate_limited 超过 30 次/分钟 稍后再试;合并提问
空 Finding 列表 未扫、未完成、或筛选未命中 说明未扫/未完成,不改写成安全
-32020 自加 Mcp-Method / Mcp-Name 与正文不一致 去掉自加头,或保证与当次 JSON 一致

FAQ

MCP 会不会揭开密钥或把误报标掉?

不会。解释与告警保持掩码;抑制、揭密、审批仍在控制台。原因之一:抑制在部分范围会自动批准——模型若把「接受风险」说成修复,会写成一条生效抑制。

写开关关掉还能查 / 下载报告吗?

能查(Reports:VIEW)。下载要 Reports:EXECUTE,不靠写开关。写开关关掉的是 security_scan 与 security_create_report。

和 CLI / CI 什么关系?

CLI 与流水线仍是批量与门禁主路径;MCP 把同一套任务与 Finding 接到 IDE 对话。统一引擎见文末:用一套扫描替换脚本。

为什么不做通用只读网关?

具名工具限制回环白名单,避免把管理 API 整面暴露给模型,并便于投影脱敏。

其他产品令牌 / repod_ 为什么不能连?

MCP 使用本门户用户访问令牌,权限与控制台一致。把自动化或跨产品令牌当成对话身份会扩大面——鉴权前直接 401。

security_license_summary 为什么答不了「这次检查」?

它汇总的是账号当前可见许可证,不能绑 jobId。问某次检查的许可问题用 security_issues。

空列表能不能说成安全?

不能。还要区分:任务未完成、某能力 notScanned=true、筛选没命中。三者都不是「目标安全」。

小结

  • 与 Repo MCP 错开:这边是扫描结论 / 门禁 / 报告;写面仅扫 + 创建报告,且受开关与角色约束。
  • 接入:网关 /security/mcp + PAT;repod_ 与其他产品令牌不行;密钥掩码;空 ≠ 安全。
  • 接入细节对照文档与控制台「系统 → MCP 接入」。

参考文章

相关文章
|
5天前
|
云安全 人工智能 运维
当攻击全面Agent化,你的安全防御能否跟上AI Speed?
多起客户侧AK泄露事件应急的真实观察
1241 4
|
28天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
9782 32
|
8天前
|
存储 人工智能 安全
千问办公官网入口网页版登录:qwenwork.cn 注册送2000积分、登录送100积分
阿里云千问办公(QwenWork)是AI智能工作平台,支持一句话生成PPT、表格、网页、视频及数据分析。个人免费版送2000积分+每日登录赠100分,含1GB存储、5个发布页;企业版198元/席/月起。阿里千问办公QwenWork官网:https://t.aliyun.com/U/0VCTGt 阿里AI工作平台,一句话完成数据分析、PPT 生成、视频剪辑、网页搭建等复杂任务
|
3天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
|
14天前
|
存储 人工智能 并行计算
大模型本地部署终端选型方法论:以 Qwen3.8-27B 为例的四档分层完整流程
本文提出一套大模型本地部署终端选型方法论:定约束、定档位、定框架、定参数四步决策法,配合入门、主力、质量、无损四档分层模型。以 Qwen3.8-27B 实测数据为例,逐环节解读显存、带宽、存储、散热、系统、预算等要素,给出面向不同预算的优选方案、决策自查清单与市场观察框架。文末前瞻 AI 笔记本的 CPU+GPU 与统一内存两条路线,论证四步决策法在新品类上的延续性。
|
5天前
|
Web App开发 人工智能 JavaScript
太猛了,一个月干到15W+,给大家推荐一个最近爆火的开源逆向工具:REA
REA(Reverse Engineer Anything)是近期爆火的开源AI逆向工具,4月发布,1个月内斩获15万+ Star。它让AI Agent无需源码即可分析二进制、APK、JS/Electron、HAR包等17类目标,自动反编译、生成可运行代码,并强制返回带证据与局限的结论。全本地执行,MIT协议,支持Hopper/Ghidra/IDA等引擎,一行命令即可上手。
621 1
太猛了,一个月干到15W+,给大家推荐一个最近爆火的开源逆向工具:REA
|
12天前
|
人工智能 JSON 自然语言处理
2026 年 Jev 决策模型深度拆解:原理解读、实战测评与保姆级落地教程
有一款特殊AI模型在开发者圈子刷屏,它摒弃传统大模型擅长的对话聊天能力,专注做高速结构化决策,它就是TypeSafe AI推出的Jev模型。该模型由ChatGPT共同发明人Diogo Almeida主导研发,定位为**System One Model(系统一模型)**,对标人类大脑快速直觉判断的思维模式,在响应延迟、调用成本、结构化输出稳定性上相比传统生成式大模型有着巨大差异。本文会完整拆解Jev底层原理、三大核心原语能力、适用业务场景,同时提供可直接运行的curl、Python代码示例,并且结合多组实测数据,客观分析模型优势与能力边界,帮助普通开发者和AI应用从业者快速上手落地。
927 1
|
9天前
|
人工智能 JSON 自然语言处理
2026 年 Jev 决策模型全解析:核心原理拆解,性能实战测评与落地部署教程
有一款特殊AI模型在开发者圈子刷屏,它摒弃传统大模型擅长的对话聊天能力,专注做高速结构化决策,它就是TypeSafe AI推出的Jev模型。该模型由ChatGPT共同发明人Diogo Almeida主导研发,定位为System One Model(系统一模型),对标人类大脑快速直觉判断的思维模式,在响应延迟、调用成本、结构化输出稳定性上相比传统生成式大模型有着巨大差异。本文会完整拆解Jev底层原理、三大核心原语能力、适用业务场景,同时提供可直接运行的curl、Python代码示例,并且结合多组实测数据,客观分析模型优势与能力边界,帮助普通开发者和AI应用从业者快速上手落地。
592 0