<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MCP on Chang</title><link>https://jinnchang.github.io/series/mcp/</link><description>Recent content in MCP on Chang</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 04 Nov 2025 00:00:00 +0800</lastBuildDate><atom:link href="https://jinnchang.github.io/series/mcp/index.xml" rel="self" type="application/rss+xml"/><item><title>Code execution with MCP: Building more efficient agents</title><link>https://jinnchang.github.io/reads/code-execution-with-mcp/</link><pubDate>Tue, 04 Nov 2025 00:00:00 +0800</pubDate><guid>https://jinnchang.github.io/reads/code-execution-with-mcp/</guid><description>&lt;div class="notice note"&gt;
 &lt;div class="notice-title"&gt;
 &lt;i class="fa-solid fa-sticky-note" aria-hidden="true"&gt;&lt;/i&gt;Note
 &lt;/div&gt;
 &lt;div class="notice-content"&gt;直接工具调用会为每个定义和结果消耗上下文。Agent 通过编写代码来调用工具，反而能更好地扩展。下文说明它与 MCP 的协同方式。&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href="https://modelcontextprotocol.io/" class="external-link" target="_blank" rel="noopener"&gt;模型上下文协议（MCP）&lt;/a&gt; 是把 AI Agent 连接到外部系统的开放标准。过去要把 Agent 接到工具和数据上，每对组合都得各写一套自定义集成，既碎片化又重复，很难扩展真正互联的系统。MCP 提供一套通用协议，开发者只需在 Agent 里实现一次，就能解锁一整套集成生态。&lt;/p&gt;
&lt;p&gt;自 2024 年 11 月发布以来，MCP 的采用速度很快：社区已经构建了数千个 &lt;a href="https://github.com/modelcontextprotocol/servers" class="external-link" target="_blank" rel="noopener"&gt;MCP 服务器&lt;/a&gt;，主流编程语言都有对应的 &lt;a href="https://modelcontextprotocol.io/docs/sdk" class="external-link" target="_blank" rel="noopener"&gt;SDK&lt;/a&gt;，整个行业也把 MCP 当成了连接 Agent 与工具、数据的事实标准。&lt;/p&gt;
&lt;p&gt;如今开发者构建的 Agent，常常要连上几十个 MCP 服务器、访问成百上千个工具。但随着连接的工具越来越多，一次性加载所有工具定义、让中间结果在上下文窗口里来回传递，会让 Agent 变慢、成本上升。&lt;/p&gt;
&lt;p&gt;本文将探讨代码执行如何让 Agent 更高效地与 MCP 服务器交互，用更少的 Token 处理更多的工具。&lt;/p&gt;
&lt;h2 id="工具消耗过多-token降低-agent-效率"&gt;
 工具消耗过多 Token，降低 Agent 效率
 &lt;a class="heading-link" href="#%e5%b7%a5%e5%85%b7%e6%b6%88%e8%80%97%e8%bf%87%e5%a4%9a-token%e9%99%8d%e4%bd%8e-agent-%e6%95%88%e7%8e%87"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;随着 MCP 的使用规模扩大，有两种常见模式会增加 Agent 的成本和延迟：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;工具定义挤占上下文窗口&lt;/li&gt;
&lt;li&gt;中间工具结果消耗额外的 Token&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="1-工具定义挤占上下文窗口"&gt;
 1. 工具定义挤占上下文窗口
 &lt;a class="heading-link" href="#1-%e5%b7%a5%e5%85%b7%e5%ae%9a%e4%b9%89%e6%8c%a4%e5%8d%a0%e4%b8%8a%e4%b8%8b%e6%96%87%e7%aa%97%e5%8f%a3"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;大多数 MCP 客户端会一次性把所有工具定义直接加载进上下文，再以直接调用工具的语法暴露给模型。这些工具定义大概是这样的：&lt;/p&gt;</description></item></channel></rss>