Claude代码的代码执行者技能
全面的克劳德代码技能,通过启动编写和执行代码的子代理,实现高效的多工具MCP工作流程,将令牌开销降低高达98%。
概述
此技能教Claude Code如何使用 子代理架构克劳德·科德没有将所有MCP工具模式加载到主上下文中(导致令牌膨胀),而是启动了一个子代理,该子代理编写TypeScript或Python代码来组合多个MCP工具调用。
主要优势
- 代币减少98%:主上下文没有MCP服务器→ 没有代币膨胀(1.6k对141k代币)
- 多工具组合:在单个代码执行中组合多个MCP操作
- 复杂逻辑:循环、条件语句、数据转换、重试逻辑
- 并行执行:同时从多个来源获取
- 缓存模式:12个经过验证的脚本示例(6个TypeScript+6个Python)
- 渐进呈现:仅在子代理上下文中加载MCP工具
建筑
Main Claude Code (NO MCP servers configured)
↓
Recognizes multi-tool MCP workflow
↓
Launches subagent via Task tool
↓
Subagent (HAS MCP servers configured)
↓
Writes TypeScript/Python code
↓
Executes via Bash (deno run / python)
↓
Code imports local MCP client library
↓
MCP client calls tools via MCP protocol
↓
Returns results to main context为什么这样做:
- 主上下文保持干净(未加载MCP模式)
- 子代理上下文是孤立的、可丢弃的
- 代码执行允许复杂的多工具组合
- 结果汇总并返回主
先决条件
必需
- 克劳德代码 (终端或网络版本)
- 了解了:https://docs.claude.com/en/docs/claude-code
- 德诺 (用于TypeScript执行)
curl -fsSL https://deno.land/install.sh | sh- Python 3.8+ (用于Python执行)
python3 --version # Should be 3.8 or higher- MCP服务器 您想使用
- 文件系统: @modelcontextprotocol/server-filesystem - PostgreSQL: mcp-server-postgres - SQLite: mcp-server-sqlite - github: mcp-server-github - 或您的自定义MCP服务器
不需要的
- ❌ 代码执行器MCP服务器(我们在本地实现MCP客户端)
- ❌ 主克劳德代码配置中的MCP服务器(保持上下文干净)
安装
第一步:安装技能
# Clone this repository
git clone https://github.com/mcfearsome/cc-mcp-executor-skill.git
# Install for main Claude Code instance (global)
cp -r cc-mcp-executor-skill/code-executor ~/.claude/skills/
# OR install for specific project (local)
mkdir -p .claude/skills
cp -r cc-mcp-executor-skill/code-executor .claude/skills/步骤2:配置子代理MCP服务器
创建 ~/.claude/subagent-mcp.json (或特定项目 .claude/subagent-mcp.json):
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp", "/home/user/projects"]
},
"postgres": {
"command": "mcp-server-postgres",
"args": ["--connection", "postgresql://localhost/mydb"]
},
"github": {
"command": "mcp-server-github",
"args": ["--token-file", "/home/user/.github-token"]
}
}
}步骤3:了解MCP客户端配置
MCP客户端库从以下位置读取配置 ~/.mcp.json 或 MCP_CONFIG_PATH 有人是。
关键:不要符号链接或全局导出MCP_CONFIG_PATH
为什么?如果你符号链接 ~/.claude/subagent-mcp.json 到 ~/.mcp.json,或全球出口 MCP_CONFIG_PATH那么 主克劳德代码将加载所有MCP服务器,破坏了整个目的(减少98%的代币)。
正确方法:
子代理集 MCP_CONFIG_PATH 暂时在Bash执行命令中:
MCP_CONFIG_PATH=~/.claude/subagent-mcp.json deno run --allow-read --allow-run --allow-env script.ts这种方式:
- ✅ 主克劳德代码没有加载MCP服务器(保持上下文干净)
- ✅ 子代理执行集
MCP_CONFIG_PATH暂时 - ✅ MCP客户端仅在代码执行期间读取子代理配置
- ✅ 令牌开销隔离到子代理上下文
此步骤中不需要任何操作 -子代理处理设置 MCP_CONFIG_PATH 执行代码时自动执行。
步骤4:验证安装
# Check skill is installed
ls -la ~/.claude/skills/code-executor/
# You should see:
# - SKILL.md (main skill file)
# - SUBAGENT_SETUP.md (configuration guide)
# - lib/ (MCP client libraries)
# - scripts/ (cached patterns)
# - templates/ (starting points)快速开始
示例1:简单文件处理
用户请求:
"Read all JSON files in /tmp/data and count total records"克劳德代码(主): 识别多工具工作流程→ 启动子代理
子代理:
- 使用以下方式编写代码
scripts/typescript/file-processing.ts模式 - 通过以下方式列出文件
mcp__filesystem__listDirectory - 通过以下方式读取每个JSON文件
mcp__filesystem__readFile - 统计记录
- 返回:“已处理15个文件,共1247条记录”
示例2:多源数据聚合
用户请求:
"Fetch users from database, enrich with GitHub profile data, store results"克劳德代码(主): 识别多工具工作流程→ 启动子代理
子代理:
- 用途
scripts/typescript/data-aggregation.ts模式 - 通过以下方式获取用户
mcp__database__query - 通过并行方式进行丰富
mcp__github__getUser - 商店通过
mcp__database__insert - 返回:“已富集234个用户,存储成功”
示例3:错误恢复
用户请求:
"Fetch data from primary API, fallback to secondary if it fails"克劳德代码(主): 识别错误恢复模式→ 启动子代理
子代理:
- 用途
scripts/typescript/error-recovery.ts模式 - 尝试主API并重试
- 失败后退回到次要位置
- 返回:“在主要超时后从辅助API检索”
技能结构
code-executor/
├── SKILL.md # Main skill file (Claude Code reads this)
├── SUBAGENT_SETUP.md # Configuration guide
├── TYPESCRIPT_GUIDE.md # TypeScript patterns reference
├── PYTHON_GUIDE.md # Python patterns reference
├── EXAMPLES.md # Complete real-world examples
├── REFERENCE.md # MCP client API reference
├── lib/ # MCP client libraries
│ ├── mcp-client.ts # TypeScript/Deno MCP client
│ └── mcp_client.py # Python MCP client
├── scripts/ # Cached executable patterns
│ ├── typescript/
│ │ ├── multi-tool-workflow.ts # Sequential pipeline
│ │ ├── parallel-execution.ts # Concurrent operations
│ │ ├── error-recovery.ts # Retry logic
│ │ ├── file-processing.ts # Batch file ops
│ │ ├── conditional-logic.ts # Dynamic tool selection
│ │ └── data-aggregation.ts # Multi-source merging
│ └── python/
│ ├── multi_tool_workflow.py
│ ├── parallel_execution.py
│ ├── error_recovery.py
│ ├── file_processing.py
│ ├── conditional_logic.py
│ └── data_aggregation.py
└── templates/ # Minimal starting points
├── basic-typescript.template.ts
├── basic-python.template.py
├── multi-tool.template.ts
└── multi-tool.template.py运作原理
主克劳德代码(YOU)
当您遇到多工具MCP工作流时:
- ✅ 识别模式(3+MCP工具、复杂逻辑等)
- ✅ 通过任务工具启动子代理
- ✅ 提供引用缓存脚本的明确说明
- ✅ 指定可用的MCP工具
- ✅ 定义预期输出
- ✅ 接收并报告结果
你不能:
- ❌ 配置MCP服务器(保持上下文干净)
- ❌ 加载MCP工具模式(无令牌膨胀)
- ❌ 自己编写代码(子代理执行)
2.子代理执行
子代理:
- 读取引用的缓存脚本模式
- 编写改编的Types/Python代码
- 导入MCP客户端库
- 通过Bash执行代码
- 代码根据需要调用多个MCP工具
- 将摘要返回到主上下文
3.MCP客户端库
MCP协议客户端的本地实现:
TypeScript(lib/mcp-client.ts):
import { callMCPTool } from '../../lib/mcp-client.ts';
const result = await callMCPTool('mcp__filesystem__readFile', {
path: '/data/file.json'
});pythonlib/mcp_client.py):
from lib.mcp_client import call_mcp_tool
result = await call_mcp_tool('mcp__filesystem__readFile', {
'path': '/data/file.json'
})何时使用此技能
✅ 使用时间:
- 多工具MCP工作流程 (需要3+次工具调用)
- 列出文件、读取每个文件、聚合数据、存储在数据库中
- 复杂的数据处理
- “从数据库获取,使用API进行丰富,筛选,消除重复,存储”
- 有条件的工具选择
- 尝试主API,回退到辅助,然后缓存
- 并行操作
- “同时从5个不同的API获取”
- 重试逻辑和错误恢复
- “以指数级回退重试,直到成功”
❌ 在以下情况下请勿使用:
- 单个简单的工具调用 -直接打电话
- 无需MCP工具 -定期任务规划
- UI/用户交互 -使用斜线命令
- 简单的顺序操作 -直接通话更清晰
缓存脚本模式
TypeScript
- 多工具工作流.ts -顺序流水线(Fetch→ 变换→ 验证→ 商店→ 报告)
- 并行执行.ts -与Promise.all并发操作
- 错误恢复.ts -使用指数回退重试逻辑
- 文件处理.ts -带过滤的批处理文件操作
- 条件逻辑ts -基于数据的动态刀具选择
- 数据聚合.ts -多源数据合并
python
Python中的相同模式:
- multitool_workflow.py
- 并行执行.py
- error_recovery.py
- file_processing.py
- 条件逻辑.py
- data_aggregation.py
MCP工具命名
格式: mcp____
例子:
mcp__filesystem__readFilemcp__database__querymcp__github__createPullRequest
这 `` 名称来自您的子代理MCP配置。
故障排除
技能未激活
问题:Claude Code不使用该技能
解决方案:
- 检查安装:
ls ~/.claude/skills/code-executor/SKILL.md - 在SKILL.md中验证YAML frontmatter
- 尝试使用明确的语言:“使用代码执行器技能来处理这个多工具工作流”
未找到工具
问题: Error: MCP tool 'mcp__server__tool' not found
解决方案:
- 检查工具名称格式:
mcp____ - 在子代理配置中验证服务器:
cat ~/.mcp.json - 确保服务器正在运行(手动测试)
未找到MCP配置
问题:“找不到MCP配置文件:~/.MCP.json”
原因:未设置子代理执行命令 MCP_CONFIG_PATH
解决方案:
- 验证子代理Bash命令是否包括:
MCP_CONFIG_PATH=~/.claude/subagent-mcp.json - 检查配置文件是否存在:
ls -la ~/.claude/subagent-mcp.json - 审查SKILL.md,确保执行示例包括MCP_CONFIG_PATH
不要:Symlink或全局导出MCP_CONFIG_PATH(这会破坏架构)
权限不足
问题:无法读取/写入文件或访问网络
解决方案:
- 检查Deno权限:包括
--allow-read --allow-run --allow-env - 验证文件路径是否在允许的目录中(MCP服务器配置)
- 检查MCP服务器是否具有必要的权限
代码执行失败
问题:子代理的代码不运行
解决方案:
- 检查Deno是否已安装:
deno --version - 检查是否安装了Python:
python3 --version - 检查生成的代码是否存在语法错误
- 检查MCP客户端导入路径是否正确
配置
主克劳德代码
无MCP服务器 在 .mcp.json:
{
"mcpServers": {
// Keep this empty or don't create the file
}
}子代理MCP服务器
创建 ~/.claude/subagent-mcp.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/paths"]
},
"database": {
"command": "mcp-server-postgres",
"args": ["--connection", "postgresql://..."]
}
}
}看 子代理_设置.md 获取完整的配置指南。
安全考虑
- 沙盒执行
- TypeScript:具有显式权限的Deno运行时 - Python:访问受限的子进程
- MCP服务器安全
- 文件系统:仅限于允许的路径 - 数据库:尽可能使用只读连接 - 网络:服务器可以发出网络请求
- 最佳实践
- 在敏感上下文中审查生成的代码 - 以最低权限配置MCP服务器 - 使用允许列表限制工具访问 - 避免日志中的敏感数据
- 代码执行风险
- 子代理编写并执行代码 - 在生产中执行之前审核生成的脚本 - 考虑在隔离环境中运行
文档
- 技能.md -主要技能说明(Claude Code阅读内容)
- 子代理_设置.md -完整的配置指南
- 类型脚本_GUIDE.md -TypeScript模式和Deno
- PYTHON_GUIDE.md -Python模式和异步
- 示例.md -6个完整的现实世界示例
- 参考.md -MCP客户API参考
贡献
欢迎投稿!要添加新的缓存脚本或改进文档,请执行以下操作:
- 分叉存储库
- 创建要素分支
- 将脚本添加到
scripts/typescript/或scripts/python/ - 包括综合标题:
- 目的和用例 - 适应说明 - 示例用法
- 使用实际的MCP工具测试脚本
- 提交拉取请求
发展
添加新脚本
- 在适当的目录中创建脚本文件
- 包括标题文档
- 导入MCP客户端库
- 使用真实的MCP工具进行测试
- 如果添加新类别,请更新README
测试脚本
# Test TypeScript script
MCP_CONFIG_PATH=~/.claude/subagent-mcp.json \
deno run --allow-read --allow-run --allow-env scripts/typescript/your-script.ts
# Test Python script
MCP_CONFIG_PATH=~/.claude/subagent-mcp.json \
python scripts/python/your_script.py许可证
MIT许可证-有关详细信息,请参阅许可证文件
相关项目
支持
关于以下问题:
- 这个技能:在此存储库中打开一个问题
- 克劳德代码:参见https://docs.claude.com/en/docs/claude-code
- MCP协议:参见https://modelcontextprotocol.io
- 德诺:参见https://deno.land
- 特定MCP服务器:检查各自的存储库
更新日志
v2.0.0(2025-11-11)-子代理架构
破坏性更改:
- 从代码执行器MCP依赖到子代理架构的完全重新设计
- 主克劳德代码不再需要配置MCP服务器
- 子代理通过本地MCP客户端处理代码执行
新
- 本地MCP客户端库(TypeScript+Python)
- 子代理配置指南
- 完全重写了子代理模式的SKILL.md
- 更新了新架构的所有脚本和模板
优点:
- 主上下文中令牌减少98%
- 没有外部依赖(除了Deno/Python)
- 更灵活、更高效的执行
v1.0.0(2025-11-11)-初始版本
- 12个缓存脚本(6个TypeScript+6个Python)
- 4个模板文件
- 综合文档(5个指南文件)
- 支持TypeScript(Deno)和Python执行
致谢
- 灵感来自 代码执行器MCP 作者阿伯米娅24
- 由Anthropic为克劳德代码生态系统构建
- 感谢MCP社区提供协议规范
______________________________________________________________________
准备好开始了吗? 看 子代理_设置.md 有关分步设置说明。
