# （译）通过 MCP 构建能够触达生产系统的智能体

> 构建高效 MCP 集成的模式：服务器设计、基于 CIMD 和 Vault 的 OAuth 鉴权、上下文高效客户端以及技能（Skills）。此外还介绍了 MCP 与直接 API 调用、CLI 在连接智能体与系统时各自适用的场景。

- 原文链接: https://laojin.blog/repost/20260423_mcp_production_agents
- 作者: Anthropic（老金转载）
- 原始出处: https://claude.com/blog/building-agents-that-reach-production-systems-with-mcp
- 发布日期: 2026-04-23
- 标签: MCP, AI Agent, OAuth, Skills, 转载

---

> 本文为转载翻译文章，原作者：**Anthropic**
>
> [原文链接](https://claude.com/blog/building-agents-that-reach-production-systems-with-mcp)

---

智能体的价值取决于它能触达哪些系统。团队在将智能体连接到外部系统时，通常会收敛到三种方案——直接 API 调用、CLI 和 MCP。本文阐述了各方案的适用场景、生产级智能体为何倾向于选择 MCP，以及高效构建此类集成的最佳实践。

## 将智能体连接到外部系统

连接外部系统，我们通常看到三条路径：直接 API 调用、CLI 和 MCP。每种方案都有其适用场景，关键在于智能体与服务之间是否存在公共层，以及该公共层能覆盖多广。

### 直接 API 调用

智能体直接调用你的 API——要么在代码执行沙箱中编写发起 HTTP 请求的代码，要么通过通用的函数调用工具来实现。这是大多数团队的起点，对于一个智能体访问一个服务、或少量不需要跨平台复用的集成来说，效果很好。

挑战在规模化时才会显现。由于智能体与服务之间没有公共层，每对智能体-服务组合都变成了定制集成，各自处理鉴权、工具描述和边界情况——这就是 M×N 集成问题。

### 命令行界面（CLI）

智能体在 Shell 中运行你的命令行工具。这种方式快速、轻量，并且依托已有工具链。在本地环境和沙箱容器中——只要有文件系统和 Shell 的地方——效果极佳。它提供了一个公共层，但非常薄。

CLI 在触达移动端、Web 端或云托管平台时有明显局限——这些平台通常不暴露容器，而鉴权也依赖 CLI 自身的机制，通常是磁盘上的凭证文件。这种方式最适合本地环境中快速、宽松的集成场景。

### 模型上下文协议（MCP）

MCP 以协议的形式提供公共层。智能体连接到一个服务器，该服务器暴露你系统的能力，并标准化了鉴权、服务发现和丰富的语义。一个远程服务器可以在任意兼容客户端（Claude、ChatGPT、Cursor、VS Code 等）、任意部署环境中使用。

它需要一定的前期投入，但换来的是可移植的集成，以及支持功能丰富的智能体集成所需的语义能力。

## 生产级智能体运行在云端

生产级智能体越来越多地运行在云端，以实现弹性伸缩和持续运行。它们需要触达的系统同样是云托管的：数据所在之处、工作追踪平台、基础设施运行环境。这些系统通常是远程的、需要鉴权的，而 MCP 正好提供了这一公共层。

从采用情况来看，这一趋势已然显现。[MCP SDK](https://modelcontextprotocol.io/docs/sdk) 的月下载量最近突破 3 亿次，相比年初的 1 亿次大幅增长，在企业和主流智能体平台中得到广泛采用。每天有数百万人通过 MCP 使用 Claude，该协议也是我们近期发布的众多功能的基础，包括 [Claude Cowork](https://claude.com/product/cowork)、[Claude Managed Agents](https://claude.com/blog/claude-managed-agents) 以及 [Claude Code 中的 Channels](https://code.claude.com/docs/en/channels)。

随着 MCP 持续支撑生产级智能体系统，我们分享以下高效构建集成的最佳实践：从高级服务器构建，到上下文高效的客户端，再到技能（Skills）对协议的补充。

## 构建高效的 MCP 服务器

我们的[目录](https://claude.ai/redirect/claudeai.v1.b4298923-7227-414a-b98a-7402fb552a67/directory/connectors)中已有超过 200 个 MCP 服务器，每天被数百万人使用。通过与众多企业和开发者的深度合作，我们总结出几种决定服务器可靠性的设计模式。

### 构建远程服务器以最大化覆盖范围

远程服务器是实现广泛分发的关键——它是唯一能在 Web、移动端和云托管智能体上运行的配置，也是每个主流客户端优先支持的形式。构建远程服务器，让智能体无论在哪里运行都能使用你的系统。

### 按意图而非端点组织工具

精简且描述清晰的工具，始终优于对 API 的逐一映射。不要将 API 一对一封装成 MCP 服务器——而是按意图组织工具，让智能体用几次调用就能完成任务，而不是拼接大量原语。一个 `create_issue_from_thread` 工具，胜过 `get_thread` + `parse_messages` + `create_issue` + `link_attachment` 的组合。更多内容参见[为智能体编写高效工具](https://www.anthropic.com/engineering/writing-tools-for-agents)。

### 当服务接口庞大时，为代码编排而设计

如果你的服务需要数百种不同操作（如 Cloudflare、AWS 或 Kubernetes），按意图分组的工具集很可能无法覆盖全部场景。此时，应暴露一个接受代码的精简工具层：智能体编写短脚本，你的服务器在沙箱中针对 API 执行，只返回结果。[Cloudflare 的 MCP 服务器](https://github.com/cloudflare/mcp)是参考范例——两个工具（搜索和执行）用约 1K token 覆盖了约 2,500 个端点。

### 在合适的地方提供丰富语义

[MCP Apps](https://modelcontextprotocol.io/extensions/apps/overview) 是首个官方协议扩展，允许工具返回交互式界面（如图表、表单或仪表盘），并直接在聊天界面内渲染。提供 MCP Apps 的服务器，其采用率和留存率明显高于只返回文本的服务器。在关键时刻将你的产品界面呈现给智能体或终端用户——该扩展已在 Claude.ai、Claude Cowork 及众多顶级 AI 工具中得到支持。

<iframe
  width="100%"
  height="400"
  src="https://www.youtube.com/embed/bluAmTHoEow"
  title="YouTube video player"
  frameBorder="0"
  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
  allowFullScreen
/>

[Elicitation（主动询问）](https://modelcontextprotocol.io/specification/2025-11-25/client/elicitation)允许服务器在工具调用中途暂停，向用户请求输入。[表单模式](https://modelcontextprotocol.io/specification/2025-11-25/client/elicitation#form-mode-elicitation-requests)发送简单 Schema，客户端渲染原生表单——用于请求缺失参数、确认破坏性操作或消除歧义。[URL 模式](https://modelcontextprotocol.io/specification/2025-11-25/client/elicitation#url-mode-elicitation-requests)将用户引导至浏览器——用于完成下游 OAuth、支付或收集任何不应经由 MCP 客户端传输的凭证。两种模式都让用户保持在操作流程中，而无需跳转到设置页面。表单模式已获广泛支持；URL 模式在 Claude Code 中已支持，更多客户端正在跟进。

### 采用标准化鉴权

标准化鉴权让 MCP 在云托管智能体中切实可行。如果你的服务器需要 OAuth，最新的 [MCP 规范](https://modelcontextprotocol.io/specification/2025-11-25)支持 [CIMD](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization#client-id-metadata-documents)（客户端 ID 元数据文档）进行客户端注册——为用户提供流畅的首次授权体验，并大幅减少意外的重新授权提示。这是我们推荐的鉴权方案，已在 MCP SDK、Claude.ai 和 Claude Code 中得到支持，并正在业界广泛采用。

用户授权后，下一个问题是云托管智能体如何在运行时持有并复用这些令牌。[Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) 中的 [Vault](https://platform.claude.com/docs/en/managed-agents/vaults#mcp-oauth-credential) 解决了这个问题：一次性注册用户的 OAuth 令牌，在创建会话时通过 Vault ID 引用，平台会自动将正确的凭证注入每个 MCP 连接并负责刷新——无需自建密钥存储，无需每次调用时传递令牌。

## 让 MCP 客户端更高效地使用上下文

MCP 标准化了 AI 智能体（[*客户端*](https://modelcontextprotocol.io/docs/develop/build-client#python)）连接并使用所需工具和数据源（[*服务器*](https://modelcontextprotocol.io/docs/develop/build-server)）的方式。服务器安全地暴露一系列能力，客户端负责编排并管理上下文。如果你在构建 MCP 客户端，可以通过渐进式披露模式让其更高效地使用上下文。

### 按需加载工具定义——工具搜索

[工具搜索（Tool Search）](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool)将所有工具的加载推迟到运行时按需拉取，而非一次性全部加载到上下文中。这让智能体可以在运行时搜索工具目录，在需要时才引入相关工具。在我们的[测试](https://www.anthropic.com/engineering/advanced-tool-use)中，工具搜索通常能将工具定义占用的 token 减少 85% 以上，同时保持较高的工具选择准确率。

> *通过工具搜索减少上下文占用。来源：高级工具使用*

### 用代码处理工具结果——程序化工具调用

[程序化工具调用（Programmatic Tool Calling）](https://www.anthropic.com/engineering/code-execution-with-mcp)在代码执行沙箱中处理工具返回结果，而非将原始结果直接返回给模型。这让智能体可以在代码中循环、过滤和聚合多次调用的结果，只将最终输出送入上下文。在我们的测试中，复杂多步骤工作流的 token 用量可减少约 [37%](https://platform.claude.com/docs/en/agents-and-tools/tool-use/programmatic-tool-calling)。

这两种模式在多个服务器间天然组合：更精简的上下文、更少的往返次数、更快的响应速度。完整解析请参见[*高级工具使用*](https://www.anthropic.com/engineering/advanced-tool-use)。

## 将 MCP 服务器与技能（Skills）结合

[Skills 与 MCP 互为补充](https://claude.com/blog/skills-explained)。MCP 赋予智能体访问外部系统工具和数据的能力，而 Skills 则教会智能体*如何*使用这些工具来完成实际工作的程序性知识。最强大的智能体两者兼用，而 Skills 让 MCP 服务器能够扩展到超出少数几个连接的规模。结合两者有两种通用模式：

### 将 Skills 和 MCP 服务器打包为插件（Plugin）

Claude 的[插件（Plugin）](https://code.claude.com/docs/en/plugins-reference#plugin-components-reference)是一个实用的抽象层，允许开发者将 Skills、MCP 服务器、Hooks、LSP 服务器和专用子智能体打包成一个易于分发的单元。这是以最小摩擦整合多个上下文提供者的最佳方式。

将 MCP 服务器与 Skills 结合，能让 Claude 更像一个领域专家：通过 MCP 获取工具，通过 Skills 掌握端到端编排工作流的能力。我们为 Cowork 开发的[数据插件](https://claude.ai/redirect/claudeai.v1.b4298923-7227-414a-b98a-7402fb552a67/directory/plugins/data%40knowledge-work-plugins)就是一个例子，它包含 10 个 Skills 和 8 个 MCP 服务器，涵盖 Snowflake、Databricks、BigQuery、Hex 等应用。

> *将 Skills 与 MCP 结合。来源：通过 Skills 和 MCP 服务器扩展 Claude 的能力*

### 从 MCP 服务器分发 Skills

越来越多的服务商在发布 MCP 服务器的同时也附带一个 Skill，让智能体既获得原始能力，也获得使用这些能力的最佳实践指南。[Canva](https://claude.com/connectors/atlassian)、[Notion](https://claude.com/connectors/notion)、[Sentry](https://claude.com/connectors/sentry) 等已在 Claude 中实践这一模式，在我们的[网页目录](https://claude.com/connectors)中，Skill 与连接器并列展示。

为了让这种配对模式在所有客户端间可移植，MCP 社区正在积极推进一个[扩展](https://github.com/modelcontextprotocol/experimental-ext-skills)，支持直接从服务器分发 Skills。这样客户端就能自动继承相关专业知识，并与其依赖的 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 对本文的贡献。
