MCP使用指南:大模型连接世界的标准协议
前言
在AI Agent的世界里,主要面临两大互联领域的挑战:
- Agent与Tools(工具)的交互:Agent需要调用外部工具和API、访问数据库、执行代码等
- Agent与Agent(其他智能体或用户)的交互:Agent需要理解其他Agent的意图、协同完成任务、与用户进行自然的对话
MCP解决了第一个挑战,而A2A协议则解决了第二个挑战。
使用MCP的重点是理解MCP的工作机制!即文章的第四部分
一、MCP是什么?
1.1 MCP的理解
MCP(Model Context Protocol,模型上下文协议),2024年11月底,由Anthropic推出的一种开放标准。旨在为大语言模型(LLM)提供统一的、标准化方式与外部数据源和工具之间进行通信。
传统AI集成的问题:这种为每个数据源构建独立连接的方式,可以被视为一个M*N问题。问题在于架构碎片化,难以扩展,限制了AI获取必要上下文信息的能力。
MCP解决方案:提供统一且可靠的方式来访问所需数据,克服了以往集成方法的局限性。
MCP作为一种标准化协议,极大地简化了大语言模型与外部世界的交互方式,使开发者能够以统一的方式为AI应用添加各种能力。


1.2 MCP推广时间线
| 时间 | 事件 |
|---|---|
| 2024年11月底 | Anthropic推出MCP,目标是让大模型更便捷地调用外部工具 |
| 2025年2月 | Cursor正式宣布加入MCP功能支持,将MCP推到全体开发人员面前 |
| 2025年3月27日 | OpenAI智能体支持MCP,Sam Altman特意发文大赞MCP |
1.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
- 阿里云百炼
二、MCP能干什么?
2.1 对于程序员来说
举例1:开发部署
开发者通过自然语言指令"部署新版本到测试环境",触发MCP链式调用:
- GitLab API(代码合并)
- Jenkins API(构建镜像)
- Slack API(通知团队)
举例2:SQL查询
开发者通过自然语言输入,比如"查询某集团部门上个季度销售额",就能查询出数据库的数据,并结合大模型进行回答,不再需要编写SQL,MCP自动转换为精准SQL语句并执行。
举例3:Manus智能体
Manus的每一次任务处理都至少需要调用网页搜索、网页访问、网页信息获取、本地文件创建、代码解释器等几十个外部工具。
这里暴露了两个问题:
- 问题1:可供大模型调用的工具不足
- 问题2:调用工作量很大
借助MCP,只要支持该协议,就能轻松将各种数据源和工具连接到LLM。
(对于Java开发:
2.2 对于大众用户来说
举例1:旅游规划
当我要去旅行时,旅行规划助手通过MCP同时调用:
- 天气API(获取目的地气象)
- 交通API(查询航班动态)
- 地图API(规划路线)
AI自动生成带实时数据的行程方案。
举例2:联网搜索
我们在与LLM交互时,经常需要联网搜索最新信息以减少幻觉。然而,这里也存在问题:
- 并非所有聊天机器人都支持联网功能
- 即使支持联网,也可能不包含你习惯使用的搜索引擎
在没有MCP的情况下,用户只能等待开发者添加特定搜索引擎的支持。有了MCP后,只需简单配置,就能将所需服务接入当前使用的聊天机器人。
举例3:业绩查询
用户询问"查询上季度营业额",MCP自动组合调用:
- CRM系统API(获取客户数据)
- 财务系统API(调取报表)
- 邮件API(发送总结报告)
三、程序员如何使用MCP
3.1 MCP应用场景
MCP可应用于多种场景:
3.2 使用前的准备工作
① MCP的通信机制
根据MCP的规范,当前支持两种通信机制(传输方式):
| 方式 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| stdio(标准输入输出) | 本地服务,操作本地软件或文件 | 简单、无需外部网络、通信速度快、可靠性高、易于调试 | 配置复杂、单进程通信、无法并行处理 |
| SSE(Server-Sent Events) | 远程通信服务,有在线API的服务 | 配置简单,基本上就一个链接 | 需要网络依赖 |
② stdio的本地环境安装
stdio的本地环境有两种:
- Python编写的服务 → 使用
uvx命令 - TypeScript编写的服务 → 使用
npx命令
uvx安装方式:
第1种:若已配置Python环境:
pip install uv
第2种:在Windows下通过PowerShell安装:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
验证安装:
uv --version
uvx --help
npx安装方式:
Node.js下载官网:https://nodejs.org/zh-cn
下载安装后,配置环境变量并测试。
3.3 Cursor中使用MCP
Cursor中国区官网:https://www.cursor.com/cn
3.4 Cline中使用MCP
Cline也支持MCP功能,配置方式类似。
四、MCP的工作原理
4.1 MCP的C/S架构

MCP遵循客户端-服务器架构(client-server),包含以下5个核心概念:
| 概念 | 说明 |
|---|---|
| MCP主机(MCP Hosts) | 运行MCP的主应用程序,如Claude Desktop、Cursor、Cline或AI工具 |
| MCP客户端(MCP Clients) | 嵌入在主机程序中,充当LLM和MCP Server之间的桥梁 |
| MCP服务器(MCP Servers) | 提供特定工具,从本地数据或远程服务中检索信息 |
| 本地资源(Local Resources) | 本地的文件、数据库等 |
| 远程资源(Remote Resources) | 远程API、云服务等 |
① MCP Host
作为运行MCP的主应用程序,为用户提供与LLM交互的接口,同时集成MCP Client以连接MCP Server。
② MCP Client
MCP Client充当LLM和MCP Server之间的桥梁,主要负责:
- 接收来自LLM的请求
- 将请求转发到相应的MCP Server
- 将MCP Server的结果返回给LLM
常用的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服务器都提供了一组特定的工具,负责从本地数据或远程服务中检索信息。
与传统的远程API服务器不同,MCP服务器既可以作为本地应用程序在用户设备上运行,也可部署至远程服务器。
MCP Server的本质:本质是运行在电脑上的一个Node.js或Python程序。
- 使用TypeScript编写的MCP Server可以通过
npx命令来运行 - 使用Python编写的MCP Server可以通过
uvx命令来运行
4.2 MCP工作流程
API主要有两个:
- tools/list:列出Server支持的所有工具
- tools/call:Client请求Server去执行某个工具,并将结果返回
工作流程示例:
- 用户向LLM发送请求
- LLM判断需要调用工具
- MCP Client通过tools/list获取可用工具列表
- MCP Client通过tools/call调用相应工具
- MCP Server执行工具并返回结果
- LLM根据结果生成回复

4.3 回顾:Cursor中使用MCP
在MCP的概念中,Cursor属于一个MCP的宿主应用(Host-app),而Cursor之所以能使用MCP服务,是因为它内置安装了MCP Client。
我们目前在配置Cursor中的MCP时,本质是在配置MCP Server,这些Server由不同的开发者提供,他们基于标准化的MCP协议,做了个小的服务,这些服务可能在本地也可能在云端。
五、热门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
六、A2A协议:开启Agent间自然协作
6.1 A2A的发布
在AI Agent的世界里,主要解决两大互联领域的挑战:
- Agent与Tools的交互 → MCP
- Agent与Agent的交互 → A2A
谷歌于2025年4月10日发布开源的、应用层协议A2A(Agent-to-Agent协议)。其设计目的是使智能体(Agent)间能够以一种自然的模态进行协作,类似于人与人之间的互动。
📖 Github地址:https://github.com/google/A2A
6.2 A2A的设计意义
基于不同底层框架和供应商平台创建的AI Agent之间可以实现:
- 通信
- 发现彼此的能力
- 协商任务并开展合作
企业可以通过专业的智能体团队处理复杂的工作流程。这无疑是其最为突出的贡献。
6.3 举例
举例1:阿里云 & 火山云
阿里云上创建的AI Agent,通过A2A协议,可以与火山云上创建的AI Agent进行无缝的通信与协作。
举例2:修理汽车
用户(或代表用户的智能体)对修理店智能体说:"给我看看左前轮的照片,似乎漏液了,这种情况多久了?"
- A2A协议使得人与智能体之间这种更自然、多轮次的对话式互动成为可能
- 修理店智能体在诊断出问题后,可能需要向零件供应商智能体查询某个零件的库存和价格
举例3:人才招聘
利用A2A协议,招聘流程可以如此高效:
- 招聘经理向自己的智能体下达任务,让其寻找与职位描述相匹配的候选人
- 该智能体立即与其他专业智能体展开互动,寻找潜在候选人
- 用户收到推荐人选后,可以指示智能体安排面试
- 面试结束后,可以启动另一个智能体来协助进行背景调查
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐




所有评论(0)