当前位置: 首页 > news >正文

【MCP:七千字图文详解】从灵感闪现到生态确立,全链路解读与实战

目录

一、MCP 起源:灵感闪现

1.1 诞生背景:AI 集成的 “MxN 困境” 与开发者的现实痛点

1.2 灵感落地:从 LSP 到 MCP 的核心逻辑迁移

1.3 从原型到生态:黑客松验证与核心定位确立

二、MCP 理论:为 AI 装上 “操作现实的双手”

2.1 案例演示:MCP 的接入方式

(1)平台方式使用案例 -Agent 整合高德地图 MCP

(2)MCP Host 方式使用案例 - 整合高德地图 MCP

(3)MCP Host 方式使用案例 - 读&写 Excel MCP

2.2 概念界定:MCP 的核心定义

2.3 架构类型:MCP 对应的 CS 架构模式

2.4 传输机制:MCP 支持的三种数据传输方式

2.5 接口协议:MCP 关联的三种模块接口规范

三、MCP 实战:开发讲解

3.1 研发岗视角:如何实现&接入 MCP

(1)实现:MCP Server

(2)实现:AI 应用程序

(3)联调:AI 应用程序请求 MCP Server

(4)测试:MCP 检查器 inspector

3.2 算法岗视角:现有推理脚本如何接入 MCP

3.3 平台/中台视角:MCP 的开发和接入流程

四、MCP 推荐:Server / Hub

4.1 MCP Server

4.2 MCP Hub

五、MCP 应用:思考应用场景


一、MCP 起源:灵感闪现

📌 前言:想要讲好技术起源,我认为需要参考一手资料,尤其是作者亲自讲出的,才是可靠的,因此我参考了今年作者参加一家国外技术播客的采访,以及作者的个人社交账号

  • 4月份 latent space 对于发明者的采访:
    • 原视频:https://www.youtube.com/watch?v=m2VqaNKstGc
    • 文字版:https://www.techflowpost.com/article/detail_25192.html
  • 作者 David Soria Parra 的 X:https://x.com/dsp_

1.1 诞生背景:AI 集成的 “MxN 困境” 与开发者的现实痛点

        MCP 诞生于 Anthropic 公司中一位工程师的“灵光一闪”,Anthropic 是国外一家 AI 独角兽公司,目前约有 1300 名员工,市值约 1700 亿相当于国内的小米公司,这家公司的知名产品包括编程能力很强的 Claude 3.7 大模型、Claude Desktop。如此有规模的公司,会让我们误以为 MCP 是公司战略规划的产物,然而实际情况并不是这样,MCP 在此公司的诞生仅是一个巧合,但对于整个行业来说,MCP 这类协议的诞生又是个必然。

        MCP(Model Context Protocol,模型上下文协议)的诞生并非宏大战略规划的产物,而是 Anthropic 团队成员在解决实际开发痛点时,从现有技术范式中获得灵感的 “灵光一闪”

        2024 年 7 月,Anthropic 工程师 David Soria Parra 刚加入团队不久,便陷入了一个典型的效率困境:他需要在 Claude Desktop 和 IDE 之间频繁切换,甚至手动复制内容以实现 “AI 应用 + 工具” 的组合使用。这种操作不仅繁琐,更暴露了当时 AI 生态的核心问题 ——“MxN 集成难题”

c354731c7991950174c28a50af4e4bb0.png

        这一困境并非首次出现。在开发者工具领域,早年多种 IDE(如 VS Code、JetBrains、Vim)与编程语言(如 Java、Python、C++)的适配,也曾面临同样的 “MxN 难题”—— 直到 LSP(Language Server Protocol,语言服务器协议) 的出现。LSP 通过定义一套通用通信标准,让 “编辑器 - 语言” 的交互从 “每个编辑器适配所有语言” 的 M×N 模式,简化为 “编辑器实现 LSP 客户端、语言工具实现 LSP 服务器” 的 M+N 模式,彻底重塑了代码编辑生态。

        当时 Anthropic 内部正推进与 LSP 相关的开发工具项目,虽进展有限,但这一技术储备让 David 的想法有了落地基础。David 正是从这一成熟范式中获得了关键启发:为何不能设计一套类似的协议,解决 AI 应用与外部扩展的集成问题?

📌 附:采访文字版部分

081684fd78c8d1a39f89f0f3cd2f6537.png

1.2 灵感落地:从 LSP 到 MCP 的核心逻辑迁移

        David 将这一想法分享给同事 Justin Spahr-Summers 后,两人迅速达成共识,并开始系统性地将 LSP 的核心设计逻辑迁移到 AI 场景

例如下面是 LSP 的一个 Java 实现版本 Eclipse JDT LS

bd980b35990b5b566b4dc1ea56d825d1.png

两套协议的灵感迁移

785641184c0eb89c9c833da5b209afa5.png

1.3 从原型到生态:黑客松验证与核心定位确立

        MCP 的早期开发节奏极快,从 2024 年 7 月想法诞生,到 9 月完成首个原型(包含 Claude Desktop 客户端、本地文件系统服务器、Python SDK),仅用了一个半月。为验证协议的实用性,两人在 Anthropic 内部发起了一场黑客松,结果远超预期 —— 同事们基于 MCP 快速搭建出各种创新原型:控制 3D 打印机的工具服务器、实现跨对话记忆的资源服务器、支持代码生成的提示模板服务器。这些原型不仅证明了 MCP 的灵活性,更让团队明确了其核心定位:“AI 上下文的通用接口”。此时的 MCP 已具备三大关键特征,为后续成为行业标准埋下伏笔:

  • 极简入门门槛:开发者只需 100-200 行代码,即可基于 Python/TS SDK 搭建一个 MCP 服务器(如文件查询服务器),且支持通过 AI 辅助编码(将 SDK 片段传入 Claude,即可生成基础代码);
  • 完整工具链支撑:初期便配套了 MCP Inspector(用于调试通信流量)、Claude Desktop DevTools(用于管理服务器连接),甚至支持通过 CLI 命令快速添加扩展(如 “claude mcp add brave-search” 一键接入搜索能力);
  • 开放生态基因:尽管由 Anthropic 发起,但 MCP 从设计之初就规避了 “厂商锁定”—— 协议规范完全公开,SDK 支持多语言(Python、TS、Rust),且允许第三方修改扩展。

        2024 年 11 月,MCP 正式对外发布,初期虽仅获得 Cursor、Cognition 等少数 AI 应用支持,但随着 2025 年 2 月 AI Engineer Summit 上 “官方注册中心发布”“协议深度解析” 等内容的曝光,以及近 300 万次的研讨会视频观看量,MCP 迅速引爆生态 —— 从普通开发者用它远程控制汽车买面包,到 OpenAI、微软、阿里云等大厂纷纷接入,最终成为 AI Agent 领域的事实标准。

52220955a3620c7b8f95b8290cf4d17e.png

faf766670eb3a4d997335092023b2469.png

附:

  • 可用在这个网站查看 GitHub 项目的 Star 趋势图:https://www.star-history.com/#modelcontextprotocol/modelcontextprotocol&type=date&legend=top-left
  • MCP 中文论坛:https://mcpcn.com/

        下一版本 MCP 将于不久后的 2025 年 11 月 25 日发布,推出的改进——包括异步操作、更强的可扩展性、服务器发现和标准化扩展——将有助于 MCP 成为生产 AI 集成更强大的支柱。详情见:https://blog.modelcontextprotocol.io/posts/2025-09-26-mcp-next-version-update/

作者已开始“MCP 带货” https://x.com/dsp_

8d14af234c3e3f5cf6d15bdfb38ea297.png

二、MCP 理论:为 AI 装上 “操作现实的双手”

2.1 案例演示:MCP 的接入方式

(1)平台方式使用案例 -Agent 整合高德地图 MCP

User Prompt :现在从北京西二旗,到北京南站,有什么交通方案,分别大概多久,到南站后附近有什么好吃的,另外晚上找个住的地方

01ae8e093098521cd6fd04ae0fe2ccad.png

(2)MCP Host 方式使用案例 - 整合高德地图 MCP

https://lbs.amap.com/api/mcp-server/gettingstarted

{"mcpServers": {"amap-maps-streamableHTTP": {"url": "https://mcp.amap.com/mcp?key=在高德官网上申请的key"}}
}

73e162780d991c621d0b0ddadf011026.png

decf24b1240db7639304162409672a7c.png

9917b65d829c524b8ca919aeb0e9848b.png

d8470cb1fb00421785c9ba14a4aaad5c.png

(3)MCP Host 方式使用案例 - 读&写 Excel MCP

b926c0a02eca454cca3ec988897caea6.png

{"mcpServers": {"amap-maps-streamableHTTP": {"url": "https://mcp.amap.com/mcp?key=xx"},# 此处"excel": {"command": "npx","args": ["--yes", "@negokaz/excel-mcp-server"],"env": {"EXCEL_MCP_PAGING_CELLS_LIMIT": "4000"}}}
}

dc3142bfd89022f517822d4150e5f250.png

00c15c72ea11f23406a6549a96783e34.png

User Prompt: 这个excel里面是什么内容:/Users/zlc/Desktop/work/file/code/algo/.idea/excel/工作簿1.xlsx

49c02712d2a044ea5de285df5b1ae2a1.png

23843706193ebdc354630c78a57dd0d4.png

User Prompt: 计算这个 excel 中每个人的平均分、最高分、最低分、之后的提分建议,并且追加在后续的列:/Users/zlc/Desktop/work/file/code/algo/.idea/excel/工作簿1.xlsx

abd95e79d8c36b91e4a0fb028a195bdd.png

acd90c941f74adf478eb25b3ddf8e538.png

c05fbea611cd36ed5cf6897d0ef131dd.png

2.2 概念界定:MCP 的核心定义

📌 MCP 在大模型对话中的哪个环节? GPT 对话

a3f8c5c72e7759ebee3f6f1fcf87b7d5.png

       

        MCP(模型上下文协议)是一种用于将 AI 应用程序 连接到外部系统的开源标准。借助MCP,像Claude或ChatGPT这类 AI 应用程序 能够连接到数据源(例如本地文件、数据库)、工具(例如搜索引擎、计算器)和工作流(例如专门的提示词),从而使它们能够获取关键信息并执行任务。可以把MCP想象成 AI 应用程序 的USB-C接口。就像USB-C提供了一种标准化的电子设备连接方式一样,MCP也为人工智能应用程序与外部系统的连接提供了标准化方式。

c04131d4c874b5e97022520fef8bf10e.png

5c6f96f54b898f82be5c16d4fba251b2.png

2.3 架构类型:MCP 对应的 CS 架构模式

MCP 采用 客户端-服务器(CS)架构,分三个角色:

  • MCP Host:是协调和管理一个或多个 MCP 客户端的 AI 应用程序,例如 Claude Desktop、VScode-Cline 插件、Cursor、Trae
  • MCP Server为MCP客户端提供上下文的程序,可以部署在本地或远程
  • MCP Client与其对应的 MCP 服务器保持一对一的专用连接,可以理解为它是这俩方法的直接调用方 tool/list、tool/call

2.4 传输机制:MCP 支持的三种数据传输方式

MCP 协议使用 JSON-RPC 来编码消息,MCP 协议目前定义了三种传输机制用于客户端-服务器通信:

  • Stdio:通过标准输入和标准输出进行通信
  • SSE:通过 HTTP 进行通信,支持流式传输(协议版本 2024-11-05 开始支持,即将废弃)
  • Streamble HTTP:通过 HTTP 进行通信,支持流式传输(协议版本 2025-03-26 开始支持,用于替代 SSE)

2.5 接口协议:MCP 关联的三种模块接口规范

  • 工具:AI 应用程序可以调用以执行操作的可执行函数(例如文件操作、API 调用、数据库查询)
    • 879851d81fac38f888056b9b4c574a5d.png

  • 资源:向 AI 应用程序提供上下文信息的数据源(例如文件内容、数据库记录、API 响应)
    • 085462f606a2a4ade7cd0f267ef86855.png

  • 提示:可重复使用的模板,有助于构建与语言模型的交互(例如,系统提示、少量示例)
    • 3aac92da8ecfdc133ed59eddc493dc60.png

三、MCP 实战:开发讲解

3.1 研发岗视角:如何实现&接入 MCP

以 Spring AI 框架为例,逻辑如下

(1)实现:MCP Server

500b2185ec16709fa8e6a733be07656d.png

d3090ccae48429779d52868b18204482.png

fcdceed2e12a7d6d6e41a269608903cc.png

(2)实现:AI 应用程序

89c0cb421e1d84b4be8a733e03df1234.png

e81198adfe980044367f08aeee1f92af.png

(3)联调:AI 应用程序请求 MCP Server

060795253c10c03c0df9b47e7c94dce5.png

(4)测试:MCP 检查器 inspector

是用于测试和调试 MCP Server 的开发人员的工具,目前 Postman 也支持了 MCP Server 的调试

1e8e0ba1d1040002258b23c7eed3865e.png

3.2 算法岗视角:现有推理脚本如何接入 MCP

假设现有脚本如下:

class ChatBot:def __init__(self):# 初始化大模型(如LLM)self.llm = init_llm()  # 你的大模型初始化逻辑def chat(self, user_input):# 1. 模型理解用户输入prompt = "系统提示词..." + f"问:{user_input},请回答。"# 2. 模型生成回应response = self.llm.generate(prompt)return response# 使用示例
bot = ChatBot()
print(bot.chat("今天北京有什么新闻?"))

接入 MCP 可使用 FastMCP

import json
from typing import Optional, Dict, Any
from fastmcp import Client  # 导入 FastMCP 客户端# 初始化大模型
llm = LLM(...)# 初始化 MCP 客户端(连接到实际的 MCP 服务器)
client = Client("https://api.example.com/mcp/server/...")# 主对话流程
def chat():# 用户输入user_input = "今天北京有什么新闻?"# 步骤1:获取 MCP 服务器可用工具(用于构建提示词)tools = await client.list_tools()tools_desc = "\n".join([f"- {tool.name}:{tool.description},参数:{tool.inputSchema}"for tool in tools.tools])# 步骤2:构造提示词并调用大模型system_prompt = f"""你可以调用以下工具解决用户问题:{tools_desc}若需要调用工具,返回JSON格式:{{"tool": "工具名", "params": {"参数键值对"}}}若无需工具,直接返回自然语言回答。"""prompt = f"{system_prompt}\n用户问题:{user_input}"llm_result = await llm.generate(prompt)# 步骤3:解析大模型结果,判断是否需要调用工具tool_call = parse_llm_response(llm_result)if tool_call:# 步骤4:调用 MCP 工具tool_name = tool_call["tool"]params = tool_call["params"]tool_result = await client.call_tool(tool_name, params)# 步骤5:结合工具结果生成最终回答final_prompt = f"""用户问题:{user_input}工具返回结果:{tool_result}请结合结果用自然语言回答。"""final_answer = await llm.generate(final_prompt)print(f"最终回答:{final_answer}")else:# 无需调用工具,直接使用模型回答print(f"最终回答:{llm_result}")# 解析大模型结果的工具函数
def parse_llm_response(response: str) -> Optional[Dict[str, Any]]:"""解析大模型输出,判断是否需要调用工具返回格式:{"tool": "工具名", "params": {...}} 或 None(无需工具)"""# 尝试解析为工具调用指令tool_call = json.loads(response.strip())if isinstance(tool_call, dict) and "tool" in tool_call and "params" in tool_call:return tool_callreturn None

3.3 平台/中台视角:MCP 的开发和接入流程

平台侧可以加一层适配层,让现有的 RPC 或 HTTP 可以无缝部署为 MCP Server

四、MCP 推荐:Server / Hub

4.1 MCP Server

下面是些有代表性的 MCP Server

  • 文件系统 filesystem:在为大型语言模型(LLM)和 AI 助手提供对本地文件系统的安全、受控访问
  • 数据库 mysqldb-mcp-server:支持与 MySQL 数据库进行安全交互
  • 高德地图 amap-maps:支持多种位置服务,包括地理编码、天气和距离测量、交通方式、位置附近兴趣点
  • 网页数据采集 Firecrawl:企业级网页数据采集服务器,能够为大型语言模型(LLM)提供强大的网页抓取能力
  • Github:提供与 GitHub API 无缝集成的服务器,从 而实现面向开发人员的高级自动化工具和交互功能
  • 记忆图谱 memory:使用本地知识图谱的持久内存的基本实现
  • 控制台 desktop-commander:在计算机上无缝执行终端命令和管理流程

4.2 MCP Hub

Hub

收录的 MCP 服务器数量

MCP SO16946 台
MCP Market17106 台
Smithery AI2446 台
Model Scope5621 台
Mcp World35233 台
awesome-mcp-servers/
......

五、MCP 应用:思考应用场景

首先聊 MCP 应用场景前,先说说大模型的应用场景,我认为分下面几类:

  • 客服

    • 智能客服

    • 社交陪聊

    • 知识管理

  • 内容理解

    • 审核风控

    • 视频分析

    • 直播分析

    • 商品分析

  • 洞察预测

    • 销售洞察

    • 数据分析

    • 投放管理

    • 舆情分析

...

对于 MCP 来说,需要看自己公司的实际情况,能否在上面做功

  • 在靠近用户端的团队,MCP 有很多可以做功的场景,如接入高德 MCP,可以配合大模型集成许多“周边兴趣”、“吃喝玩乐” 等特色 AI 业务
  • 各种大模型应用的场景,接入 MCP 扩展大模型能力边界,如由人的搜索变为模型接入搜索引擎 MCP,降低人力成本
  • 对于中后台团队,MCP 的应用,我有两种相反看法
    • 👼 看:开发一些解大模型判断失误 case 的小模型-->提供 mcp/插件 接口-->绑定到 Agent-->大模型自己的分析+小模型阈值参考-->补短版
    • 👹 看:中后台业务,前置链路成熟且丰富,适合前置先采集完上下文,再把信息给到大模型,而不是把“重担”压在 Agent,提供各种工具,让 Agent 来收集
  • 也欢迎大家提些想法~

📌 附加一个有意思的问题:如果一个 MCP 既是服务端,本身又作为一个客户端调用其他 MCP,最后流转到自身,形成有向循环图♻️该怎么办?

0baf33b09aa603f8bab3344cf7b0c93c.png

a95d6fb06cc83852a8fcf3bb3de9db47.png

530a9338d98c53735528c7cac7d2e9f4.png

http://www.dtcms.com/a/597031.html

相关文章:

  • GitHub 热榜项目 - 日榜(2025-11-11)
  • OpenCV图像亮度与对比度调整
  • 应急响应基础
  • jsp技术做网站有什么特点免费软件下载网站入口正能量
  • WSL2下Ubuntu20.04图形化环境配置
  • Ubuntu单用户
  • h5制作网站哪个好杭州做网站的公司
  • 软装设计师常用网站英文网站建设一般多少钱
  • 数据结构之顺序表(动态)
  • Prover9/Mace4 的形式化语言简介
  • CSDN文章如何转出为PDF文件保存
  • 多级缓存解决方案
  • C++ 二分查找(Binary Search):从原理到实战的全面解析
  • Synbo Protocol 受邀出席ETHShanghai 2025,以共识机制重构链上融资生态
  • 软考 系统架构设计师历年真题集萃(198)—— 2025年11月系统架构设计师真题1
  • 专业网站开发服务电商网站建设哪个好
  • 哈希表和unordered_map和unordered_set
  • HTTP报文格式
  • 厦门网页建站申请费用怎么找出网站的备案号
  • maven专题
  • 渭南市住房和城乡建设局官方网站定制网站和模板网站及仿站的区别
  • Data Agent业务场景方案分析
  • AWS ALB 和目标组异常事件监控实战
  • python中模拟浏览器操作之playwright使用说明以及打包浏览器驱动问题
  • pnpm环境下防止误使用npm的方法
  • 服务器证书与网站不符2020中国企业500强榜单
  • 医疗电子试验箱 生物电子实验箱 生物医学教学平台 嵌入式生物医学电子实验箱
  • 网易云音乐解析(无损音乐均可下载)
  • android StateFlow和sharedflow
  • 幽冥大陆(十八)手机摄像头注册到电脑源码——东方仙盟炼气期