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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/87242.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/87242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker容器相关命令介绍和示例

Docker 容器是镜像的运行实例。以下是常用的 Docker 容器命令及其示例&#xff1a; 1. 运行容器 docker run [选项] <镜像名> [命令]常用选项&#xff1a; -d&#xff1a;后台运行&#xff08;守护模式&#xff09;-it&#xff1a;交互式终端--name&#xff1a;指定容…

【Akshare】高效下载股票和ETF数据

在量化投资与金融数据分析的世界里&#xff0c;获取高质量的市场数据是构建有效策略的关键。Python库Akshare为我们提供了一个强大且易于使用的接口&#xff0c;可以轻松地从网络上抓取各类金融数据。本文将详细介绍如何利用Akshare下载股票和ETF的历史行情数据。 安装Akshare…

分布式--3--分布式事务

1 简介 事务在单系统中的表现&#xff1a;多次数据库操作用事务进行管理&#xff0c;来保证ACID原则。 但是如果各个模块都是单独独立出来的微服务&#xff0c;进行了分布式部署&#xff0c;单系统里的事务将不能保证各个数据库操作的一致性&#xff0c;因此就需要分布式事务来…

不同建模方式的介绍 RTL建模笔记(1)

说明&#xff1a;该专栏"RTL建模笔记"是《RTL Modeling with SystemVerilog for Simulation and Synthesis》的翻译&#xff1b;该笔记略过了第一章第一小节中背景介绍内容&#xff0c;以及第二小节前面部分的门级、RTL级建模介绍&#xff0c;对于后续学习不影响。 …

<13>-MySQL用户管理

目录 一&#xff0c;用户管理操作 1&#xff0c;创建用户 2&#xff0c;查询用户 3&#xff0c;修改密码 4&#xff0c;删除用户 二&#xff0c;数据库权限 1&#xff0c;用户授权 2&#xff0c;回收权限 一&#xff0c;用户管理操作 1&#xff0c;创建用户 --创建用户…

如何使用超低噪声电源提高AD 时钟电路质量,改善超声系统的图像质量

超声波技术是医疗诊断和其他应用中广泛使用的无创工具&#xff0c;已经从静态图像进化到动态图像&#xff0c;从黑白呈现变为彩色多普勒图像。这些重大进步主要是由于引入了数字超声技术。虽然这些进步提高了超声成像的有效性和通用性&#xff0c;但同样重要的是&#xff0c;这…

【解决方案】Kali 2022.3修复仓库密钥一键安装docker,docker compose

1、Kali 2022.3 2、一键安装docker&#xff0c;docker compose #!/bin/bashecho " 安全的Kali Docker安装脚本 "# 备份重要配置 cp /etc/apt/sources.list /etc/apt/sources.list.backup.$(date %Y%m%d)# 修复Kali仓库配置 echo "修复Kali仓库配置..." ca…

Transformer、RNN (循环神经网络) 和 CNN (卷积神经网络)的区别

我们来详细对比一下 Transformer、RNN (循环神经网络) 和 CNN (卷积神经网络) 这三种在深度学习中极其重要的架构&#xff0c;并通过具体例子说明它们的区别。 核心区别总结&#xff1a; 处理数据的方式&#xff1a; CNN: 专注于局部特征和空间/时间模式。通过卷积核在输入数据…

408第二季 - 组成原理 - 数据类型转换

这章内容会比较少 闲聊 如果题目说把8位改成4位&#xff0c;你保留低位就行了 这里保留的是0101 然后是有符号数和无符号数的转换 机器数就是二进制长什么样子 然后就是小数点是不参与存储的 然后简单看看代码 这是short就说明是有符号数 unsigned就是说明是无符号数 然后y…

让 Deepseek 写电器电费计算器(html版本)

以下是一个简单的电器电费计算器的HTML和CSS代码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

react_flow自定义节点、边——使用darg布局树状结构

文章目录 ⭐前言⭐引入react-flow⭐自定义节点nodeType⭐自定义边edgeType⭐添加节点⭐inscode代码块⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文分享 前端 ——react_flow自定义节点、边——使用darg布局树状结构。 自定义效果 可以自定义节点、边、线条流动…

word表格批量转excel,提取表格数据到excel

本文将带你一步步实现一个将 Word 中的表格内容批量提取并转换为 Excel 文件的自动化工具&#xff0c;适用于需要手动复制粘贴数据到excel的场景 假设我们有这样的表格在word中&#xff0c;图片世放在excel中便于截图&#xff0c;现在需要将表格中有颜色的数据提取到对应的exce…

day2课程

1.添加pinia到Vue项目 2.counter基础使用 3.getters和异步action 4.storeToRefs和调试 5.项目初始化和git管理 6.别名路径联想设置 7.elementsPlus自动按需导入配置 这个项目使用的是按需引入 1.安装包管理器 npm install element-plus --save 2.按需引入 npm install -D unp…

Vue3 + TypeScript + Element Plus 设置表格行背景颜色

技术要点&#xff1a; 1、使用 :row-class-name"setRowClassName" 设置表格行类名 2、不能同时使用 stripe 3、设置行类名的样式 应用效果&#xff1a; 同时使用 stripe 出来的效果&#xff1a; 参考代码&#xff1a; ReagentTable.vue <script setup lang&…

山东大学 软件项目管理知识点总结

软件项目管理背诵总结 将老师所发ppt的知识点整理&#xff0c;方便查阅与背诵。 文章目录 软件项目管理背诵总结1. 概述1.1 什么是项目&#xff1f;1.2 项目有那些特征&#xff1f;1.3 项目于日常工作有什么区别&#xff1f;1.4 如何衡量一个项目是否成功&#xff1f;1.5 软件项…

css基础笔记简洁版1

&#x1f4d8; CSS 基础笔记 1 一、CSS 简介 CSS&#xff08;层叠样式表&#xff09;用于为网页添加样式&#xff0c;实现结构与样式分离&#xff0c;能够控制颜色、字体、布局、位置、动画等视觉效果。 二、基本语法 选择器 {属性1: 值1;属性2: 值2; }说明&#xff1a; 选…

reactor模型学习

学习链接 狂野架构师第四期netty视频 - B站视频 狂野架构师训练营6期 - B站视频 Netty学习example示例&#xff08;含官方示例代码&#xff09; LG-Netty学习 【硬核】肝了一月的Netty知识点 - 启动过程写的很详细 Reactor模型讲解 一文搞懂Reactor模型与实现 高性能网络编…

应用探析|千眼狼高速摄像机、sCMOS相机、DIC测量、PIV测量在光学领域的应用

2025&#xff0c;长春&#xff0c;中国光学学会学术大会。中科视界携千眼狼品牌四大科学仪器高速摄像机、sCMOS科学相机、DIC应变测量系统、PIV流场测量系统亮相&#xff0c;在光学领域多个细分研究方向承载科学实验的感知与测量任务。 1先进制造技术及其应用 激光切割、激光焊…

Kafka 4.0.0集群部署

Kafka 4.0.0集群部署 1.1 关闭防火墙和 selinux 关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.service关闭selinux setenforce 0 #&#xff08;临时生效&#xff09; sed -i s/^SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config #&…

探秘卷积神经网络(CNN):从原理到实战的深度解析

在图像识别、视频处理等领域&#xff0c;卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;简称 CNN&#xff09;如同一位 “超级侦探”&#xff0c;能够精准捕捉图像中的关键信息&#xff0c;实现对目标的快速识别与分析。从医疗影像诊断到自动驾驶中的路况感…