加载中

Model Context Protocol(MCP)是一个通信层,它为 Claude 提供上下文和工具,而无需您编写大量繁琐的集成代码。可以将其视为一种将工具定义和执行的负担从您的服务器转移到专门的 MCP 服务器的方式。

当您第一次接触 MCP 时,您会看到展示基本架构的图表:一个 MCP 客户端(您的服务器)连接到包含工具、提示和资源的 MCP 服务器。每个 MCP 服务器都充当某个外部服务的接口。

通过一个真实示例理解 MCP

假设您正在构建一个聊天界面,用户可以在其中向 Claude 询问他们的 GitHub 数据。用户可能会问:"我所有仓库中有哪些开放的拉取请求?"要回答这个问题,Claude 需要工具来访问 GitHub 的 API。

如果没有 MCP,您需要自己创建所有的 GitHub 集成工具。这意味着要为您想要支持的每一项 GitHub 功能编写模式(schema)和函数。

工具函数问题

GitHub 拥有庞大的功能——仓库、拉取请求、问题、项目等等。要构建一个完整的 GitHub 聊天机器人,您需要编写数量惊人的工具:

每个工具都需要一个模式定义和一个函数实现。作为开发者,这代表着大量您必须编写、测试和维护的代码。

MCP 如何解决这个问题

MCP 将工具定义和执行的负担从您的服务器转移到 MCP 服务器。您不必自己编写所有这些 GitHub 工具,它们是在专用的 MCP 服务器内编写和执行的。

MCP 服务器充当 GitHub 功能的包装器,提供预构建的工具,您可以直接使用,而无需自己实现它们。

MCP 服务器提供对外部服务所实现的数据或功能的访问。它们将复杂的集成打包成可重用的组件,任何应用程序都可以连接到这些组件。

关于 MCP 的常见问题

谁编写 MCP 服务器?

任何人都可以创建 MCP 服务器实现。通常,服务提供商自己会制作他们自己的官方 MCP 实现。例如,AWS 可能会发布一个官方 MCP 服务器,其中包含针对其各种服务的工具。

MCP 与直接调用 API 有何不同?

MCP 服务器已经为您定义好了工具模式和函数。如果您直接调用 API,您需要自己负责编写这些工具定义。MCP 为您节省了这部分实现工作。

MCP 不就是工具使用吗?

这是一个常见的误解。MCP 服务器和工具使用是互补但不同的概念。MCP 关乎的是由谁来完成创建和维护工具的工作。使用 MCP 时,其他人已经为您编写好了工具函数和模式——它们被打包在 MCP 服务器内部。

关键的洞见是,MCP 服务器提供已经为您定义好的工具模式和函数,从而消除了您自己构建和维护复杂集成的需要。