跳到正文
Hacker News· gabe4coding·· 7 天前AI 评分62

gabe4coding 发布 Claude Code 插件 code-mode:用沙箱程序批量调用 MCP 工具

Show HN: Claude Code Mode

AI 导读

gabe4coding 发布 Claude Code 插件 code-mode,让模型写一段 JavaScript 程序在沙箱中调用 MCP 工具,只把返回值放回上下文,中间数据不进入上下文以节省 token。

正文 · 原文

code-mode: many MCP calls, one program, one small result

A Claude Code plugin: the model writes one JavaScript program that calls your MCP tools in a sandbox. Only the return value goes back into the context.

License: MIT Node.js 22.13+ No dependencies Claude Code plugin Tests

Quick start · Usage · Hints · Functions · Permissions · Config


code-mode-explainer-github.mp4

Without code-mode, the model calls MCP tools one by one, and each full result goes into the context. With code-mode, the model writes one program. The program calls the tools, then filters and joins the results in a sandbox. Only the answer goes into the context.

  • Fewer tokens: the intermediate data stays out of the context. The model uses the context for the task.
  • Sandbox: the program runs in its own Node process, with no file system and a CPU limit. On macOS, and on Linux where unshare -rn works, it also has no network.
  • Hints: short notes for each MCP server tell the model about result formats, required arguments and limits. The model can propose a new hint or the removal of a wrong hint, and you approve it.
  • Saved functions: the model can propose a program part that works as a function for later sessions. You read the code and approve it.
  • Your permission rules apply: each MCP call in the program gets the normal permission check.

Quick start

You need Claude Code and Node.js 22.13 or later.

Type these commands at the prompt of a Claude Code session:

/plugin marketplace add gabe4coding/claude-code-mode
/plugin install code-mode@claude-code-mode

Start a new session. Then ask for a task that needs several MCP calls.

If you use auto mode, add allow rules for your MCP tools first. Read Permissions.

Example

You ask: "Which of my open Jira issues have no update in the last 14 days?" The model writes one program, for example:

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 }))

The model gets only the short list, not each full issue.

Documentation

Page
Installation Requirements, install, local folder, update
Usage The three tools, how to write a program, the result
Hints Write hints, approve proposals, the safety rules
Saved functions Approve or write functions that programs use again
Permissions Manual and auto mode, allow rules
Configuration Every option and its default
How it works One run from start to end, the four sandbox layers
Troubleshooting Common errors and known limits
Development Layout, tests, releases

License

MIT. See LICENSE.

来源:Hacker News · github.com