MCP实战指南

两个互联领域的重大挑战:

  • 第一、Agent 与 Tools(工具)的交互Agent 需要调用外部工具和API、访问数据库、执行代码等。 --->MCP
  • 第二、Agent 与 Agent(其他智能体或用户)的交互Agent 需要理解其他 Agent 的意图、协同完成任务、与用户进行自然的对话。 --->A2A

如果你是程序员

****

如果你是大众用户:如何理解MCP

有了DeepSeek,你就有了一个"智能助理"。但是,我们期望 LLM 能够承担更多功能,不仅限于简单对话,还能与外部的多种数据、工具进行交互。有了MCP,成为了现实!

如果你是大众用户:如何理解LLM与MCP

如何理解LLM与MCP

1. MCP能干什么?

对于程序员来说

  • 举例1:开发部署

    开发者通过自然语言指令"部署新版本到测试环境",触发 MCP 链式调用 GitLab API(代码合并)、Jenkins API(构建镜像)、Slack API(通知团队)。

  • 举例2:SQL查询

    开发者通过自然语言输入,比如"查询某集团部门上个季度销售额",就能查询出数据库的数据,并结合大模型进行回答,不再需要编写 SQL,MCP 自动转换为精准 SQL语句并执行。

  • 举例3:manus智能体

    Manus的每一次任务处理都至少需要调用网页搜索、网页访问、网页信息获取、本地文件创建、代码解释器等几十个外部工具。

这里就暴露了两个问题。

  • 问题1:可供大模型调用的工具不足。

  • 问题2:调用工作量很大。

对于大众用户来说

  • 举例1:旅游规划

    当我要去旅行时,旅行规划助手通过 MCP 同时调用天气 API(获取目的地气象)、交通 API(查询航班动态)、地图 API(规划路线),AI 自动生成带实时数据的行程方案。

  • 举例2:联网搜索

    我们在与 LLM 交互时,经常需要联网搜索最新信息以减少幻觉。然而,这里也存在问题:

    • 1、并非所有聊天机器人都支持联网功能
    • 2、即使支持联网,也可能不包含你习惯使用的搜索引擎。

在没有 MCP 的情况下,用户只能等待开发者添加特定搜索引擎的支持。

有了 MCP 后,只需简单配置,就能将所需服务接入当前使用的聊天机器人。

  • 举例3:业绩查询

    用户询问"查询上季度营业额",MCP 自动组合调用 CRM 系统 API(获取客户数据)财务系统 API(调取报表)+ 邮件 API(发送总结报告)。

2.1 MCP的理解

MCP(Model Context Protocol,模型上下文协议) ,2024年11月底,由Anthropic 推出的一种开放标准。旨在为大语言模型(LLM)提供统一的、标准化方式与外部数据源和工具之间进行通信。

传统AI集成的问题:这种为每个数据源构建独立连接的方式,可以被视为一个M*N问题。

问题:架构碎片化,难以扩展,限制了AI获取必要上下文信息的能力

MCP解决方案:提供统一且可靠的方式来访问所需数据,克服了以往集成方法的局限性。

MCP 作为一种标准化协议,极大地简化了大语言模型与外部世界的交互方式,使开发者能够以统一的方式为 AI 应用添加各种能力。

官方文档:https://modelcontextprotocol.io/introduction

2.2 MCP推广时间线

2024年11月底,Anthropic推出了MCP。目标就是能在Agent 的开发过程中,让大模型更加便捷地调用外部工具。

2025年2月份,Cursor正式宣布加入MCP功能支持,一举将MCP推到了全体开发人员面前!

2025年3月27日,OpenAI智能体支持MCP。OpenAI联合创始人兼首席执行官Sam Altman也特意发文大赞MCP,可见其对Agent的重要性。

2.3 哪些平台支持MCP查询

github查看:

其它平台:

这里有两点要说的:

第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

3.3 Cursor中使用MCP

cursor中国区官网:https://www.cursor.com/cn

在 Cursor 中添加 MCP Server 有两种配置方式:

  • 全局设置:通过 Cursor Settings -> MCP -> Add new global MCP server 添加全局可用的 MCP 服务。
  • 项目级别:在项目目录的 .cursor 目录中新建 mcp.json 文件进行配置,仅对特定项目生效。

推荐使用项目级别配置,因为全局模式会在所有项目中生效,可能在某些情况下影响 Cursor Agent 的输出质量。

1)全局设置如下:

我们点击右上角的齿轮按键,弹出设置栏

点击MCP,然后通过写入JSON的形式导入MCP Server。

2)项目级别设置如下

① 在项目根目录创建 .cursor 文件夹(如果不存在)

② 在该文件夹中创建 mcp.json 文件

3.4 通过Cline使用智能体

通过Cline使用智能体

4. MCP的工作原理

4.1 MCP的C/S架构

5个核心概念

MCP 遵循客户端-服务器架构(client-server),其中包含以下几个核心概念:

  • MCP 主机(MCP Hosts)
  • MCP 客户端( MCP Clients )
  • MCP 服务器( MCP Servers )
  • 本地资源( Local Resources )
  • 远程资源( Remote Resources )

1、 MCP Host

作为运行 MCP 的主应用程序,例如 Claude Desktop、Cursor、Cline 或 AI 工具。为用户提供与LLM交互的接口,同时集成 MCP Client 以连接 MCP Server。

2、MCP Client

MCP client 充当 LLM 和 MCP server 之间的桥梁,嵌入在主机程序中,主要负责:

  • 接收来自LLM的请求;
  • 将请求转发到相应的 MCP server
  • 将 MCP server 的结果返回给 LLM

有哪些常用的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/

3、MCP Server

每个 MCP 服务器都提供了一组特定的工具,负责从本地数据或远程服务中检索信息。是 MCP 架构中的关键组件。

与传统的远程 API 服务器不同,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 去执行某个工具,并将结果返回

举例:

数据流向图

5. 手动开发MCP项目(C/S)

本项目旨在构建一个本地智能舆情分析系统,通过自然语言处理与多工具协作,实现用户查询意图的自动理解、新闻检索、情绪分析、结构化输出与邮件推送。

具体参考: https://blog.csdn.net/su2231595742/article/details/155916826

6. 大众用户如何使用MCP

6.1 Cherry Studio的MCP说明

Cherry Studio 是一款集多模型对话、知识库管理、AI 绘画、翻译等功能于一体的全能 AI 助手平台。支持 Windows,Linux 和 Mac。

同时,CherryStudio提供了一个简洁便于操作的可视化页面,通过简单的配置即可开启MCP服务。非常适合大众用户用于构建"低代码智能流程"。

Cherry Studio的下载地址:https://cherry-ai.com/

6.2 准备工作

安装Cherry Studio&添加大模型

安装 uv、bun

Cherry Studio 目前只使用内置的 uv 和 bun,不会复用系统中已经安装的 uv 和 bun。

在 设置 - MCP 服务器 中,点击 安装 按钮,即可自动下载并安装。安装成功与否,以下文提到的文件夹内是否有文件为准。

UV:是python的运行环境

Bun:是类似于Nodejs的运行环境

可执行程序安装目录:

Windows: C:\Users\用户名.cherrystudio\bin

macOS,Linux: ~/.cherrystudio/bin

无法正常安装的情况下:

可以手动下载可执行文件放到这个目录下。如果没有对应目录,需要手动建立。

Bun: https://github.com/oven-sh/bun/releases

UV: https://github.com/astral-sh/uv/releases

6.3 案例

步骤1:配置MCP服务器

在这里,我们配置的DeepSeek官网的R1模型。

点击左下角的齿轮按键,再点击MCP服务器即可去配置我们的MCP Server。

点击编辑MCP配置,导入这段JSON

json 复制代码
{
    "mcpServers": {
        "fs": {
            "command": "cmd",
            "args": [
                "/c",
                "npx",
                "-y",
                "@smithery/cli@latest",
                "run",
                "@bunasQ/fs",
                "--key",
                "8ce02901-a503-4520-8ebc-a2a362e93993"
            ]
        },
        "desktop-commander": {
            "isActive": true,
            "command": "npx",
            "args": [
                "-y",
                "@wonderwhy-er/desktop-commander"
            ],
            "name": "desktop-commander"
        },
        "amap-maps": {
            "isActive": true,
            "command": "npx",
            "args": [
                "-y",
                "@amap/amap-maps-mcp-server"
            ],
            "env": {
                "AMAP_MAPS_API_KEY": "e62ad882bd8922676d2aeabc0793730f"
            },
            "name": "amap-maps"
        }
    }
}

步骤2:聊天框中启用 MCP 服务

进入聊天界面,先确定使用的大语言模型。这里注意:需要使用支持函数调用(在模型名字后会出现扳手符号)的模型。

然后,输入框中有一个 MCP 配置项,选择要使用的MCP Servers:

步骤3:提供需求

复制代码
现在交给你一个任务,编写一个北京一日游的出行攻略
1、在工作目录E:\CherryMCP下创建一个新的文件夹,命名为"北京旅行"
2、从高德地图的MCP服务中获取北京站到天安门、天安门到颐和园、颐和园到南锣鼓巷的地铁线路,并保存在"北京旅行"目录下的"地铁路线.txt"文件中
3、从高德地图的MCP中获取颐和园、南锣鼓巷附件的美食信息,每处获取三家美食店铺信息,并保存在"北京旅行"目录下的"周边美食.txt"文件中
4、最后根据txt中的内容,生成一个精美的html前端展示页面,并存放在该目录下

步骤4:功能测试

首先我们提出需求,然后CherryStudio会对任务进行拆解和分析,之后执行

执行过程中,每当任务执行一部分后,它都会向用户进行汇报。

最后在指定盘下生成了相应的文件:

如下是其生成的前端界面

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

说明:去https://github.com/settings/tokens 申请自己的token

GitHub MCP 服务器是一个模型上下文协议 (MCP) 提供与 GitHub API 无缝集成的服务器,从而实现面向开发人员的高级自动化工具和交互功能。

使用案例:

  • 自动化 GitHub 工作流程和流程。
  • 从 GitHub 存储库中提取和分析数据。
  • 构建与 GitHub 生态系统交互的 AI 驱动的工具和应用程序。
推荐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间自然协作

在 AI Agent 的世界里,主要解决两大互联领域的挑战:

第一、Agent 与 Tools(工具)的交互

Agent 需要调用外部 API、访问数据库、执行代码等。

第二、Agent 与 Agent(其他智能体或用户)的交互

Agent 需要理解其他 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 之间可以实现通信、发现彼此的能力、协商任务并开展合作,企业可以通过专业的智能体团队处理复杂的工作流程。这无疑是其最为突出的贡献。

举例1:阿里云 & 火山云

阿里云上创建的 AI Agent,通过A2A协议,可以与火山云上创建的 AI Agent 进行无缝的通信与协作。

8.4 A2A展望

谷歌已经与超过 50 家技术合作伙伴(例如 Atlassian、Box、Salesforce、SAP 等)和服务提供商建立了合作关系。这表明了行业对这些协议的认可和采用,对于 AI 学习者来说,也意味着这些协议可能会成为未来职业发展中的关键技能。

相关推荐
爬点儿啥19 小时前
[Ai Agent] 10 MCP基础:快速编写你自己的MCP服务器(Server)
人工智能·ai·langchain·agent·transport·mcp
小鱼儿亮亮1 天前
Agents SDK+MCP智能体开发
agent·mcp
KotlinKUG贵州2 天前
Kotlin/Ktor 实践:利用 MCP 从零打造 AI Agent 服务端指南
kotlin·agent·mcp
天天扭码2 天前
深入MCP本质——编写自定义MCP Server并通过Cursor调用
前端·mcp
天天扭码2 天前
解放双手!使用Cursor+Figma MCP 高效还原响应式设计稿
前端·mcp
小小工匠2 天前
LLM - MCP Powered Agent_从工具失配到架构重构的实战指南
agent·mcp·千具之痛
Thomas_Cai2 天前
MCP服务创建指南
人工智能·大模型·agent·智能体·mcp
栗子叶2 天前
Spring AI MCP Server接入百炼问题排查
spring ai·mcp·百炼·获取工具异常
刘立军2 天前
程序员应该熟悉的概念(4)MCP能做什么
人工智能·mcp