# Code Execution with MCP: Building More Efficient AI Agents

> 原文链接：https://www.anthropic.com/engineering/code-execution-with-mcp
> 作者/来源：Anthropic Engineering
> 阅读日期：2026-04-02

## 一句话总结
通过将 MCP 工具以代码文件系统的形式呈现给 agent，并让 agent 在执行环境中编写代码来组合工具调用，可以将 token 使用量从 150,000 降低到 2,000（减少 98.7%），同时提升数据隐私和安全性。

## 核心论点

文章揭示了传统 MCP 实现的两大效率瓶颈。第一个是 **Tool Definition Overload**：将所有工具定义直接加载到 context 中，在 agent 开始处理请求之前就消耗了大量 token——当有数千个工具时，前期就需要处理数十万 token。第二个是 **Intermediate Result Duplication**：每个工具的输出都必须经过模型的 context window，当 agent 获取大型文档并在后续调用中使用时，数据会多次流经 context，极大增加 token 消耗。文章举了一个例子：一个 2 小时的会议记录可能仅因在工具调用之间复制就额外消耗 50,000 token。

提出的解决方案是 **Code APIs**：将 MCP 工具以文件系统中的 TypeScript 代码文件形式组织，按 server 分目录（如 `servers/google-drive/`, `servers/salesforce/`）。Agent 通过浏览文件系统来发现工具，按需读取所需的工具定义（Progressive Disclosure）。在执行环境中，agent 可以编写代码来组合多个工具调用，使用标准编程模式（循环、条件判断）而不需要逐次调用模型。大型数据集可以在执行环境中先做过滤，只将必要的结果返回给模型。

这种方案还带来了重要的安全和隐私优势：中间结果默认保留在执行环境中，MCP client 可以自动对 PII（个人身份信息）进行 tokenization 处理，组织可以定义数据在系统间的流动规则。

## 关键概念
- **Tool Definition Overload**：将所有 MCP 工具定义预加载到 context 中导致的 token 浪费问题
- **Code APIs**：将 MCP 工具暴露为文件系统中的代码文件，让 agent 按需发现和使用，而非全部预加载
- **Progressive Disclosure（渐进式披露）**：模型擅长浏览文件系统，将工具定义按文件系统组织可以让模型按需读取
- **Intermediate Result 隔离**：中间计算结果保留在执行环境中，不回传到模型 context，避免重复 token 消耗
- **Skills（技能复用）**：agent 可以将常用的工具组合保存为可复用的函数，随时间建立越来越丰富的高级能力库
- **Data Tokenization**：自动对 PII 信息进行脱敏处理，在传给模型前替换敏感数据，在传给工具时还原

## 实践建议
1. 将 MCP 工具组织为按 server 分类的代码文件目录结构，而非在 context 中一次性加载所有工具定义
2. 为工具编写带类型的 TypeScript 接口，让 agent 能清晰理解输入/输出结构
3. 在代码执行环境中处理大型数据集的过滤和转换，只将精简结果返回模型
4. 利用文件系统作为 agent 的中间状态管理工具——将临时结果写入文件，支持任务恢复
5. 代码执行环境必须配备完善的 sandboxing、资源限制和监控，不要低估基础设施复杂性
6. 考虑实现 PII tokenization 机制，在 agent 工作流中自动保护用户隐私

## 独到观点
这篇文章提出了一个范式级的创新：从"agent 调用工具"到"agent 编写代码来组合工具"。98.7% 的 token 节省不仅是量变，而是质变——它意味着 agent 可以在相同成本下完成数量级更多的工作。此外，将工具以文件系统形式呈现的 progressive disclosure 思想非常优雅，利用了 LLM 天然擅长浏览文件系统的能力。Skills 系统则展示了 agent 的一种"学习"能力——通过保存高级函数来积累经验。

## 与其他文章的关联
- 与 **HumanLayer Backpressure**（#13）和 **OpenHands Context Condensation**（#14）同属 context 效率优化体系：backpressure 控制输入、condensation 压缩历史、Code APIs 减少工具定义和中间结果的 token 消耗
- 与 **Claude Code Sandboxing**（#16）直接相关：代码执行环境必须有完善的沙箱机制，文章明确提到 sandboxing 是必要的基础设施
- 与 **Writing Tools for Agents**（#18）互补：工具设计原则直接影响 Code APIs 方案中的工具文件结构
- 与 **Writing a Good CLAUDE.md**（#15）理念一致：都强调 progressive disclosure 策略，避免一次性加载过多信息
- 与 **Claude Code Best Practices**（#23）相关：MCP 集成是 Claude Code 高级使用的重要部分
