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

MCP基本概念

基本概念

现在大模型交互的热门形式:

  • 第一、Agent与Tools(工具)的交互Agent需要调用外部工具和APl、访问数据库、执行代码等。=> MCP

  • 第二、Agent与Agent(其他智能体或用户)的交互Agent需要理解其他Agent的意图、协同完成任务、与用户进行自然的对话。 => A2A

file_1750141255213_706

image-20250617142226102

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

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

image-20250617142449457

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

MCP两种通信机制(传输方式):

  • stdio(标准输入输出):主要用在本地服务上,操作你本地的软件或者本地的文 件。比如 Blender 这种就只能用 Stdio 因为他没有在线服务。=> MCP默认通信方式
  • SSE(Server-Sent Events):主要用在远程通信服务上,这个服务本身就有在线 的 API,比如访问你的谷歌邮件,天气情况等。

stdio方式:

  1. 优点
    • 这种方式适用于客户端和服务器在同一台机器上运行的场景,简单。
    • stdio模式无需外部网络依赖,通信速度快,适合快速响应的本地应用。
    • 可靠性高,且易于调试
  2. 缺点
    • Stdio 的配置比较复杂,我们需要做些准备工作,你需要提前安装需要的命令行工具。
    • stdio模式为单进程通信,无法并行处理多个客户端请求,同时由于进程资源开销较大,不适合 在本地运行大量服务。(限制了其在更复杂分布式场景中的使用)

SSE方式:

  1. 场景

    • SSE方式适用于客户端和服务器位于不同物理位置的场景。
    • 适用于实时数据更新、消息推送、轻量级监控和实时日志流等场景
    • 对于分布式或远程部署的场景,基于 HTTP 和 SSE 的传输方式则更为合适。
  2. 优点 :配置方式非常简单,基本上就一个链接就行,直接复制他的链接填上就行

快速使用-以cursor为例

stdio的本地环境安装 stdio的本地环境有两种: 一种是Python 编写的服务, 一种用TypeScript 编写的服务。 分别对应着uvx 和 npx 两种指令。

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

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

image-20250617165018530

首先需要选择MCP SERVER 平台,比如我们可以在 https://smithery.ai/ 下搜索 mysql 来使用 数据库服务。选择一个使用量大的一般没问题,然后可以使用自动导入 mcp 和手动导入 json 来链接 mcp 。

自动导入直接 auto 里面选择 cursor ,填好对应的信息就自动导入了。

手动导入需要填好 json 信息,然后生成 json 文件内容,复制到项目跟目录下的 .cursor/mcp.json 文件中。

image-20250617165203460

image-20250617165428182

然后查看 cursor 中的 mcp 服务是否开启,开启后前方会出现绿色小点。(红色是错误,黄色是进行中,绿色是连接成功)

image-20250617165509852

如果这样一直报错,可能的原因是 mcp 服务本身有问题,还有就是可能引入方法不对,可以进入对应的 github 查看下其他的的引入方法。

image-20250617165941712

然后其他同样的道理,还可以引入比如高德地图服务、文件系统(filesystem )服务(操作文件)等等。

然后可以通过 agent 来测试下 mcp 是否生效:

现在交给你一个任务,编写一个北京一日游的出行攻略
1、从高德地图的MCP服务中获取北京站到天安门、天安门到颐和园、颐和园到南锣鼓巷
的地铁线路,并保存在数据库beijing_trip的表subway_trips中
2、从高德地图的MCP中获取颐和园、南锣鼓巷附件的美食信息,每处获取三家美食店铺
信息,并将相应的信息存入表location_foods中
3、在工作目录D:\MCPWorkSpace下创建一个新的文件夹,命名为“北京旅行”在其中创
建两个txt,分别从数据库中将两个表的内容提取出存放进去。
4、最后根据txt中的内容,生成一个精美的html前端展示页面,并存放在该目录下

其他平台使用

其他比较热门的平台比如 vscode 插件 cline 使用方法都是大同小异。

image-20250617170327133

插件右上角设置中配置:

image-20250617171059413

设置中有两种模式:一种是 plan mode (需求规划,任务执行的顺序),一种是 act mode (直接执行任务)。

image-20250617170312306

image-20250617171009212

之后正常调用 mcp 即可。

MCP 工作原理

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

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

image-20250617171347335

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

  2. MCP client 充当 LLM 和 MCP server 之间的桥梁,嵌入在主机程序中,主要负责: • 接收来自LLM的请求; • 将请求转发到相应的 MCP server • 将 MCP server 的结果返回给 LLM

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/

  1. MCP Server 每个 MCP 服务器都提供了一组特定的工具,负责从本地数据或远程服务中检索信息。 是 MCP 架构中的关键组件。与传统的远程 API 服务器不同,MCP 服务器既可以作为本地应用程序(stdio)在用户设备上运 行,也可部署至远程服务器(sse)。本质是运行在电脑上的一个nodejs或python程序。可以理解为客户端用命令行调用了 电脑上的nodejs或python程序。

image-20250617171635415

API 主要有两个: 1、 tools/list:列出 Server 支持的所有工具 2、 tools/call:Client 请求 Server 去执行某个工具, 并将结果返回

image-20250617171716081

image-20250617171721817

在MCP的概念中,Cursor属于一个MCP的宿主应用(Host-app),而Cursor之所以 能使用MCP服务,是因为它内置安装了MCP Client。

我们目前在配置Cursor中的MCP时,本质是在配置MCP Server,这些Server是由 不同的开发者提供的,他们基于标准化的MCP协议,做了个小的服务,这些服 务可能在本地也可能在云端,而我们实际上也完全可以按自己的需要去制作 MCP Server。

相关文章:

  • synchronized 做了哪些优化?
  • 【Algorithm】图论入门
  • 软件体系结构-论述、设计、问答
  • 每天一个前端小知识 Day 4 - TypeScript 核心类型系统与实践
  • 跨境卖家警报。抽绳背包版权案立案,TRO在即速排查
  • 二维数组 结构体01 day15,16
  • 【大模型:知识库管理】--MinerU本地部署
  • SpringBoot Starter设计:依赖管理的革命
  • 什么是数据清洗?数据清洗有哪些步骤?
  • 选择与方法专栏(9) 职场内篇: 是否要跳出舒适圈?如何处理犯错?
  • ffmpeg python rgba图片合成 4444格式mov视频,保留透明通道
  • 有趣的git
  • 【git】错误
  • 《深度学习基础与概念》task2/3
  • 使用 Java + WebSocket 实现简单实时双人协同 pk 答题
  • 设计模式精讲 Day 4:建造者模式(Builder Pattern)
  • Datawhale YOLO Master 第1次笔记
  • 提示词工程中常见协议框架应用实例
  • 开源 Arkts 鸿蒙应用 开发(二)封装库.har制作和应用
  • 基于若依框架编写的选人组件(vue3 + ts 版本)
  • 老河口网站设计/友情链接交换平台
  • 国外做任务网站/网站收录免费咨询
  • 做企业网站流程/百度网站排名seo
  • 莆田企业免费建站/广告公司名称
  • 大连网站建设选高和科技/今日热点新闻事件
  • 西宁网站建设的公司哪家好/百度指数移动版app