Hacker News· gabe4coding·· 6 天前AI 评分62
gabe4coding 发布 Claude Code 插件 code-mode:用沙箱程序批量调用 MCP 工具
Show HN: Claude Code Mode
AI 导读
gabe4coding 发布 Claude Code 插件 code-mode,让模型写一段 JavaScript 程序在沙箱中调用 MCP 工具,只把返回值放回上下文,中间数据不进入上下文以节省 token。
正文 · AI 翻译
一个 Claude Code 插件:模型编写一个 JavaScript 程序,在沙箱中调用你的 MCP 工具。 只有返回值会回到上下文中。
code-mode-explainer-github.mp4
没有 code-mode 时,模型逐个调用 MCP 工具,每个完整结果都会进入上下文。使用 code-mode 时,模型编写一个程序。程序调用这些工具,然后在 沙箱中过滤并合并结果。只有答案会进入上下文。
- 更少的 token:中间数据不会进入上下文。模型将上下文用于任务本身。
- 沙箱:程序在自己的 Node 进程中运行,没有文件系统,并有 CPU 限制。在 macOS 上,以及在
unshare -rn可用的 Linux 上,它也没有网络。 - 提示:为每个 MCP 服务器提供的简短说明会告诉模型结果格式、必需参数和限制。 模型可以提议新的提示或删除错误的提示,由你批准。
- 已保存的函数:模型可以提议将程序的一部分作为函数供后续会话使用。你阅读 代码并批准它。
- 你的权限规则适用:程序中的每次 MCP 调用都会经过正常的权限检查。
快速开始
你需要 Claude Code 和 Node.js 22.13 或更高版本。
在 Claude Code 会话的提示符下输入这些命令:
/plugin marketplace add gabe4coding/claude-code-mode
/plugin install code-mode@claude-code-mode
启动一个新会话。然后请求一个需要多次 MCP 调用的任务。
如果你使用自动模式,请先为你的 MCP 工具添加允许规则。阅读 权限。
示例
你问:“我有哪些未更新的 Jira 问题在过去 14 天内没有更新?” 模型会编写一个程序,例如:
const issues = await call("mcp__claude_ai_Jira__searchJiraIssuesUsingJql", { cloudId: "example.atlassian.net", jql: "assignee = currentUser() AND statusCategory != Done", }) const cutoff = Date.now() - 14 * 24 * 3600 * 1000 return issues.issues .filter(i => Date.parse(i.fields.updated) < cutoff) .map(i => ({ key: i.key, title: i.fields.summary }))
模型只得到简短的列表,而不是每个完整的问题。
文档
| 页面 | |
|---|---|
| 安装 | 要求、安装、本地文件夹、更新 |
| 用法 | 三个工具、如何编写程序、结果 |
| 提示 | 编写提示、批准提议、安全规则 |
| 已保存的函数 | 批准或编写程序可再次使用的函数 |
| 权限 | 手动和自动模式、允许规则 |
| 配置 | 每个选项及其默认值 |
| 工作原理 | 从开始到结束的一次运行、四个沙箱层 |
| 故障排除 | 常见错误和已知限制 |
| 开发 | 布局、测试、发布 |
许可证
MIT。参见 LICENSE。
来源:Hacker News · github.com