两个互联领域的重大挑战:
第一、 Agent 与 Tools (工具)的交互
Agent 需要调用外部工具和 API、访问数据库、执行代码等。MCP
第二、 Agent 与 Agent (其他智能体或用户)的交互
Agent 需要理解其他 Agent 的意图、协同完成任务、与用户进行自然的对话。A2A
MCP 就是大模型连接世界的标准、桥梁!
有了 DeepSeek ,你就有了一个 " 智能助理 " 。但是,我们期望 LLM 能够承担更多功能,不
仅限于简单对话,还能与外部的多种数据、工具进行交互。有了 MCP ,成为了现实!
1. MCP能干什么? 对于程序员来说
举例 1 :开发部署
开发者通过自然语言指令“部署新版本到测试环境”,触发 MCP 链式调用 GitLab API
(代码合并)、 Jenkins API (构建镜像)、 Slack API (通知团队)。
举例 2 : SQL 查询
开发者通过自然语言输入,比如“查询某集团部门上个季度销售额”,就能查询出数
据库的数据,并结合大模型进行回答,不再需要编写 SQL , MCP 自动转换为精准 SQL
语句并执行。
借助 MCP ,只要支持了该协议,就能轻松将各种数据源和工具连接到 LLM 。
2. MCP是什么?
2.1 MCP 的理解
MCP ( Model Context Protocol ,模型上下文协议) , 2024 年 11 月底 ,由
Anthropic 推出的一种开放标准。旨在为大语言模型( LLM )提供统一的、
标准化方式与外部数据源和工具之间进行通信。
传统 AI 集成的问题: 这种为每个数据源构建独立连接的方式,可以被视为一个 M*N 问题。
问题: 架构碎片化,难以扩展,限制了 AI 获取必要上下文信息的能力
MCP 解决方案: 提供统一且可靠的方式来访问所需数据,克服了以往集成方法的局限性。
MCP 作为一种标准化协议,极大地简化了大语言模型与外部世界的交互方式,使开发者能够以统一的方式为 AI 应用添加各种能力。
官方文档: https://modelcontextprotocol.io/introduction
大模型是与mcp-client进行交互的,这个交互不属于mcp协议的内容。mcp协议规定的是mcp-client与mcp-server之间的交互,而大模型与mcp-client的交互是编辑Function Call,Function Call规定了交互的数据形式等,而具体api调用每个语言都不同,比如Java使用spring ai,其他的还有langchain,这都不属于mcp的范畴。
没有个大模型function call的实现机制不一样;你如果要适配多个大模型,一个工具就需要写n次,mcp你就只需要写一次。
2.3 哪些平台支持 MCP 查询
github 查看:
• MCP 官方资源: https://github.com/modelcontextprotocol/servers
• MCP 热门资源: https://github.com/punkpeye/awesome-mcp-servers
其它平台:
• Glama : https://glama.ai/mcp/servers
• Smithery : https://smithery.ai
• cursor : https://cursor.directory
• MCP.so : https://mcp.so/zh
• 阿里云百炼: https://bailian.console.aliyun.com/?tab=mcp#/mcp-market
这里有两点要说的:
第 1 ,随着越来越多的 Server 接入 MCP 协议,未来 AI 能够直接调用的工具将呈
现 指数级增长 ,这能从根源上打开 Agent 能力的天花板。未来 AI 生态系统将
变得更加开放和强大。
第 2 ,目前社区的 MCP Server 还是比较混乱 ,有很多缺少教程和文档,很多
的代码功能也有问题,大家只能凭经验和参考官方文档了。
3. 程序员如何使用MCP
3.1 MCP 应用场景
3.2 使用前的准备工作
① MCP 的通信机制
根据 MCP 的规范,当前支持两种通信机制(传输方式):
• stdio( 标准输入输出 ) :主要用在本地服务上,操作你本地的软件或者本地的文
件。比如 Blender 这种就只能用 Stdio 因为他没有在线服务。 MCP 默认通信方式
• SSE(Server-Sent Events) :主要用在远程通信服务上,这个服务本身就有在线
的 API ,比如访问你的谷歌邮件,天气情况等。
① MCP 的通信机制: stdio 方式
优点
• 这种方式适用于客户端和服务器在同一台机器上运行的场景, 简单 。
• stdio 模式 无需外部网络依赖 ,通信速度快,适合快速响应的本地应用。
• 可靠性高,且易于调试
缺点
• Stdio 的 配置比较复杂 ,我们需要做些准备工作,你需要提前安装需要的命令行工具。
• stdio 模式为单进程通信, 无法并行处理多个客户端请求 ,同时由于进程资源开销较大,不适合
在本地运行大量服务。(限制了其在更复杂分布式场景中的使用)
① MCP 的通信机制: SSE 方式
场景
• SSE 方式适用于客户端和服务器位于不同物理位置的场景。
• 适用于实时数据更新、消息推送、轻量级监控和实时日志流等场景
• 对于分布式或远程部署的场景,基于 HTTP 和 SSE 的传输方式则更为合适。
优点
• 配置方式非常简单 ,基本上就一个链接就行,直接复制他的链接填上就行
② stdio 的本地环境安装
stdio 的本地环境有两种:
一种是 Python 编写的服务,
一种用 TypeScript 编写的服务。
分别对应着 uvx 和 npx 两种指令。
② stdio 的本地环境安装: uvx
两种安装方式:
第 1 种:若已配置 Python 环境,可使用以下命令安装:
pip install uv
第 2 种:在 Windows 下可以通过 PowerShell 运行命令来安装 uv 。
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex”
验证:重启终端并运行以下命令检查是否正常:
uv --version
uvx --help
② stdio 的本地环境安装: npx
Node.js 下载的官网: https://nodejs.org/zh-cn
4. MCP的工作原理
4.1 MCP 的 C/S 架构
5 个核心概念
MCP 遵循客户端 - 服务器架构( client-server ),其中包含以下几个核心概念:
• MCP 主机 (MCP Hosts)
• MCP 客户端 ( MCP Clients )
• MCP 服务器 ( MCP Servers )
• 本地资源 ( Local Resources )
• 远程资源 ( Remote Resources )
① MCP Host
作为运行 MCP 的主应用程序, 例如 Claude Desktop 、 Cursor 、 Cline 或 AI 工具。
为用户提供与 LLM 交互的接口,同时集成 MCP Client 以连接 MCP Server 。
② MCP Client
MCP client 充当 LLM 和 MCP server 之间的桥梁,嵌入在主机程序中,主要负责:
• 接收来自 LLM 的请求;
• 将请求转发到相应的 MCP server
• 将 MCP server 的结果返回给 LLM
② MCP Client
有哪些常用的 Clients
MCP 官网 ( https://modelcontextprotocol.io/clients ) 列出来一些支持 MCP 的 Clients 。
分为两类:
• AI 编程 IDE : Cursor 、 Cline 、 Continue 、 Sourcegraph 、 Windsurf 等
• 聊天客户端: Cherry Studio 、 Claude 、 Librechat 、 Chatwise 等
更多的 Client 参考这里:
MCP Clients : https://www.pulsemcp.com/clients
Awesome MCP Clients : https://github.com/punkpeye/awesome-mcp-clients/
② MCP Server
每个 MCP 服务器都提供了一组特定的工具,负责从本地数据或远程服务中检索信息。
是 MCP 架构中的关键组件。
比如你让助手:
• “ 帮我查航班信息” → 它调用 航班查询 API
• “ 算一下 37% 折扣后多少钱” → 它运行 计算器函数
作用:让 LLM 不仅能“说”,还能“做”(执行代码、查询数据等)。
MCP Server 的本质
本质是运行在电脑上的一个 nodejs 或 python 程序。可以理解为客户端用命令行调用了
电脑上的 nodejs 或 python 程序。
• 使用 TypeScript 编写的 MCP server 可以通过 npx 命令 来运行
• 使用 Python 编写的 MCP server 可以通过 uvx 命令 来运行。
4.2 MCP 工作流程
API 主要有两个
• tools/list : 列出 Server 支持的所有工具
• tools/call : Client 请求 Server 去执行某个工具, 并将结果返回
举例:
数据流向图:
4.3 回顾: Cursor 中使用 MCP
在 MCP 的概念中, Cursor 属于一个 MCP 的宿主应用( Host-app ),而 Cursor 之所以
能使用 MCP 服务,是因为它内置安装了 MCP Client 。
我们目前在配置 Cursor 中的 MCP 时, 本质是在配置 MCP Server ,这些 Server 是由
不同的开发者提供的,他们基于标准化的 MCP 协议,做了个小的服务,这些服
务可能在本地也可能在云端,而我们实际上也完全可以按自己的需要去制作
MCP Server 。
5. 手动开发MCP项目(C/S)
案例需求
本项目旨在构建一个 本地智能舆情分析系统 ,通过自然语言处理与多工具协作,
实现用户查询意图的自动理解、新闻检索、情绪分析、结构化输出与邮件推送。
具体参考《手动开发 MCP 项目 (CS 架构) .md 》
6.1 Cherry Studio 的 MCP 说明
Cherry Studio 是一款集多模型对话、知识库管理、 AI 绘画、翻译等功能于一体的
全能 AI 助手平台。支持 Windows , Linux 和 Mac 。
同时, CherryStudio 提供了一个简洁便于操作的可视化页面,通过简单的配置即可
开启 MCP 服务。非常适合大众用户用于构建“低代码智能流程”。
Cherry Studio 的下载地址: https://cherry-ai.com/
6.2 使用案例
具体详情,见《 Cherry Studio 中使用 MCP 案例 .md 》
6.3 准备工作:安装 uv 、 bun
Cherry Studio 目前只使用内置的 uv( https://github.com/oven-sh/bun/releases ) 和
bun( https://github.com/astral-sh/uv/releases ) , 不会复用 系统中已经安装的 uv 和 bun 。
7. 热门MCP Servers推荐
推荐 1 :文件系统 filesystem
Filesystem MCP 旨在为大型语言模型 (LLM) 和 AI 助手提供对本地文件系统的安全、受控访问。
主要功能:
- 文件读写: 允许读取和写入文件内容,支持创建新文件或覆盖现有文件。
- 目录管理: 支持创建、列出和删除目录,以及移动文件或目录。
- 文件搜索: 能够在指定路径中搜索匹配特定模式的文件或目录。
- 元数据获取: 提供获取文件或目录的详细元数据,包括大小、创建时间、修改时间、访问时间、
类 型和权限等信息。
推荐 2 :数据库 mysqldb-mcp-server
一种模型上下文协议 ( MCP ) 实现,支持与 MySQL 数据库进行安全交互。此服务
器组件可促进 AI 应用程序(主机 / 客户端)与 MySQL 数据库之间的通信 ,提供安
全的 MySQL 数据库操作,通过受控接口使数据库探索和分析更安全、更有条理。
推荐 3 :高德地图 amap-maps
高德地图是一个支持任何 MCP 协议客户端的服务器,允许用户轻松地利用高德地图 MCP 服务
器 进行各种基于位置的服务 。
高德地图的主要特点
• 支持多种位置服务,包括 地理编码、天气和距离测量
• 提供步行、驾车、公交等多种交通方式的 API
• 允许根据关键字或位置详细 搜索兴趣点 ( POI )
推荐 4 :网页数据采集 Firecrawl
Firecrawl MCP 工具是一款基于模型上下文协议( MCP )的企业级 网页数据采集 服务器。能够为
大型语言模型( LLM )提供强大的网页抓取能力。
主要功能:
• JavaScript 渲染:能够处理动态网页内容,突破传统抓取工具的局限,获取更全面的数据。
• 批量处理:支持并行处理和队列管理,提高数据抓取效率。
• 智能限速:根据网络状况和任务需求智能调整抓取速度,避免对目标网站造成过大压力。
• 多种输出格式:支持将抓取的内容转换为 Markdown 、 HTML 等格式,满足不同场景的需求。
说明:去 firecrawl 官网注册后即可查看自己的 api_key
推荐 5 : Github
GitHub MCP 服务器是一个模型上下文协议 ( MCP ) 提供与 GitHub API 无缝集成的服务器,从
而实现面向开发人员的高级自动化工具和交互功能。
使用案例:
• 自动化 GitHub 工作流程和流程。
• 从 GitHub 存储库中提取和分析数据。
• 构建与 GitHub 生态系统交互的 AI 驱动的工具和应用程序。
说明:去 https://github.com/settings/tokens 申请自己的 token
推荐 6 : Git
用于 Git 存储库交互和自动化的模型上下文协议服务器。
直接的 Git 仓库操作,包括读取、搜索和分析本地仓库
推荐 7 :记忆图谱 memory
基于知识图谱的 长期记忆系统 用于维护上下文
使用本地知识图谱的 持久内存的基本实现 。这使 Claude 可以在聊天中记住有关
用户的信息。
推荐 8 :控制台 desktop-commander
在计算机上无缝执行终端命令和管理流程。使用强大的命令执行和文件作工具简化您的开
发任务。
推荐 9 :社交软件 Slack
用于 Slack API 的 MCP 服务器,使 LLM 能够与 Slack 工作区进行交互,用于频道
管理和消息传递。
说明:去 https://app.slack.com/intl/zh-cn 注册并获取自己的team id
8. A2A协议:开启Agent间自然协作
8.1 A2A 的发布
谷歌, 25 年 4 月 10 日发布 开源的 、应用层协议 A2A ( Agent-to-Agent 协议),即
Agent-to-Agent 。其设计目的是使智能体( Agent )间能够以一种自然的模态进行协
作,类似于人与人之间的互动。
Github 地址: https://github.com/google/A2A
8.2 A2A 的设计意义
基于不同底层框架和供应商平台创建的 AI Agent 之间可以实现通信、发现彼此的能力、协商任务并开展合作,企业可以通过专业的智能体团队处理复杂的工作流程。这无疑是其最为突出的贡献。
8.3 举例
举例 1 :阿里云 & 火山云
阿里云 上创建的 AI Agent ,通过 A2A 协议,可以与 火山云 上创建的 AI
Agent 进行无缝的通信与协作。
举例 2 :修理汽车
用户 (或代表用户的智能体)对 修理店智能体 说:“给我看看左前轮的照片,似
乎漏液了,这种情况多久了?”
• A2A 协议使得人与智能体之间这种更自然、多轮次的对话式互动成为可能。
修理店智能体 在诊断出问题后,可能需要向 零件供应商智能体 查询某个零件的库
存和价格。
• 这种智能体与智能体之间的协作同样需要 A2A 协议来支持。
举例 3 :人才招聘
利用 A2A 协议,招聘流程可以如此高效:
在谷歌的 Agentspace 统一界面中, 招聘经理 可以向 自己的智能体 下达任务,
让其寻找与职位描述、工作地点和技能要求相匹配的候选人。
然后,该智能体立即 与其他专业智能体 展开互动,寻找潜在候选人。
用户会收到推荐人选,之后可以指示 自己的智能体 安排进一步的面试,面试
环节结束后,还可以 启动另一个智能体 来协助进行背景调查。
8.4 A2A 展望
谷歌已经与超过 50 家技术合作伙伴(例如 Atlassian 、 Box 、 Salesforce 、 SAP 等)和服务提供商建立了
合作关系。这表明了行业对这些协议的认可和采用,对于 AI 学习者来说,也 意味着这些协议可能会
成为未来职业发展中的关键技能 。
MCP 未来应用场景和潜力:
企业级集成: MCP 可以被广泛应用于企业级场景,通过 AI 自动化操作云服务、数据库、安全审计等,提高生产力与安全性。
个人 AI 助手: 结合 MCP,AI 助手可以直接访问用户的本地文件系统、日历、笔记等资源,提供个性化服务。
开发者效率提升: MCP 可以帮助开发者自动化项目管理、代码分析、容器管理等工作,减少重复性任务。
数据科学与分析: AI 可以通过 MCP 访问分布式数据库、实时监控系统,实现数据的多元化分析与决策支持。
智能家居与物联网: MCP 服务器可以集成智能家居设备(如 Home Assistant),实现语音控制、场景联动等功能。
教育与研究: 教育领域的 AI 可以通过 MCP 管理学习资源,研究人员也可以使用它进行论文搜索、实验数据管理。
跨语言协作: MCP 的翻译服务和多语言支持可以应用于跨国团队协作与内容生成。
所有评论(0)