MCP:模型上下文协议 - 插图指南 (2025) - 深度解析

2025 EDITION · 重新定义AI交互范式

模型上下文协议 (MCP)

AI Agent 与外部世界的智能桥梁:插图指南深度解析

🛠️

系统构建者指南

现代化AI应用

💡

未来AI趋势

高效阅读:智能评估与个性化导航

本书阅读时间约为3小时。
但并非所有章节都与您相关。 这份2分钟的智能评估将测试您当前的专业知识, 并为您个性化推荐最相关、最有用的章节,助您更高效地学习。

扫描二维码或点击链接即刻开始评估:

MCP Assessment QR Code 立即开始评估 (2分钟)

核心概念:模型上下文协议 (MCP)

1.1) 什么是MCP?

想象一下,您只会说英语。而要从只会说法语的人那里获取信息,您必须学习法语。从只会说德语的人那里获取信息,您必须学习德语。依此类推。

在这种情况下,学习哪怕5种语言对您来说都将是一场噩梦。但如果您添加一个懂得所有语言的翻译器,情况会怎样?

这很简单,不是吗?

翻译器就像一个MCP

它允许您(智能体)通过一个单一接口与其他人(工具或其他功能)进行交流。

正式来说,尽管大型语言模型(LLMs)拥有令人印象深刻的知识和推理能力,使其能够执行许多复杂任务,但它们的知识仅限于其初始训练数据。如果它们需要访问实时信息,就必须自行使用外部工具和资源。

模型上下文协议(Model Context Protocol - MCP) 是一个标准化的接口和框架,允许AI模型与外部工具、资源和环境无缝交互

MCP充当AI系统与各项功能(工具等)之间的通用连接器,类似于USB-C如何标准化电子设备之间的连接。

1.2) 为何创建MCP?

没有MCP时,添加新工具或集成新模型是一件令人头疼的事。如果您有三个AI应用程序和三个外部工具,您可能最终需要编写九个不同的集成模块(每个AI x 每个工具)因为没有共同标准。这无法扩展。

AI应用程序的开发者每次都在重复造轮子,而工具提供商不得不支持多个不兼容的API才能触及不同的AI平台。

让我们详细了解一下。

挑战:M×N 集成问题

在MCP之前,AI与外部数据和操作连接的现状就像是零散的临时解决方案。您要么为每个工具硬编码逻辑,要么管理不健壮的提示链,或者使用供应商特定的插件框架。

这导致了臭名昭著的 M×N 集成问题。本质上,如果您有 M 个不同的AI应用程序和 N 个不同的工具/数据源,您可能最终需要 M × N 个自定义集成。

下图展示了这种复杂性:每个AI(每个“模型”)可能需要独特的代码来连接到每个外部服务(数据库、文件系统、计算器等),导致意大利面条式的互连。

传统集成:高耦合 M×N 复杂性
模型 A
模型 B
模型 C
数据库
文件系统
计算器
其他 API

解决方案:MCP 简化集成 M+N 模式

MCP通过在中间引入一个标准接口来解决这个问题。我们不再是M×N的直接集成,而是M+N的实现:每个 M 个AI应用程序都实现一次MCP客户端,每个 N 个工具都实现一次MCP服务器

现在大家都说同一种“语言”,可以说,新的配对不再需要自定义代码,因为它们已经通过MCP相互理解了。

下图展示了这种转变。对比传统模式,MCP显著降低了连接复杂度。

  • 左侧(MCP之前),每个模型都必须与每个工具连接,形成混乱的网状。
  • 右侧(有了MCP),每个模型和工具都连接到中央MCP层,大大简化了连接。这也可以与我们之前讨论的翻译器示例联系起来。
传统集成:M×N 连接 (例如: 9个)
模型 1
模型 2
模型 3
工具 A
工具 B
工具 C
MCP 方案:M+N 连接 (例如: 6个)
模型 1
模型 2
模型 3
MCP 层
工具 A
工具 B
工具 C

1.3) MCP架构概览

MCP核心遵循客户端-服务器架构(很像Web或其他网络协议)。然而,其术语是为AI上下文量身定制的。需要理解三个主要角色宿主(Host)客户端(Client)服务器(Server)

H

宿主 (Host)

宿主是面向用户的AI应用程序,是AI模型存在并与用户交互的环境。例如:ChatGPT、Claude桌面应用、AI增强型IDE (Cursor)。

它捕获用户输入,保存对话历史,并显示模型的回复。

C

客户端 (Client)

MCP客户端是宿主内部的一个组件,负责处理与MCP服务器的底层通信。

将其视为适配器或信使,将宿主的指令转换为MCP服务器可以理解的语言并执行。

S

服务器 (Server)

MCP服务器是提供功能(工具、数据等)给应用程序的外部程序或服务。

它以标准化方式暴露一组动作或资源,可以本地或远程运行,并执行来自客户端的请求。

1.4) MCP核心能力:工具、资源与提示

工具、提示和资源构成了MCP框架的三大核心能力。能力本质上是服务器提供的特性或功能。

工具 (Tools)

工具是代表AI模型执行某些功能的函数。它们通常涉及外部API调用、文件I/O等,并且由AI模型自主选择并触发

例如,一个天气查询工具:


@mcp.tool()
def get_weather(location: str):
    """
    获取指定地点的当前天气信息。
    :param location: 城市名或地点名。
    :return: 包含温度和天气状况的字典。
    """
    # ... (实际调用外部天气服务) ...
    return {"temperature": "15°C", "conditions": "多云"}
                        

MCP确保工具调用经过开发者/治理批准,防止滥用。它们是模型控制的动态功能。

资源 (Resources)

资源为AI模型提供只读数据源,如数据库、知识库、文档内容等,不涉及副作用或重计算。

它们通常由宿主应用程序控制访问,是AI获取上下文信息的重要途径:


@mcp.resource("file://{path}")
def read_file(path: str):
    """
    读取指定路径的文件内容。
    """
    with open(path, "r", encoding="utf-8") as f:
        return f.read()
                        

资源通过URI或名称标识,确保安全和权限控制,如同按需提供的参考材料。

提示 (Prompts)

提示是预定义的指令模板或对话流,用于引导AI行为,而非AI自发使用。它们通常由用户或开发者控制,提供标准化策略。

例如,一个代码审查提示:


@mcp.prompt()
def code_review_prompt():
    """
    生成一个用于代码审查任务的prompt。
    """
    return [
        {"role": "system", "content": "你是一个严谨的代码审查专家..."},
        {"role": "user", "content": "请审查以下Python代码片段:"}
    ]
                        

通过MCP,这些复杂的提示可以按需检索和更新,模糊了数据与指令之间的界限,类似于ChatGPT插件但更加标准化和可发现。

实践应用:前沿MCP项目案例

MCP客户端是AI应用程序(如Cursor)中的一个组件,用于建立与外部工具的连接。了解如何100%本地构建它,实现AI与本地数据库的交互。

技术栈: Llamaindex Ollama LightningAI

核心工作流程:

  1. 用户提交查询。
  2. 智能体连接到本地MCP服务器发现并选择工具。
  3. 智能体根据查询调用工具并获取所需上下文。
  4. 智能体返回上下文感知的响应。
查看完整代码与实现细节

学习如何创建MCP驱动的智能RAG,该RAG可以优先级搜索向量数据库,并在需要时智能回退到Web搜索,获取最新信息。

技术栈: Bright Data Qdrant (Vector DB) Cursor

核心工作流程:

  1. 用户通过MCP客户端提问。
  2. 客户端联系MCP服务器并选择最合适的工具(向量DB或Web搜索)。
  3. 工具执行查询,获取相关数据。
  4. 返回信息给客户端生成响应。
查看完整代码与实现细节

构建一个MCP驱动的AI智能体,直接从Cursor或Claude Desktop获取、分析并生成股票市场趋势洞察,甚至自动生成可视化图表。

技术栈: CrewAI (Multi-Agent) Ollama (DeepSeek-R1) Cursor

核心工作流程:

  1. 用户提交金融查询。
  2. MCP智能体启动金融分析师团队(CrewAI)。
  3. 团队进行市场研究并创建可执行的分析脚本。
  4. 智能体运行脚本生成分析图表并返回洞察。
查看完整代码与实现细节

本项目教您如何构建一个MCP驱动的语音智能体,该智能体可以通过语音查询数据库或执行Web搜索,并返回语音响应。

技术栈: AssemblyAI (STT) Firecrawl (Web) Supabase (DB) Livekit (Orch.) Qwen3 (LLM)

核心工作流程:

  1. 用户语音查询通过AssemblyAI转录。
  2. 智能体发现并选择数据库或Web搜索工具。
  3. LLM调用相应工具,获取数据并生成文本响应。
  4. 应用程序通过文本转语音(TTS)传递响应。
查看完整代码与实现细节

本项目构建一个MCP服务器,通过MindsDB和Cursor IDE驱动的统一界面,使用自然语言查询和聊天超过200多个数据源

技术栈: MindsDB Cursor Docker

核心工作流程:

  1. 用户提交查询。
  2. 智能体连接到MindsDB MCP服务器发现工具。
  3. 根据用户查询智能选择并调用工具。
  4. 返回上下文相关的响应。
查看完整代码与实现细节

该项目旨在解决Claude Desktop和Cursor独立使用时上下文不共享的问题,通过添加通用内存层实现跨应用程序的无缝协作。

技术栈: Zep's Graphiti MCP (Memory) Cursor Claude Desktop Docker

核心工作流程:

  1. 用户向Cursor或Claude提交查询。
  2. 事实/信息通过Graphiti MCP存储在通用内存层。
  3. 任何需要上下文的交互都会查询此共享内存。
  4. Graphiti在多个宿主之间共享内存,确保上下文连续性。
查看完整代码与实现细节

探索如何使用MCP为RAG应用赋能,使其能够处理包含表格、图表、图像及复杂布局的真实世界文档。

技术栈: Cursor EyelevelAI's GroundX

核心工作流程:

  1. 用户与MCP客户端(Cursor IDE)交互并提交查询。
  2. 客户端连接到MCP服务器并选择文档处理工具。
  3. 工具利用GroundX的先进能力对复杂文档执行深度搜索。
  4. 搜索结果返回给客户端以生成最终响应。
查看完整代码与实现细节

了解如何构建一个MCP服务器,该服务器可以生成任何类型的合成数据集。它使用Cursor作为MCP宿主,并利用SDV生成逼真的表格合成数据

技术栈: Cursor Datacebo's SDV

核心工作流程:

  1. 用户提交数据生成或可视化查询。
  2. 智能体连接到MPC服务器发现工具。
  3. 智能体根据查询使用Dacacebo's SDV工具。
  4. 返回合成数据创建、评估或可视化的相关响应。
查看完整代码与实现细节

构建一个100%本地的ChatGPT深度研究功能替代品,帮助您获取任何主题的详细洞察。

技术栈: Linkup (Deep Web) CrewAI (Multi-Agent) Ollama (DeepSeek) Cursor

核心工作流程:

  1. 用户提交查询。
  2. Web搜索智能体通过Linkup执行深度Web搜索。
  3. 研究分析师验证并去重结果。
  4. 技术作者撰写带有引用的连贯响应。
查看完整代码与实现细节

我们有一个MCP驱动的视频RAG,它可以摄取视频并让您通过对话与之互动。它还会智能地获取事件发生的精确视频片段

技术栈: RagieAI (Video Ingestion/Retrieval) Cursor

核心工作流程:

  1. 用户指定视频文件和查询。
  2. 摄取工具在Ragie中索引视频内容。
  3. 查询工具从Ragie索引中检索相关视频信息和引用。
  4. 显示视频工具返回回答查询的视频片段。
查看完整代码与实现细节

我们有一个MCP驱动的音频分析工具包,它接受音频文件并让您对其进行转录并提取见解,例如情感分析、说话人标签、摘要和主题检测。它还允许您与音频进行聊天

技术栈: AssemblyAI (Transcription/Analysis) Claude Desktop Streamlit (UI)

核心工作流程:

  1. 用户的音频输入通过本地MCP服务器发送到AssemblyAI。
  2. AssemblyAI转录并提供摘要、说话人、情感和主题等多种洞察。
  3. 转录后,用户还可以与音频(通过文本界面)进行聊天。
查看完整代码与实现细节

互动区域

登录后可以点赞此内容

参与互动

登录后可以点赞和评论此内容,与作者互动交流