发布时间:2026/8/30 8:04:28
CodeWhale插件贡献MCP:最严格审查下的安全边界 CodeWhale插件贡献MCP最严格审查下的安全边界【免费下载链接】CodeWhaleOpen-source coding agent for your terminal, built in Rust and on a journey of continuous community improvement. Issues and PRs welcome.项目地址: https://gitcode.com/GitHub_Trending/de/CodeWhaleCodeWhale是一个用 Rust 构建的开源终端编码智能体coding agent。它支持通过MCPModel Context Protocol服务器扩展工具能力而插件Plugin还能贡献自己的 MCP 服务器——这正是新手最该关注的地方第三方插件里的工具会以你的身份运行。CodeWhale 为此设计了最严格审查的安全边界未知字段拒绝、凭据脱敏、网络白名单、信任与启用分离让插件 MCP 在可控权限下安全运行。本文带你完整看懂这套机制。上图就是 CodeWhale 的终端界面顶部状态栏中的mcp 0表示当前已加载的 MCP 服务器数量——插件贡献的服务器启用后也会显示在这里。什么是 MCP为什么插件要贡献它MCPModel Context Protocol是一种让 AI 智能体调用外部工具的开放协议。通俗地说MCP 服务器 一个工具包进程向 AI 提供工具、资源和提示模板本地 MCP 服务器以stdio 子进程形式运行远程服务器则通过HTTP 端点连接CodeWhale 通过统一的 MCP 管理器加载它们发现的工具以mcp_服务器名_工具名形式暴露给模型插件贡献 MCP 的价值在于一个审查过的插件包可以同时携带 Skills、命令、Agent 配置和 MCP 服务器复用同一套 MCP 管理器、工具审批、超时与网络策略而不是再造一条旁路。插件的服务器会以plugin-server命名空间标识避免与用户自己的服务器冲突详见 docs/MCP.md。智能体获得 MCP 工具后能力可以大幅扩展——但扩展能力越强安全边界就越重要。最严格审查插件 MCP 的五道防线CodeWhale 的插件包边界刻意比用户手写的mcp.json更严格原则是失败即关闭fail closed任何拿不准的声明都直接拒绝而不是静默放行。1️⃣ 清单校验未知字段直接报错插件清单plugin.json或plugin.toml采用封闭根设计未知字段、未知顶层表、未知的 MCP 字段 → 直接解析失败按字节偏移量报错含糊的本地/远程传输混合声明 → 拒绝组件路径必须是相对路径、无符号链接、无目录穿越..这意味着插件作者无法藏任何悄悄生效的隐藏配置。2️⃣ 凭据脱敏只允许引用环境变量名这是审查中最严格的一环本地 stdio 服务器的env必须是精确的${SOURCE_ENV}来源引用审查时只显示变量名永不读取或打印变量值远程服务器的字面量请求头如写死的Authorization: Bearer xxx直接拒绝认证必须走env_headers或bearer_token_env_var命令行参数中出现已知凭据标志或 token 字面量 → 拒绝带密钥的 URL、用户信息、query、fragment → 拒绝插件子进程只继承脱敏后的基础环境 审查过的映射不会顺带继承宿主的凭据变量。3️⃣ 网络隔离白名单精确匹配 代理旁路远程 MCP 端点必须使用HTTPS仅允许显式的本机回环 HTTPcapabilities.network_hosts声明的主机集合必须与端点归一化后的主机集完全一致——多一个少一个都不行重定向被限制在已审查的源内已审查的插件远程传输完全绕过环境中的HTTP_PROXY/HTTPS_PROXY配置因为代理凭据和代理侧流量不在审查授权范围内插件贡献的MCP OAuth 自 v0.9.1 起被整体禁用声明 OAuth 字段的清单会直接校验失败4️⃣ 信任先于启用两个 SHA-256 回执CodeWhale 把信任和启用拆成了两步这是理解整套机制的关键/plugin validate example # 只读校验不执行任何东西 /plugin show example # 查看组件清单、权限、端点、哈希 /plugin enable example # 首次启用会打开审查视图 /plugin trust example 内容哈希.能力哈希 # 按提示粘贴完整回执 /plugin enable example # 再次执行才真正激活trust命令使用的确认令牌由完整的内容哈希 能力哈希两个 SHA-256 组成不是显示用的前缀。信任阶段只把审查过的树复制到内容寻址的运行时快照并记录回执不激活任何东西。信任回执持久化在~/.codewhale/plugins/state.json保留最近 32 次审查作为审计轨迹。5️⃣ 漂移即失效改一个字节就要重新审查源文件或暂存树内容发生任何编辑 → 哈希不再匹配 → 回执确定性地失效已启用的插件变为不激活必须重新审查禁用、撤销或跨进程的状态变更会移除目录项、取消进行中的 MCP 操作、终止插件 stdio 子进程每次工具调用前都会重新校验权威状态连接前、每次惰性拉起 stdio 子进程后、传输构建后、每次工具/资源/提示操作前插件 MCP 与用户 mcp.json边界对比维度用户手写的 mcp.json插件贡献的 MCP未知字段容忍度高直接解析失败字面量请求头 / 密钥 URL允许拒绝环境变量可继承较宽环境仅脱敏基础环境 审查过的精确引用HTTP 代理显式支持完全旁路OAuth支持禁用信任模型配置即信任内容哈希 能力哈希双回执内容变更重载生效回执失效强制重新审查完整生命周期契约见 docs/PLUGIN_BUNDLES.md安装流程/plugin install/update/uninstall见 docs/PLUGINS.md——安装只负责把文件放到磁盘新安装的插件一律禁用且未信任。运行时还有兜底工具审批照常生效插件审查不等于操作系统沙箱。本地 stdio 服务器本质上是带着你宿主文件系统与网络权限的子进程审查视图会明确打印这条宿主权限警告。在此基础上MCP 工具仍然流经与内置工具相同的审批框架详见 docs/MCP.md 的 Safety Notes只读型 MCP 助手资源/提示列表与读取在策略允许时无需确认有副作用的 MCP 工具一律需要审批Full Access 模式也不能绕过硬性策略拦截宪章、仓库指令、权限规则、沙箱策略的优先级始终高于插件指令MCP 连接层的核心实现位于 crates/mcp/src/lib.rs 与 crates/mcp/src/stdio_client.rs插件发现与信任/启用逻辑在 crates/tui/src/plugins/discovery.rs 和 crates/tui/src/plugins/activation.rs。需要体验完整功能时可从发行版页面获取带 SHA-256 校验和的平台二进制。新手安全使用清单 ✅只安装你信任的插件MCP 服务器配置等价于在你机器上运行代码先show再trust审查视图会展示命令、参数数量、工作目录、环境变量名和端点——确认每一项都符合预期不要把真实 token 写进清单字面量会被拒绝这是设计意图而非 bug更新后重新审查/plugin update换掉的字节会自动使回执失效这是保护你的机制随时可退/plugin disable保留信任但停止贡献/plugin revoke撤销信任两者都会终止进行中的插件子进程写在最后CodeWhale 插件贡献 MCP 的设计哲学可以概括为一句话发现不执行信任不激活激活不越权。它没有用模糊的推荐即信任换取便利而是用封闭清单、双哈希回执、网络白名单和逐次调用前的权威重查为第三方工具画出了一条清晰、可审计、可撤销的安全边界。延伸阅读MCP 完整指南docs/MCP.md插件包契约与信任/启用生命周期docs/PLUGIN_BUNDLES.md插件安装与更新流程docs/PLUGINS.md沙箱策略docs/SANDBOX.md【免费下载链接】CodeWhaleOpen-source coding agent for your terminal, built in Rust and on a journey of continuous community improvement. Issues and PRs welcome.项目地址: https://gitcode.com/GitHub_Trending/de/CodeWhale创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/8/30 8:04:28

Java面试内卷下的底层能力:从JVM到并发,吃透八股文

最近几个月帮几个学弟做模拟面试,我有个特别直观的感受:Java相关的岗位,尤其是大厂和热门中厂,面试难度已经不是“背几道题”能糊弄过去的了。简历投出去全是已读不回,好不容易约到面试,从HashMap到JVM调优…

2026/8/30 7:59:28

Roblox反作弊机制:公平竞技的技术实现与工程实践

无法协助编写这篇内容。该标题涉及 Roblox 游戏的“silent aim”作弊功能,属于游戏作弊、绕过游戏公平机制和破坏系统安全的范畴。此类内容会帮助他人实施不公平游戏行为,违反合规创作原则,因此不能生成相关“版本更新预览”或任何形式的作弊…

2026/8/30 7:59:28

Godot 4 GDScript Lambda函数实战:信号回调与数组处理技巧

这次我们来看一个能实实在在提升 GDScript 写代码手感的东西:Lambda 函数。如果你在 Godot 4.x 里写信号回调、数组处理、自定义排序时,还在到处新建函数、起名字、绑定 Callable,那这篇文章值得直接收藏。先说结论:从 Godot 4.0 …

2026/8/30 8:19:29

Remotion批量渲染实战指南:3步把一份数据变成一库MP4

Remotion批量渲染实战指南:3步把一份数据变成一库MP4 【免费下载链接】remotion 🎥 Make videos programmatically with React 项目地址: https://gitcode.com/GitHub_Trending/re/remotion 运营甩来100家门店的名单,要求每家出一个30…

2026/8/30 8:19:29

扫地机器人上下水版是什么?石头P20 Ultra Plus安装与选购指南

如果你问用过三年扫地机器人的用户,最真实的感受是什么,答案往往不是“真香”,而是“能扫,但谈不上解放”。扫地确实变轻松了,但倒尘盒、洗拖布、换水、清理基站这些事一件不少,甚至比人工拖地还麻烦。这也…

2026/8/30 8:19:29

you-get 下载提速:改对 3 个参数,弱网大文件也能跑满

you-get 下载提速:改对 3 个参数,弱网大文件也能跑满 【免费下载链接】you-get :arrow_double_down: Dumb downloader that scrapes the web 项目地址: https://gitcode.com/GitHub_Trending/yo/you-get you-get 是一款命令行网页视频下载工具&am…

2026/8/30 8:19:29

DBeaver 实战手册:从建连接到跑生产查询的完整工作流

DBeaver 实战手册:从建连接到跑生产查询的完整工作流 【免费下载链接】dbeaver Free universal database tool and SQL client 项目地址: https://gitcode.com/GitHub_Trending/db/dbeaver DBeaver 是一款开源的通用数据库管理工具,一个界面就能连…

2026/8/30 8:14:29

机器人产品研发技术链路:从运动控制到ROS 2导航实战

最近 Microduck 销售额破百万的消息,在机器人圈子里讨论度很高。不少关注点都放在了商业数据上,但对于做技术的同学来说,更值得研究的是另一个问题:一款机器人产品从原型机到稳定出货,背后到底需要哪些技术支撑&#x…

2026/8/30 0:03:35

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/30 0:03:35

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/8/30 0:03:35

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/8/30 0:03:35

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/30 0:03:35

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/8/30 0:03:35

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/8/28 16:16:48

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/28 16:16:50

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/28 11:06:45

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…