Sat Jun 27 2026 20:00:00 GMT-0400 (Eastern Daylight Time)

模型上下文协议(MCP):连接AI与您工具的桥梁

MCP是Anthropic推出的开放标准,专门用于连接AI助手与外部数据源和工具。本文将深入介绍客户端-服务器模型、传输协议、核心能力以及如何高效部署运行MCP服务器。

模型上下文协议(MCP):连接AI与您工具的桥梁

Last updated: June 28, 2026

MCP — 模型上下文协议(Model Context Protocol)— 是 Anthropic 于 2024 年底发布的一个开放标准,用于将 AI 助手和代理连接到外部数据源和工具。与其为每个模型和每个工具编写定制的集成,不如暴露一个 MCP 服务器,任何兼容 MCP 的客户端都可以使用它。上周我将文件系统服务器和 GitHub 服务器连接到了 Claude Code 上,代理实际能做到的事情上的差异是立竿见影的。本文介绍了 MCP 是什么、客户端-服务器模型如何工作、核心能力类型以及如何在自己的设置中运行服务器。

快速答案:什么是 MCP?

MCP 是一个基于 JSON-RPC 2.0 的协议,它标准化了 AI 主机应用程序(如 Claude Desktop 或 Claude Code 的 MCP 客户端)与暴露数据和操作的外部 服务器 之间的连接。单个 MCP 服务器可以向客户端宣传三种能力类型:

  • Tools — 模型可以调用的函数(查询数据库、发送消息、搜索仓库)。
  • Resources — 模型可以读取的结构化数据(文件内容、API 响应、记录)。
  • Prompts — 用户可以调用的可重用参数化提示模板。

目标是实现“AI 集成的 USB-C”:一个服务器,多个客户端,无需针对模型的粘合剂。该规范和 SDK 是开源的,并在 modelcontextprotocol 的 GitHub 上维护,官方文档可以在 modelcontextprotocol.io 查看。

为什么存在 MCP?

在 MCP 之前,每个工具集成都是一次性的。如果你想让助手既能读取你的 GitHub issue,又能查询 Postgres,你必须编写两个自定义连接器,当更换模型或主机时,再重写它们。Anthropic 的动机是消除这种重复性,通过一个共享协议——官方文档 将其描述为赋予模型对本地文件、数据库和 API 的“标准化访问”能力。

对于代理工作流程来说,这一点至关重要。只能聊天的代理只是一个聊天机器人;而能够读取你的仓库、运行查询并在循环中调用工具的代理才是真正的工人。MCP 就是使第二种类型可移植性的管道。如果想了解它在代理设计中的更广阔图景,请参阅 我们关于 AI 代理自动化的文章

客户端-服务器模型如何工作?

MCP 遵循主机-客户端-服务器的拓扑结构:

  • Host — 用户运行的应用程序(Claude Desktop、Claude Code、IDE 扩展)。
  • Client — 存在于 Host 内部,与一个服务器保持 1:1 的会话。
  • Server — 一个通过传输层暴露能力的进程。

一个主机可以运行多个客户端,每个客户端都连接到一个服务器。该协议是 JSON-RPC 2.0,每当我添加一个新的服务器时,我都会测试三个生命周期阶段:

  1. Initialize(初始化) — 客户端发送协议版本、能力和客户端信息;服务器则响应其自身的信息。
  2. Capability negotiation(能力协商) — 两侧声明它们支持什么(工具、资源、提示、采样、根目录)。
  3. Operation(操作) — 客户端请求工具列表,调用工具,读取资源,然后服务器将结果流式传输回来。

传输选项

Transport 运行位置 使用场景
stdio 本地子进程,通过 stdin/stdout 通信 本地开发工具、文件系统、git — 我机器上的任何东西
Streamable HTTP 通过 HTTPS 的远程服务器,可选 SSE 流式传输 共享团队服务器、云托管集成
SSE (legacy) 远程,服务器发送事件 正在淘汰的旧服务器;新构建请避免使用

stdio 是本地设置的默认选项,除非你传递了 HTTP URL,否则 claude mcp add 就会使用它。如需更深入了解 claude mcp add 和 stdio 与 HTTP 的选择,请参阅 我们的 Claude Code MCP 集成指南

一个开发者在笔记本电脑上输入代码,同时在终端中配置本地 MCP 服务器

实践中这三种能力类型是什么?

MCP 的大部分价值都体现在这三种能力类型上。以下是模型使用它们时,每种类型实际行为的展示。

Tools (模型调用)

工具是主力军。模型根据对话决定是否调用它们。我运行了一个暴露了 search_logs 工具的服务器,当我问“为什么部署在凌晨 2 点失败了?”时,模型立即无提示地调用了它。工具定义包含用于参数的 JSON Schema,因此模型会获得类型化、验证过的输入。

Resources (应用控制)

资源通过 URI 进行寻址,通常是用户选择的,而不是模型选择的——用户附加一个资源(如文件或记录),主机将其注入到上下文中。这对于范围控制很重要:模型只能看到你明确提供给它的内容。

Prompts (用户调用)

提示模板带有参数,会显示在主机的 UI 中作为斜杠命令或菜单项。这是使用最少的能力——我用它们来编码“根据我们的风格指南审查此 PR”,这样我就不必每次都粘贴相同的指令了。

如何设置 MCP 服务器?

以 Claude Code 为主机进行具体设置。同样的服务器配置可以在 Claude Desktop 的 JSON 文件中使用。

  1. 安装 Node.js 20+(或使用 uv 的 Python 3.10+)。
  2. 添加一个参考服务器,例如文件系统服务器:npx -y @modelcontextprotocol/server-filesystem /Users/you/projects
  3. 在 Claude Code 中注册它:claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /Users/you/projects
  4. 验证连接:claude mcp list 然后 claude mcp get filesystem
  5. 重启主机,并在会话中查找服务器的工具。

这就是整个流程。GitHub 组织中的参考服务器涵盖了文件系统、Git、GitHub、Postgres、SQLite、Slack、Google Drive、Puppeteer 等。

一个最小化的自定义服务器(Python)

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("status")

@mcp.tool()
def healthcheck(service: str) -> str:
    """Return the current status of a service."""
    return f"{service}: ok"

if __name__ == "__main__":
    mcp.run(transport="stdio")

我花了大约十分钟就用它测试了一个暂存端点,包括将其连接到 Claude Code。关于如何将内部服务作为代理可调用 API 暴露的更广泛模式,我们的 AI API 开发指南 对认证和速率限制进行了更深入的探讨。

2026 年生态系统是什么样的?

该生态系统已经围绕官方注册表和少数维护良好的参考服务器整合。我保留了一份在生产环境中真正信任的简短列表:

  • filesystem — 本地文件读写,带有根目录限制。
  • github — issue、PR、搜索、文件操作。
  • postgres / sqlite — 默认只读,模式自省。
  • puppeteer / playwright — 用于代理的浏览器自动化。
  • slack — 通道读取和消息发送。
Capability 最常用的服务器 默认安全姿态
File access filesystem 限制在明确指定的根目录
Code host github 重读为主;写入需要显式配置
Database postgres 除非选择启用,否则只读
Browser playwright 沙盒化配置文件
Messaging slack 限于通道范围的 token

关于编排多个后台子代理(subagents)的服务器——一个子代理拥有数据库,另一个拥有浏览器——我们关于 Claude Code 子代理的文章 展示了团队模式。

需要注意什么?

这是大多数人忽略的部分。MCP 服务器使用你的凭证和文件系统访问权限运行,因此范围至关重要。

  • 将每个服务器视为一个依赖项。 固定版本,在运行 npx 到陌生人的仓库之前审计源代码。恶意的工具可能会窃取模型能看到的一切信息。
  • 限制根目录。 文件系统服务器的安全性仅限于你指向的目录——绝不能传递 /
  • 优先使用只读数据库配置,直到你有明确需要启用写入的原因。
  • 注意提示注入(prompt injection)。 如果一个工具返回的内容被模型用于后续操作,不受信任的输入可能会变成指令。假设任何资源都是恶意的。
  • 限定 OAuth token 的范围。 Slack 和 GitHub token 应该使用服务器所需的最小权限范围,而不是你的个人 token。

我总是在一个沙盒账户中启动每个新服务器,并在信任它在真实会话中使用之前观察最初的几次工具调用。

象征 MCP 集成分层架构的抽象电路板组合

关键要点

MCP 是一个解决实际问题的小型协议:它允许一个服务器将工具、资源和提示暴露给任何兼容的 AI 主机,消除了 N 个模型乘以 M 个集成带来的成本。其机制很简单——通过 stdio 或 HTTP 初始化、协商、操作——但安全姿态才是决定它是否属于你工作流的部分。运行你可以审计的服务器,严格限定它们的凭证范围,并假设不受信任的输入是恶意的。做到这一点,MCP 就是将一个助手转化为能够真正触及你系统的代理的最干净的方式。

一张手在白板上放置黄色“如何操作”便利贴进行规划的特写照片。

图片鸣谢

阅读指南的同时,欢迎使用这些免费工具。

Real-ESRGAN AI 上采样:工作原理及使用时机 的封面图片

Wed Mar 11 2026 20:00:00 GMT-0400 (Eastern Daylight Time)

Real-ESRGAN AI 上采样:工作原理及使用时机

本文将详细介绍 Real-ESRGAN 是什么,其基于 GAN 的超分辨率工作原理。我们将探讨它擅长的领域(如照片和艺术品的 4x upscaling)以及局限性所在,并提供操作命令和真实的性能限制分析。