首页 文章 精选 留言 我的

精选列表

搜索[AI生成代码],共10000篇文章
优秀的个人博客,低调大师

用 AI 助手只读查制品库:AngusRepo MCP 怎么接入

Coding Agent 要在对话里问「这个坐标在哪个仓、依赖和漏洞计数是什么」,并不需要把 `mvn` / `npm` / `docker` 搬进模型上下文。AngusRepo 把这条能力做成进程内的 **MCP 只读端点**:宿主连上之后调用具名工具,服务端回环本进程管理 API,返回元数据投影。 > **结论:** Repo MCP **全部只读**——默认暴露 8 个以 `repo_` 开头的工具;不代理 `/maven`、`/npm`、`/v2` 等协议路径;不下载二进制、不签发令牌、不执行清理。社区版不含 MCP;团队版 / 企业版 / 云服务版按文档接入。身份必须是门户签发的用户访问令牌(PAT),**Deploy Token(`repod_`)会被 401**。 控制台与客户端怎么接 MCP,见文末参考「通过 MCP 连接 AngusRepo」。本文说明只读八工具怎么划分、鉴权为何区分 PAT 与 Deploy Token,以及限流与版本边界。缓存一致性见文末参考「缓存架构设计与实践」。 ## 1. Agent 常问的五类只读问题 对话里反复出现的,大致是这五类: 1. 定位已入库制品,并说明是否隔离、是否扫过。 2. 查看依赖、声明许可与漏洞计数。 3. 按仓库格式给出客户端配置示例(口令占位符)。 4. 预览已有清理策略会影响什么(不执行)。 5. 读取仓库或租户已有的安全评分快照。 明确不做:上传、删除、发布、下载、触发扫描、签发令牌。协议拉包继续走 PAT 或 Deploy Token,**不进 MCP**。 ## 2. 形态:进程内端点 + 回环 ```text IDE / Agent --POST {网关}/repo/mcp--> Boot /mcp --回环 Bearer--> /api/v1/**(白名单 GET) ``` 选择进程内端点,是因为权限和审计已经在 REST 上;再做一个外部 Node 去包 REST,会把策略复制一份。回环没有通用 path 参数,协议路径和下载接口不会被模型拼出来。 | 项 | 口径 | | --- | --- | | 传输 | 无状态 `POST`;默认路径 `/mcp`;经网关为 `{host}/repo/mcp` | | 回环 | 基址本机 Repo 端口;Bearer 原样转发;带 `X-Angus-Client-Source: mcp` | | 注册面 | 只注册 **tools**;不注册 MCP resources / prompts / sampling | | GM | 不新增 GM 资源;工具显隐跟现有 `@PPS` 权限码走 | 实例开关(发行配置口径,与用户文档一致): | 配置 | 作用 | | --- | --- | | `angus.mcp.enabled`(环境变量 `ANGUS_MCP_ENABLED`,未设置时为 `true`) | `false` 时不注册端点;制品托管不受影响 | | `angus.mcp.write-enabled` | 产品侧固定 `false`,无写工具 | 限流:每个账号每分钟最多 **30** 次合法 `tools/call`;非法参数在计入限流前返回。社区版不种子「系统 → MCP」Tab,并强制关闭 `/mcp`。 ## 3. 八个工具(名称以文档为准) 系统管理员或持有全部只读权限时,`tools/list` 应看到恰好 8 个: | 工具 | 权限要点 | 做什么 | | --- | --- | --- | | `repo_find_artifact` | `Artifacts:VIEW` | 按名称片段等检索;至少一项过滤条件;`pageSize` 夹到 1–20 | | `repo_locate_version` | `Artifacts:VIEW` | 精确定位主文件;多条时 `ambiguous` + 候选,不猜一条 | | `repo_inspect_dependencies` | 制品字段 `Artifacts:VIEW`;许可证发现另需 `SecurityScans:VIEW` | 依赖、声明许可、漏洞计数;不触发扫描 | | `repo_list_repositories` | `Repositories:VIEW` | 可见仓库列表,不含 settings | | `repo_client_setup` | `Repositories:VIEW` | 与控制台同源模板;口令为占位符 | | `repo_artifact_security` | 扫描历史等另需 `SecurityScans:VIEW` | 隔离、已有漏洞计数与扫描历史;**不触发扫描** | | `repo_repository_score` | `SecurityScans:VIEW` | 仓库/租户评分快照,**不是**单个包的分数 | | `repo_cleanup_preview` | `CleanupPolicies:VIEW` | 只走 GET preview,不创建执行记录 | 结果投影刻意丢掉 `downloadUrl`、校验和、README 与许可证全文,降低模型侧误用与泄密面。 **明确不在列表中:** `repo_search`、`repo_compare_versions`(后续项、默认不注册)、`repo_invoke_read`、`repo_connection_check`,以及任何 publish / delete / execute cleanup / mint token。 `secure` 为空或 `scanTrust=UNKNOWN` 表示**尚未扫描**,不等于安全。门禁默认关;Repo 执法、Security 引擎分工与产品文档 FAQ 一致。 ## 4. 鉴权边界(容易踩坑) | 凭证 | 结果 | | --- | --- | | 门户签发的用户访问令牌(PAT) | 可进 MCP;工具集随角色收窄 | | `repod_` Deploy Token | **401**,无工具列表 | | OAuth 刷新令牌 / 其他产品令牌 | 401 | | 无 Bearer | 401(避免收成工具内错误导致模型盲重试) | 可见范围等于该用户在 `/api/v1` 的范围,与控制台一致;MCP **不**单独再解释协议路径上的 `repo:read` / `repo:write`。PAT 上的 `repo:write` 只表示协议可写,**不**表示 MCP 可写。 个人令牌:右上角头像 → **我的**(`/profile`)签发。CI 用服务账号,不要把个人登录态写进仓库。 ## 5. 宿主接入(与手册对齐的最小片段) 令牌放环境变量,勿写入仓库: ```json { "mcpServers": { "angus-repo": { "url": "https:///repo/mcp", "headers": { "Authorization": "Bearer ${ANGUS_REPO_TOKEN}" } } } } ``` | 宿主 | 配置文件(以各宿主文档为准) | | --- | --- | | Cursor | 项目 `.cursor/mcp.json` 或用户级 `~/.cursor/mcp.json` | | Claude | `claude_desktop_config.json` | | VS Code | 工作区 `.vscode/mcp.json` | 仅 stdio 的宿主可用 `@anguskit/mcp --product repo` 转发;该进程读 `ANGUS_TOKEN` / `ANGUS_BASE_URL`,与上面的 `ANGUS_REPO_TOKEN` **不是**同一变量名。若默认 npm 源没有该包,文档建议改用 `https://repo.anguskit.com/npm/npm-public/`。完整宿主表见文末参考:MCP 文档。 ### 5.1 一次真实对话:用户问 → 工具 → 期望形态 | 步骤 | 内容 | | --- | --- | | 用户问 | `log4j-api 2.24.1 在哪个仓?隔离了吗?` | | 应调用 | 先 `repo_locate_version`(坐标/名称 + 版本精确定位);若需漏洞计数与隔离字段,再 `repo_artifact_security`(或定位结果里已有的安全投影字段,以实际返回为准) | | 期望字段 / 形态 | 制品 `id` 为**十进制字符串**;仓库名、格式、版本可核对;多条主文件时返回 `ambiguous` 并列出候选,**不**由模型任选一条 | | 不应出现 | `downloadUrl`、完整校验和、许可证全文;也不应触发新扫描 | 连上后也可先让助手 `tools/list` 确认恰好八个 `repo_*`,再指定一条真实 Maven 坐标调用 `repo_locate_version` 做冒烟。 ## 6. 与业界形态的对照(极短) | 形态 | 代表 | 与 AngusRepo(一句话) | | --- | --- | --- | | 托管情报 MCP | Sonatype Guide | 查公开组件情报,不读客户仓 | | 平台宽工具面 | JFrog Platform MCP | 含写操作面;AngusRepo 选窄只读 | | 进程内窄工具 | AngusRepo | 回环本进程 REST,协议路径隔离 | 对照说明产品取舍,不是采购排名。细节以各厂商当日文档为准。 ## 7. 边界与翻车表 | 现象 | 原因 | 处理 | | --- | --- | --- | | 连不上 | 社区版 / `enabled=false` / URL 错 | 换版本或开开关;核对 `/repo/mcp` | | 401 | 用了 `repod_` 或刷新令牌 | 改用「我的」里签发的 PAT | | 工具很少 | 角色缺权限码 | 按文档补 `Artifacts:VIEW` 等 | | 想让 Agent 拉 jar | 误以为 MCP 代理协议 | 用 mvn/npm/docker 走协议路径 | | 把仓库分当成包分 | 误读 `repo_repository_score` | 制品看漏洞计数与隔离字段 | | `ambiguous` | 同坐标多条主文件 | 列出候选让人挑,不任选 | | `rate_limited` | 超过 30 次/分钟 | 稍后再试;合并提问 | ## FAQ ### MCP 会不会删包或执行清理? 不会。写开关恒关;清理只有 preview。 ### 和 Skill 什么关系? Skill 描述该问哪些制品风险;MCP 提供可调用的查询工具。两者可同时用(产品文档口径)。 ### 为什么不做通用只读网关? 具名工具限制回环白名单,避免把管理 API 整面暴露给模型,并便于投影脱敏。 ### Deploy Token 为什么不能连 MCP? `repod_` 是单仓 CI 凭据。若能调管理面 MCP,会把自动化令牌变成对话身份——鉴权前直接 401。 ## 小结 - 核心取舍:只读、八工具、回环 REST、协议路径隔离。 - 接入核心:网关 `/repo/mcp` + PAT;Deploy Token 不行。 - 社区版没有这条能力;需要时对照团队/企业/云服务版文档与控制台开关。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册