
大型语言模型 (LLM),例如 Anthropic 的 Claude,已经解锁了海量上下文窗口(Claude 4 中高达 20 万个 token),使其能够一次性处理整个文档或代码库。然而,有效地为这些模型提供相关上下文仍然是一项挑战。传统上,开发人员依赖于复杂的提示工程或检索管道,将外部信息输入到 LLM 的提示中。Anthropic 的模型上下文协议 (MCP) 是一项新的开放标准,它简化并标准化了这一流程。
您可以将 MCP 视为“AI 应用程序的 USB-C”——一个通用连接器,让您的 LLM 能够无缝访问外部数据、工具和系统。在本文中,我们将解释什么是 MCP,它对长上下文 LLM 的重要性,它与传统提示工程的比较,并演示如何使用 Python 构建一个简单的 MCP 兼容上下文服务器。我们还将讨论实际用例(例如检索增强生成 (RAG) 和代理工具),并提供代码示例、图表和参考资料,帮助您从 MCP 和 Claude 入手。
什么是MCP?它为何重要?
模型上下文协议 (MCP) 是 Anthropic 于 2024 年底发布的一项开放协议。它旨在标准化 AI 应用程序向 LLM 提供上下文的方式。本质上,MCP 定义了一种通用的客户端-服务器架构,用于将 AI 助手连接到数据所在的位置。这既适用于本地文件、数据库、云服务,也适用于业务应用程序。在 MCP 之前,将 LLM 与每个新数据源或 API 集成意味着为每个特定案例编写自定义连接器或提示逻辑。这导致了集成的组合爆炸式增长:M 个 AI 应用程序乘以 N 个数据源可能需要 M×N 个定制实现。MCP 通过提供通用接口来解决这个问题。有了它,任何兼容的 AI 客户端都可以与任何兼容的数据/服务服务器通信。这将问题简化为 M + N 个积分点。

MCP方法与传统集成
为什么 MCP 对长上下文 LLM 尤为重要?像 Claude 4 这样的模型可以提取数百页文本。然而,决定将哪些信息放入这个巨大的上下文窗口并非易事。简单地将所有潜在相关数据塞进提示框效率低下,有时甚至是不可能的。模型上下文协议 (MCP) 提供了一种更智能的方法。LLM 或其主机应用程序可以根据需要从外部源动态检索即时上下文。这无需预先加载所有内容。这意味着您可以充分利用 20 万个令牌窗口的全部容量,并动态获取相关数据。例如,只提取与用户查询相关的知识库部分。MCP 提供了一种结构化的实时方法,利用外部知识来维护和扩充模型的上下文。
简而言之,随着 AI 助手上下文长度的增长,MCP 可以确保它们不会“被信息孤岛所困”。相反,它们可以访问最新的事实、文件和工具,从而更好地响应。
MCP与传统提示工程
在 MCP 出现之前,开发人员通常使用 RA (Real Aggregation) 流水线或手动提示工程将外部信息注入 LLM 的提示中。例如,RAG 系统可能会在文档数据库中进行矢量搜索以查找相关文本。然后,它可能将这些片段作为上下文插入到提示中。或者,人们可能会设计一个包含说明、示例和附加数据的单片提示。这些方法虽然有效,但它们是临时的,缺乏标准化。
每个应用程序最终都会重新设计如何为模型获取和格式化上下文,而集成新的数据源意味着编写新的粘合代码或提示。
MCP原语
模型上下文协议通过引入结构化上下文管理从根本上改变了这一点。MCP 不再将所有外部信息视为更多的提示文本,而是将交互分解为三个标准化组件(或“原语”):
- 资源 – 可以将其视为提供给模型的只读上下文单元(数据源)。资源可能是文件内容、数据库记录或模型可以读取的 API 响应。资源由应用程序控制。托管方或开发人员决定公开哪些数据以及如何公开。重要的是,读取资源没有副作用——它类似于仅获取数据的 GET 请求。资源提供可在需要时注入模型上下文的内容(例如,在问答场景中检索到的文档)。
- 工具 – 这些是 LLM 可以调用以执行操作(例如运行计算或调用外部 API)的操作或函数。工具由模型控制。这意味着 AI 决定是否以及何时使用它们(类似于其他框架中的函数调用)。例如,工具可以是“send_email(recipient, body)”或“query_database(SQL)”。使用工具可能会产生副作用(发送数据、修改状态),并且工具调用的结果可以反馈到对话中。
- 提示 – 这些是可重复使用的提示模板或指令,您可以根据需要调用。它们由用户控制或由开发人员预定义。提示可能包含常见任务或指导性工作流程的模板(例如,代码审查模板或问答格式)。本质上,它们提供了一种一致地注入特定指令或上下文措辞的方法,而无需将其硬编码到每个提示中。
不同于传统的提示工程
这种结构化方法与传统的提示工程形成对比。在传统提示工程中,所有上下文(指令、数据、工具提示)可能都集中在一个大的提示中。而使用 MCP,上下文是模块化的。AI 助手可以发现可用的资源和工具,然后灵活地组合它们。因此,MCP 将非结构化的提示转化为 LLM 与您的数据/工具之间的双向对话。模型不会被盲目地交给一段文本。相反,它可以通过标准协议主动请求数据或操作。
此外,MCP 使集成具有一致性和可扩展性。正如 USB 的类比所示,兼容 MCP 的 Google Drive 或 Slack 服务器可以插入任何支持 MCP 的客户端(例如 Claude、IDE 插件等)。开发者无需为每个应用工具组合编写新的提示逻辑。这种标准化也促进了社区共享:您可以利用预先构建的 MCP 连接器,而不必重新开发它们。Anthropic 已经开源了许多适用于常见系统的 MCP 服务器,包括文件系统、GitHub、Slack、数据库等,您可以重复使用或从中学习。总而言之,MCP 提供了一种统一且模块化的方式,为 LLM 提供上下文和功能。
MCP架构和数据流
从高层次来看,模型上下文协议 (MCP) 在 AI 应用中遵循客户端-服务器架构。让我们来分解一下关键组件及其交互方式:

MCP 的 USB Type-C 类比图
主机
主机是与最终用户交互的主要 AI 应用程序或接口。它可以是聊天机器人 UI(例如,Claude 的聊天应用程序或自定义 Web 应用程序),也可以是 IDE 扩展,或任何“AI 助手”环境。主机包含或调用 LLM 本身。例如,Claude Desktop 就是一个主机——它是一个 Claude(LLM)与用户对话的应用程序。
MCP客户端
MCP 客户端是运行在主机应用程序中的组件(通常是一个库)。它管理与一个或多个 MCP 服务器的连接。您可以将客户端视为适配器或中间人。它使用 MCP 协议,处理消息传递、请求和响应。每个 MCP 客户端通常处理一个服务器连接。因此,如果主机连接到多个数据源,它将实例化多个客户端。实际上,客户端负责发现服务器功能。它将 LLM 的请求发送到服务器并转发响应。
MCP服务器
服务器是一个外部(或本地)程序,它封装了 MCP 标准背后的特定数据源或功能。服务器根据 MCP 规范“公开”一组工具、资源和提示。例如,服务器可能会公开您的文件系统(允许 LLM 将文件作为资源读取),或者 CRM 数据库,或者第三方 API,例如天气或 Slack。服务器处理传入的请求(例如“读取此资源”或“执行此工具”)。然后,它以客户端和 LLM 可以理解的格式返回结果。
这些组件通过定义的传输层进行通信。MCP 支持多种传输方式。对于本地服务器,可以使用简单的 STDIO 管道。同一台计算机上的客户端和服务器通过标准输入/输出流进行通信。对于远程服务器,MCP 使用带有服务器发送事件 (SSE) 的 HTTP 来维持持久连接。 MCP 库抽象了传输细节,但了解本地集成无需任何网络即可实现这一点很有用。并且远程集成可以通过 Web 协议进行。

MCP 客户端服务器架构
MCP中的数据流
一切设置完成后,用户与 AI 助手交互时,交互将遵循以下顺序:

MCP 中的数据流
- 初始化与握手——当主机应用程序启动或添加新服务器时,MCP 客户端会与服务器建立连接。它们会进行握手以验证协议版本并交换基本信息。这确保双方使用相同的 MCP 版本并理解彼此的消息。
- 功能发现——连接后,客户端会询问服务器它可以做什么。服务器会返回可用工具、资源和提示模板(包括描述、参数架构等)的列表。例如,服务器可能会报告:“我有一个用于读取文件的资源‘file://{path}’,一个用于获取天气的工具‘get_weather(lat, lan)’,以及一个提示模板‘summarize(text)’。”主机可以使用这些信息向用户呈现选项或告知 LLM 可用的功能。
- 上下文配置 —— 宿主可以在对话开始时主动获取一些资源或选择提示模板来扩充模型的上下文。例如,IDE 可以使用 MCP 服务器将用户的当前文件加载为资源,并自动将其内容包含在 Claude 的上下文中。或者,宿主可以在 LLM 开始生成之前应用提示模板(如特定的系统指令)。在此阶段,宿主基本上将来自 MCP 资源/提示的初始上下文注入到 LLM 的输入中。
- LLM 调用和工具使用 —— 用户的查询以及任何初始上下文都会提供给 LLM。当 LLM 处理查询时,它可以决定根据需要调用其中一个可用的 MCP 工具。例如,如果用户询问“repo X 中有哪些未解决的问题?”,模型可能会确定它需要调用 GitHub MCP 服务器提供的 get_github_issues(repo) 工具。当模型“决定”使用某个工具时,主机的 MCP 客户端会收到该函数调用请求(这类似于其他 LLM API 中的函数调用)。然后,客户端将调用发送到负责的 MCP 服务器。
- 外部操作执行 —— MCP 服务器接收工具调用,通过与外部系统交互(例如,调用 GitHub 的 API)进行操作,然后返回结果。在我们的示例中,它可能会返回一个问题标题列表。
- 响应集成 —— MCP 客户端接收结果并将其传回主机/LLM。通常,结果会被整合到 LLM 的上下文中,就像模型“看到”它一样。继续这个例子,问题标题列表可以结束对话(通常作为包含工具输出的系统或助手消息)。LLM 现在拥有它获取的数据,并可以使用它来制定最终答案。
- 最终答案生成 ——利用上下文中的相关外部数据,LLM 生成对用户的答案。从用户的角度来看,助手使用实时知识或操作进行回答,但得益于 MCP,整个过程标准化且安全。
至关重要的是,模型上下文协议 (MCP) 在整个流程中强制执行安全性和用户控制。未经明确许可,任何工具或资源都无法使用。例如,Claude 在 Claude Desktop 中实现的 MCP 要求用户批准每个服务器,并可以在某些敏感操作之前提示。大多数 MCP 服务器默认在本地或用户的基础架构中运行,除非您明确允许远程连接,否则数据将保持私密。所有这些都确保了 LLM 通过 MCP 访问您的文件系统或数据库等资源不会变成混战;您可以控制其可见内容或操作。
使用Python构建简单的MCP上下文服务器(分步指南)
模型上下文协议作为开放标准的一大优势在于,您可以使用多种语言实现服务器。Anthropic 和社区提供了 Python、TypeScript、Java、Kotlin、C# 等语言的 SDK。这里,我们将重点介绍 Python,并构建一个简单的 MCP 兼容服务器,以说明如何定义和使用上下文单元(资源)和工具。我们假设您已安装 Python 3.9 及以上版本。
注意:本教程使用内存数据结构来模拟真实世界的行为。示例无需外部数据集。
步骤 1:设置和安装
首先,您需要一个 MCP 库。您可以通过 pip 安装 Anthropic 的官方 Python SDK(mcp 库)。此外,还有一个名为 FastMCP 的高级辅助库,它可以帮助您更轻松地构建服务器(它是一个流行的社区 SDK)。为了简洁起见,本指南使用 fastmcp。您可以使用以下命令安装它:
pip install fastmcp
(或者,您也可以使用官方 SDK,概念相同。)
步骤 2:定义MCP服务器和上下文单元
MCP 服务器本质上是一个程序,它声明一些工具/资源并等待客户端请求。让我们创建一个提供两种功能的简单服务器来演示 MCP 的上下文构建:
- 一个资源,通过 ID 提供“文章”的内容——模拟知识库查找。这将充当模型可以检索的上下文单元(一些文本数据)。
- 一个工具,用于将两个数字相加——这是一个模型可以调用的函数的简单示例(仅用于演示工具用法)。
from fastmcp import FastMCP
# Initialize the MCP server with a name
mcp = FastMCP("DemoServer")
# Example data source for our resource
ARTICLES = {
"1": "Anthropic's Claude is an AI assistant with a 100K token context window and advanced reasoning abilities.",
"2": "MCP (Model Context Protocol) is a standard to connect AI models with external tools and data in a unified way.",
}
# Define a Resource (context unit) that provides an article's text by ID @mcp.resource("article://{article_id}")
def get_article(article_id: str) -> str:
"""Retrieve the content of an article by ID."""
return ARTICLES.get(article_id, "Article not found.")
# Define a Tool (function) that the model can call @mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers and return the result."""
return a + b
# (Optional) Define a Prompt template for demonstration @mcp.prompt()
def how_to_use() -> str:
"""A prompt template that instructs the assistant on using this server."""
return "You have access to a DemoServer with an 'article' resource and an 'add' tool."
if name=="main":
# Run the server using standard I/O transport (suitable for local client connection)
mcp.run(transport="stdio")
让我们分解一下这里发生的事情:
- 我们创建一个名为“DemoServer”的 FastMCP 服务器实例。客户端使用该名称来引用此服务器。
- 我们定义一个字典 ARTICLES 来模拟一个小型知识库。在实际场景中,数据库查询或 API 调用可以替代它,但目前它只是内存数据。
- @mcp.resource(“article://{article_id}”) 装饰器将 get_article 函数暴露为资源。字符串“article://{article_id}”是一个 URI 模板,指示如何访问此资源。MCP 客户端将看到此服务器提供了一个带有 schema 为 article://… 的资源,并且可以请求例如 article:// 1 这样的资源。调用 get_article 时,它会返回一个字符串(文章文本)。该文本是将传递给 LLM 的上下文单元。注意,它没有任何副作用——这是一个只读的数据检索。
- @mcp_tool 装饰器暴露并添加一个工具。它接受两个整数并返回它们的和。这是一个简单的例子,仅用于说明一个工具;真正的工具可能类似于调用外部 API 或修改某些内容。重要的是,模型的选择会调用这些工具,而这些工具可能会产生副作用。
- 为了完整性,我们还展示了 @mcp_prompt()。它定义了一个 Prompt 模板,可以提供预设指令。在本例中,how_to_use 返回一个固定的指令字符串。Prompt 单元可以帮助指导模型(例如,提供使用示例或格式),但它们是可选的。用户可以在模型运行之前选择它们。
- 最后,mcprun(transport=”stdio”) 启动服务器并等待客户端连接,通过标准 I/O 进行通信。如果我们想将其作为独立的 HTTP 服务器运行,可以使用其他传输方式(例如带有 SSE 的 HTTP),但 stdio 非常适合本地上下文服务器,例如,Claude Desktop 可以在您的计算机上启动它。
步骤 3:运行服务器并连接客户端
为了测试我们的模型上下文协议 (MCP) 服务器,我们需要一个 MCP 客户端(例如 Claude)。一个简单的方法是使用 Claude 的桌面应用程序,它开箱即用地支持本地 MCP 服务器。在 Claude 的设置中,您可以添加一个指向 demo_server.py 的配置。它在 Claude 的配置文件中看起来如下(伪代码用于说明):
JSON
{
"mcpServers":
{ "DemoServer":
{
"command": "python",
"args": ["/path/to/demo_server.py"]
}
}
}
这会指示 Claude Desktop 在启动时启动我们的 Python 服务器(使用给定的命令和脚本路径)。运行后,Claude 将执行握手和发现。我们的服务器会通告它拥有一个 article://{id} 资源、一个添加工具和一个提示模板。
如果您使用的是 Anthropic API 而不是 Claude 的 UI,Anthropic 在其 API 中提供了一个 MCP 连接器。您可以在此处指定要在对话期间使用的 MCP 服务器。本质上,您需要配置 API 请求以包含服务器(或其功能)。这有助于 Claude 了解它可以调用这些工具或获取这些资源。
步骤 4:使用上下文单元和工具
现在,服务器连接好了,它如何在对话中使用?让我们来看两个场景:
使用资源(检索)
假设用户问 Claude:“Anthropic 的 MCP 简单来说是什么?”由于我们拥有可能包含答案的文章资源,Claude(或主机应用程序逻辑)可以获取该上下文。一种方法是,主机可以主动调用(因为我们数据中的第 2 篇文章与 MCP 有关),并将其内容作为上下文提供给 Claude。或者,如果 Claude 已设置为推理可用资源,则它可能会在分析问题后内部请求 article://2。无论哪种情况,DemoServer 都会收到对 article://2 的读取请求,并返回:“MCP(模型上下文协议)是一种以统一方式将 AI 模型与外部工具和数据连接起来的标准。” 然后,Claude 模型将文本视为附加上下文,并可以使用它为用户构建简洁的答案。本质上,文章资源充当了一个上下文单元——在运行时注入到提示中的一段知识,而不是 Claude 固定训练数据或手动生成的提示的一部分。
使用工具(函数调用)
现在,假设用户问:“2 + 5 等于多少?请解释一下 MCP。” Claude 当然可以自己计算 (2 + 5),但由于我们为其提供了一个加法工具,它可能会使用它。在生成过程中,模型会发出一个函数调用:add(2, 5)。MCP 客户端会拦截此调用并将其路由到我们的服务器。add 函数执行(返回 7),并将结果返回。然后,Claude 会获取结果(在上下文中可能类似于:工具返回:7),并继续回答问题。这是一个简单的数学示例,但它展示了 LLM 如何通过 MCP 利用外部工具。在更现实的场景中,工具可以是 search_documents(query) 或 send_email(to, content) 之类的东西,即类似代理的功能。 MCP 允许这些工具干净地集成并安全地进行沙盒处理(该工具在我们的服务器代码中运行,而不是在模型内部,因此我们可以完全控制它的功能)。
步骤 5:测试和迭代
在开发您自己的 MCP 服务器时,测试 LLM 是否能够按预期使用它非常重要。Anthropic 提供了一个 MCP Inspector 工具来调试服务器,并且您可以随时使用日志查看请求/响应流程。例如,直接运行我们的 demo_server.py 可能会等待输入(因为它需要 MCP 客户端)。您可以编写一个小脚本,使用 MCP 库的客户端功能来模拟客户端请求。但是,如果您有 Claude Desktop,这里有一个简单的测试:连接服务器。然后在 Claude 的聊天中,询问一些触发您的资源或工具的问题。检查 Claude 的对话或日志,以验证它是否已获取数据。
提示:当 Claude Desktop 连接到您的服务器时,您可以点击“工具”或“资源”面板,查看 get_article 和 add 功能是否已列出。如果没有,请仔细检查您的配置以及服务器是否已正确启动。为了进行故障排除,Anthropic 的文档建议在 Claude 中启用详细日志。您甚至可以在桌面应用中使用 Chrome DevTools 检查 MCP 消息。这种详细程度有助于确保您的上下文服务器平稳运行。
MCP的实际用例
现在我们已经了解了模型上下文协议 (MCP) 的工作原理,让我们讨论一些与开发者相关的实际应用:
使用MCP的检索增强生成 (RAG)
MCP 最明显的用例之一是利用外部知识(即 RAG)改进 LLM 响应。您可以创建一个与您的知识库交互的 MCP 服务器,而无需使用单独的检索管道并手动将结果填充到提示中。例如,您可以构建一个“文档服务器”,连接到您公司的 Confluence 或文档向量数据库。该服务器可能公开一个搜索工具(例如,search_docs(query) –> list[doc_id])和一个资源(例如,doc://{doc_id} 用于获取内容)。
当用户提出问题时,Claude 可以通过 MCP 调用 search_docs 来查找相关文档(或许会使用底层的嵌入),然后调用 doc://… 资源来检索这些顶级文档的全文。这些文本会被输入到 Claude 的上下文中,Claude 可以使用直接引用或文档中的最新信息进行回答。所有这些都通过标准化协议进行。这意味着,即使您之后切换到支持 MCP 的其他 LLM,或者使用不同的客户端界面,您的文档服务器仍然可以正常工作。

您可以在此处查看我们关于如何使用 MCP 执行 RAG 的文章。
事实上,许多早期采用者正是这样做的:连接知识库和数据存储。Anthropic 的新闻稿提到,像 Block 这样的组织以及像 Source graph 和 Replit 这样的初创公司正在与 MCP 合作,让 AI 代理从其现有系统中检索代码上下文、文档等信息。其好处显而易见:增强模型的上下文感知能力,可以带来更准确、更相关的答案。您将获得一个能够处理长上下文的助手,而不是一个只能感知到训练截止值(并幻化最新信息的助手)。例如,它可以从数据库或用户的个人数据(经用户许可)中提取最新的产品规格,从而提供定制化的答案。简而言之,MCP 增强了长上下文模型的功能。它确保这些模型始终拥有正确的上下文,而不仅仅是大量的上下文。
代理操作和工具使用
除了静态数据检索之外,模型上下文协议 (MCP) 还旨在支持代理行为,即 LLM 可以在外部世界中执行操作。使用 MCP 工具,您可以赋予模型执行诸如发送消息、创建 GitHub 问题、运行代码或控制物联网设备等操作的能力(可能性无穷无尽,仅受您公开的工具限制)。关键在于 MCP 为此提供了一个安全、结构化的框架。每个工具都有定义好的接口,并且需要用户选择加入。这降低了让人工智能执行任意操作的风险,因为作为开发者,您可以明确定义哪些操作是允许的。
考虑将一个编程助手集成到您的 IDE 中。使用 MCP,它可能会连接到 Git 服务器和一个测试框架。该助手可能包含一个 run_tests() 工具和另一个 git_commit(message) 工具。当您要求它实现某个功能时,它可以在 IDE 中编写代码,然后决定通过 MCP 调用 run_tests() 来执行测试套件,获取结果,如果一切顺利,则调用 git_commit() 提交更改。MCP 连接器简化了所有这些步骤(适用于测试运行器和 Git)。 IDE(主机)负责协调整个流程,确保您批准。这并非空想——开发人员正在积极开发此类代理集成。例如,Zed(代码编辑器)和其他 IDE 插件背后的团队一直在与 MCP 合作,以使 AI 助手能够更好地理解和引导编程任务。
另一个例子:客户支持聊天机器人可以使用工具来重置用户密码或检索订单状态(通过连接到内部 API 的 MCP 服务器)。AI 可以无缝地端到端处理支持请求:查找订单(读取资源)并发起退款(工具操作),同时记录所有操作。MCP 的标准化日志记录和安全模型在这方面发挥了作用——例如,它可以在执行退款等操作之前要求明确确认,并且所有事件都会经过统一的监控管道。
借助模型上下文协议 (MCP),代理范式变得更加健壮,因为任何 AI 代理框架都可以利用同一套工具。值得注意的是,就连 OpenAI 也宣布了支持 MCP 的计划,这表明它可能会成为类似插件功能的跨平台标准。这意味着,为您的工具或服务构建 MCP 服务器,可以让多个 AI 平台(例如 Claude、潜在的 ChatGPT 等)使用它。LLM 工具生态系统由此趋向于一个共同点,使开发者能够获得更高的复用率,并为用户提供更强大的 AI 助手。
多模态和复杂工作流程
模型上下文协议 (MCP) 不仅限于基于文本的数据。资源也可以是二进制或其他格式(它们具有 MIME 类型)。您可以通过资源将图像或音频文件作为 base64 字符串或数据流提供,并让 LLM 对其进行分析(如果 LLM 具备该功能),或者将它们传递给其他模型。例如,MCP 服务器可以公开用户的图像集合——模型可以通过文件名检索照片作为资源,然后使用其他工具将其传递给图像字幕服务,并在对话中使用该字幕。
此外,MCP 有一个“提示”的概念(我们在代码中简要添加了它),它允许更复杂的多步骤工作流程。提示模板可以指导模型按特定顺序使用某些工具。例如,“文档问答”提示可能会指示模型:“首先,使用 search_docs 工具在文档中搜索相关信息。然后使用 doc:// 资源读取最顶部的结果。
最后,引用该信息回答问题。” 此提示可以是服务器提供的模板之一,用户可以明确调用它来执行任务(或者主机根据上下文自动选择它)。虽然并非绝对必要,但提示单元提供了另一个杠杆,以确保模型有效地使用可用的工具和上下文。
最佳实践、优势和后续步骤
使用模型上下文协议 (MCP) 进行开发确实会引入一些初始学习曲线(就像任何新框架一样)。但它也带来了显著的优势:
- 标准化集成 – 您只需编写一次连接器,即可与任何兼容 MCP 的 AI 系统协同工作。这减少了重复工作,并使您的上下文/工具易于共享。例如,您无需编写单独的代码将 Slack 与每个 AI 应用集成,而是可以拥有一个 Slack MCP 服务器并在任何地方使用。
- 增强的上下文和准确性 – 通过将实时、结构化的上下文引入 LLM 的世界,您可以获得更准确、更实时的输出。您不再需要对数据库中的答案产生幻想 – 模型只需通过 MCP 查询数据库即可获得真实结果。
- 模块化和可维护性 – MCP 鼓励清晰的关注点分离。您的“上下文逻辑”位于 MCP 服务器中。您可以独立开发和测试它,甚至可以为每个工具/资源进行单元测试。您的核心应用程序逻辑仍然清晰。这种模块化设计使得更新某个部分更容易,而不会破坏其他部分。这类似于微服务如何将后端系统模块化。
- 安全与控制 – 由于 MCP 的本地优先设计和明确的权限模型,您可以严格控制 AI 的访问权限。您可以在本地运行所有服务器,将敏感数据保留在内部。每个工具调用都可以记录,甚至可能需要用户确认。这对于注重数据治理的企业采用至关重要。
- 面向未来 – 随着 AI 生态系统的发展,拥有开放协议意味着您不会被锁定在某个供应商的专有插件系统中。Anthropic 已经开源了 MCP 规范并提供了详细的文档,并且围绕它的社区正在不断发展壮大。不难想象,MCP(或类似的东西)将成为 AI 代理与世界交互的主流方式。现在加入 MCP,可以让您领先一步。
关于后续步骤,以下是一些关于 MCP 的建议:
- 查看官方资源 – 阅读官方 MCP 规范和文档,深入了解所有消息类型和功能(例如,像采样机制这样的高级主题,服务器可以请求模型完成文本,而我们这里没有介绍)。该规范编写精良,深入介绍了该协议。
- 探索 SDK 和示例 – MCP GitHub 组织拥有 SDK 和示例服务器库。例如,您可以找到常见集成(文件系统、Git、Slack、数据库连接器等)的参考实现,以及社区为许多其他服务贡献的服务器。这些非常适合通过示例学习,甚至可以开箱即用。
- 在 MCP 中试用 Claude – 如果您可以访问 Claude(桌面应用程序或通过 Claude 4 或 Claude-instant 的 API),请尝试启用 MCP 服务器,看看它如何增强您的工作流程。Anthropic 的快速入门指南可以帮助您设置您的第一个服务器。 Claude 4(尤其是 Claude Code 和 Claude for Work)在设计时就考虑到了这些集成。因此,它是一个非常适合进行实验的沙盒。
- 构建和共享 – 考虑为您关注的工具或数据源构建一个小型 MCP 服务器——例如 Jira 连接器、Spotify 播放列表阅读器或 Gmail 电子邮件摘要器。它不必太复杂。即使是将一个简单的 API 封装到 MCP 中,也能带来启发。而且由于 MCP 是开放的,您可以与他人分享您的创作。谁知道呢,您的 MCP 集成或许能满足许多开发者的需求。
小结
Anthropic 的模型上下文协议 (MCP) 代表着在使 LLM 以标准化、开发者友好的方式感知上下文并可执行操作方面迈出了重要一步。通过将上下文提供和工具使用分离到一个正式的协议中,MCP 将我们从脆弱的即时黑客攻击和一次性集成中解放出来。取而代之的是,我们获得了一个即插即用的生态系统,在这个生态系统中,AI 模型可以像我们的常规软件一样流畅地连接到丰富的数据和服务。在上下文窗口越来越长的时代,模型上下文协议 (MCP) 就像管道一样,能够传递正确的信息,从而有效地填充这些窗口。
对于开发者来说,这是一个令人兴奋的领域,值得深入探索。我们只是通过一个简单的演示来触及皮毛,但您可以想象一下,当您将多个 MCP 服务器组合在一起时,将会有多么无限的可能性——您的 AI 助手可以同时从文档 Wiki 中提取知识、与您的日历交互以及控制物联网设备,所有这些都只需一次对话即可完成。而且,由于这一切都是标准化的,您可以减少处理提示的时间,而将更多的时间投入到构建酷炫的功能上。
我们鼓励您尝试 MCP 和 Claude:试用示例服务器,构建您自己的服务器,并将其集成到您的 AI 项目中。作为由大型 AI 实验室和不断发展的社区支持的开放标准,MCP 可能成为我们构建 AI 应用的基石,就像 USB 在设备连接领域变得无处不在一样。尽早参与其中,您可以帮助塑造这个生态系统,并确保您的应用始终处于情境感知 AI 的前沿。


评论留言