智能代理的价值取决于它们能连接到哪些系统。团队通常采用三种方式将代理连接到外部系统:直接调用API、使用命令行接口(CLI)以及模型上下文协议(MCP)。本文将介绍这三种方式的适用场景,为什么生产环境中的代理更倾向于使用MCP,以及如何高效构建这些集成。

连接代理与外部系统的三种方式

我们通常看到三条路径来连接代理与外部系统:直接API调用、CLI和MCP。选择哪种方式取决于你的具体需求。关键区别在于代理和服务之间是否存在通用层,以及该层的覆盖范围。

直接API调用

代理直接调用你的API——要么在代码执行沙箱内编写发起HTTP请求的代码,要么通过通用的函数调用工具。这是大多数团队的起点,适合单个代理与单个服务之间的简单集成,或者少量不需要跨代理平台复用的集成。

但当规模扩大时,问题开始显现。没有通用层,每对代理与服务的集成都需要单独处理认证、工具描述和边缘情况,导致M×N的集成复杂度。

命令行接口(CLI)

代理在shell中运行你的命令行工具。这种方式快速且轻量,依赖已有工具链,适合本地环境和沙箱容器——只要有文件系统和shell即可。它提供了一个通用层,但较为薄弱。

CLI难以覆盖移动端、网页端或云托管平台,这些平台通常不暴露容器环境,且认证由CLI自身机制管理(通常是磁盘上的凭证文件)。因此,CLI更适合本地环境中快速且权限宽松的集成。

模型上下文协议(MCP)

MCP作为一种协议提供了通用层。代理连接到一个服务器,该服务器暴露系统能力,标准化了认证、发现和丰富的语义。一个远程服务器即可支持任何兼容客户端(如Claude、ChatGPT、Cursor、VS Code等),适用于各种部署环境。

MCP需要一定的前期投入,但带来的好处是集成具备可移植性,并支持功能丰富的代理集成所需的语义。

生产环境中的代理多运行于云端

生产环境的代理越来越多地运行在云端,以实现可扩展和持续运行。它们需要访问的系统也多为云托管:数据存储、工作跟踪和基础设施运行环境通常远程且受认证保护,MCP在此提供了通用层。

这一趋势已显现。MCP SDK的月下载量已超过3亿次,较年初的1亿次增长显著,企业和主流代理平台广泛采用。每天有数百万人通过Claude使用MCP,该协议支撑了我们近期发布的多项产品,包括Claude Cowork、Claude Managed Agents和Claude Code中的channels。

随着MCP持续支持生产级代理系统,我们分享了构建高效集成的模式:从构建高级服务器到上下文高效的客户端,以及技能如何与协议互补。

构建高效的MCP服务器

我们目录中已有200多个MCP服务器,每天被数百万用户使用。与企业和开发者紧密合作中,我们总结出一些设计模式,决定了代理使用服务器的可靠性。

构建远程服务器以实现最大覆盖

远程服务器是实现分发的关键——它是唯一能支持网页、移动和云端代理的配置,也是所有主要客户端优化的目标。构建远程服务器,让代理无论运行在哪都能访问你的系统。

按意图分组工具,而非按端点

少而精的工具描述远胜于全面的API镜像。不要一对一地将API封装成MCP服务器,而应围绕意图分组工具,让代理能通过少量调用完成任务,而非拼接多个基础操作。例如,单个create_issue_from_thread工具优于get_thread + parse_messages + create_issue + link_attachment的组合。详情可见为代理编写高效工具

面对庞大接口时设计代码编排工具

如果服务包含数百个操作(如Cloudflare、AWS、Kubernetes),意图分组工具难以覆盖。此时应暴露一个薄工具层,接受代码脚本:代理编写短脚本,服务器在沙箱中执行并返回结果。Cloudflare的MCP服务器是典范——两个工具(搜索和执行)覆盖约2500个端点,约1000个token。

提供丰富语义以提升体验

MCP Apps是首个官方协议扩展,允许工具返回交互界面,如图表、表单或仪表盘,直接在聊天界面内渲染。支持MCP Apps的服务器通常拥有更高的采用率和用户留存率。利用它在关键时刻将产品UI呈现给代理或最终用户。该扩展已在Claude.ai、Claude Cowork等多款顶级AI工具中支持。

引导交互允许服务器在工具调用中途暂停,向用户请求输入。表单模式发送简单架构,由客户端渲染原生表单,用于请求缺失参数、确认破坏性操作或消除歧义。URL模式则引导用户至浏览器完成OAuth、支付或收集敏感凭证,避免凭证通过MCP客户端传输。表单模式已广泛支持,URL模式在Claude Code支持,更多客户端正在开发中。

依赖标准化认证

标准化认证使MCP适用于云端代理。若服务器需OAuth,最新MCP规范支持CIMD(客户端ID元数据文档)进行客户端注册,提升首次认证速度,减少意外的重新认证提示。我们推荐此认证方式,MCP SDK、Claude.ai和Claude Code均支持,且业界广泛采用。

用户授权后,云端代理如何持有和复用令牌是关键。Claude Managed Agents中的Vaults功能解决了这一问题:用户OAuth令牌注册一次,创建会话时通过ID引用Vault,平台自动注入并刷新凭证,无需自行构建密钥存储或在每次调用中传递令牌。

提升MCP客户端的上下文效率

MCP规范定义了AI代理(客户端)如何连接和使用所需工具与数据源(服务器)。服务器安全地暴露多种能力,客户端负责编排和管理上下文。构建MCP客户端时,应采用渐进式披露等模式提升上下文效率。

按需加载工具定义,利用工具搜索

工具搜索避免一次性加载所有工具定义,而是在运行时搜索目录,按需加载相关工具。测试显示,工具搜索可减少85%以上的工具定义token使用,同时保持高准确率。

context usage

通过编程调用工具处理结果

编程调用工具在代码执行沙箱中处理工具结果,而非直接返回给模型。这样代理可在代码中循环、过滤和聚合调用结果,仅将最终输出放入上下文。测试显示,复杂多步工作流中token使用减少约37%。

这些模式可自然组合应用于多个服务器,实现更精简的上下文、更少的往返和更快的响应。详见高级工具使用

MCP服务器与技能的结合

技能与MCP互补。MCP让代理访问外部系统的工具和数据,技能则教会代理如何使用这些工具完成实际工作。最强大的代理同时使用两者,技能让MCP服务器的连接能力超越少数几个。结合方式主要有两种:

将技能和MCP服务器打包为插件

Claude的插件是一种便捷抽象,允许开发者将技能、MCP服务器、钩子、LSP服务器和专用子代理打包成易于使用的分发方式。此方法是统一多上下文提供者的最佳实践。

结合MCP服务器和技能,使Claude更像领域专家。通过MCP获取工具,赋予Claude端到端编排工作流的技能。以Cowork的数据插件为例,包含10个技能和8个MCP服务器,支持Snowflake、Databricks、BigQuery、Hex等应用。

技能与MCP协作示意

从MCP服务器分发技能

越来越多提供商在发布MCP服务器时同步发布技能,使代理既获得原始能力,也获得使用这些能力的操作指南。Canva、Notion、Sentry等均在Claude中采用此做法,技能与连接器一同列在网络目录中。

为实现跨客户端的技能移植,MCP社区正积极开发一项扩展,允许服务器直接传递技能。客户端自动继承相关专业知识,并与API版本同步。预计该模式将随着扩展稳定而广泛普及。

叠加的通用层

我们开篇提到连接代理与外部系统的三条路径。实际上,成熟的集成会同时支持三者:API作为基础,CLI用于本地优先环境,MCP服务云端代理。

随着生产代理向云端迁移,MCP成为关键且可叠加的通用层。如今,远程服务器支持所有兼容客户端和部署环境,协议处理认证、交互和丰富语义。随着更多客户端采纳规范和扩展,服务器能力无需额外开发即可增强。

构建集成时,若目标是让生产代理在云端访问你的系统,请构建MCP服务器并运用上述模式打造卓越体验。每个基于MCP的集成都将强化生态系统,减少独立解决边缘问题和维护定制集成的负担。

致谢

感谢Den Delimarsky、David Soria Parra、Henry Shi、Felix Rieseberg、Conor Kelly、Molly Vorwerck、Andy Schumeister、Kevin Garcia、Amie Rotherham、Matt Samuels、Angela Jiang、Katelyn Lesse、AJ Rebeiro和Jess Yan对本文的贡献。