MCP调研

news2025/6/4 23:02:55

什么是 MCP

MCP(Model Context Protocol,模型上下文协议),是由 Anthropic 在 2024 年 11 月底推出的开放标准协议,旨在统一大型语言模型(LLM)与外部数据源、工具的通信方式。MCP 的主要目的在于解决当前 AI 模型因数据孤岛限制而无法充分发挥潜力的难题,使得 AI 应用能够安全地访问和操作本地及远程数据,为 AI 应用提供了连接万物的接口。可以把 MCP 想象成 AI 应用的 USB-C 接口。就像 USB-C 为设备连接各种外设和配件提供了标准化方式一样,MCP 为 AI 模型连接不同的数据源和工具提供了标准化方式。

MCP的架构

包含以下关键组件:

  • MCP主机:如Claude Desktop、IDE等AI工具,负责发起请求

  • MCP客户端:与服务器一对一连接,管理协议通信

  • MCP服务器:轻量级程序,通过标准化协议安全访问本地或远程资源(如数据库、API、文件系统)

MCP 的核心采用 Client-Server 架构,一个应用程序可以连接多个 MCP Server。

只要 AI 应用实现了 MCP ,即可接入到任意的 MCP Server,扩展自身的能力。加入 MCP Server 后,工具调用的流程如下:

通过这种方式,MCP 实现了:

  1. 即插即用:AI 应用只需实现 MCP 协议,即可接入丰富的第三方工具生态

  2. 标准化:所有工具遵循统一的描述格式和调用方式

  3. 解耦工具与应用:工具提供者可以独立开发和维护工具,不需了解 AI 应用内部实现

  4. 资源共享:一次开发的工具可以被多个 AI 应用复用

MCP与Function Calling的关系

特性

MCP

OpenAI Function Call

传统 API 接口

开源性

完全开源协议

封闭平台

依赖具体实现

标准化程度

高,统一协议规范

中,平台内统一

低,各自为政

开发复杂度

中等

中等

高(需自行处理交互)

数据隐私

高,本地处理优先

中,需要发送到服务器

取决于实现

生态成熟度

发展中

成熟

非常成熟

MCP的优势在于:开源协议、统一标准、高度数据隐私保护,且正处于快速发展阶段。

协议与传输

MCP 的协议与传输机制是实现客户端-服务器通信的基础,确保 AI 模型与外部资源和工具的高效、安全交互。

协议层 Protocol layer

协议层基于JSON-RPC 2.0 ,定义了消息框架、请求/响应机制和通信模式,确保客户端与服务器间的标准化交互。

其主要功能包括:

  • 消息路由:处理请求、响应和通知的传递。

  • 会话管理:维护客户端与服务器的稳定连接。

  • 标准化接口:为客户端(连接服务器)和服务器(提供功能)提供统一接口。

协议层简化了通信复杂性,体现了 MCP 设计原则中的“易构建”和“模块化”,为资源、工具等核心组件提供通信支持。

传输层 Transport layer

传输层负责客户端与服务器间的实际数据交换。MCP 支持两种主要传输机制:

  1. 标准传输 Stdio

    1. 使用标准输入/输出进行通信

    2. 适合本地场景,如命令行工具和 IDE 插件

  2. HTTP(SSE)

    1. 通过 HTTP POST 和 Server-Sent Events(SSE,基于HTTP的服务器向客户端单向推送实时数据的技术)实现消息传递

    2. 适合远程和云服务场景

两种传输均采用 JSON-RPC 2.0 格式,确保消息一致性。传输层的模块化设计支持 MCP 的扩展性,可适配未来新增的传输方式。

安全

在客户端机器执行(恶意)代码 MCP 协议缺乏对工具风险等级的分级管控机制

MCP 为更强大的提示词注入(prompt injection)提供了温床 MCP 使得意外暴露敏感数据变得更加容易

MCP 协议为何不如你想象的安全

MCP 应用场景

继Cursor、OpenAI、等海外厂商宣布接入MCP协议后,百度、高德、腾讯三大地图纷纷在MCP Server领域发力,推出了一系列功能和服务。

作为云计算厂商,2025年4月9日阿里云百炼上线业界首个全生命周期MCP服务,无需用户管理资源、开发部署、工程运维等工作,5分钟即可快速搭建一个连接MCP服务的Agent。

阿里云百炼 MCP 快速入门

同日,腾讯云上线正式发布“AI开发套件”,支持MCP插件托管服务,帮助开发者最快 5 分钟搭建业务型AI Agent。

腾讯云的MCP开发广场

Zapier MCP(国外)

Zapier 的 MCP Server 将其已有的 7000+ 应用和 30,000+ 操作(Action)统一封装到了一个 MCP Server URL 中。你可以在 Zapier 后台,自主选择和配置需要的工具及操作,比如发邮件、在 CRM 中创建记录、在 Slack 中发送通知等。Zapier MCP 接入

支付宝 支付 MCP 服务

https://opendocs.alipay.com/open/0go80l

2025-04-14,支付宝在国内推出“支付 MCP Server”服,作为国内首家支持 MCP 协议的支付机构,当前的 MCP Server 仅是支付宝AI 支付服务的第一步,后续支付宝将持续发布更多面向智能体的产品。

高德开放平台 https://lbs.amap.com/

Dify MCP插件 Dify MCP 插件指南 在 Workflow 中配置 MCP Agent Strategy

可以在 Workflow 中使用 MCP Agent Strategy 插件。安装完成后,在对应的 Agent 节点内进行配置,具体操作如下:

将以下 JSON 结构作为模板,其中 url 值替换为 MCP Server 地址,然后将修改后的完整 JSON,复制粘贴到 MCP SERVER URL 配置框内:

{ "server_name": { "url": "https://actions.zapier.com/mcp/*******/sse", "headers": {}, "timeout": 5, "sse_read_timeout": 300 } }

配置完成后,当 Workflow 运行到该 Agent 节点时,就能够根据 Prompt 指令,利用配置好的 Zapier MCP Server 来执行任务。

MCP实战

可以利用高德的mcp server, 创建一个可以导航,出行,制作旅游攻略的demo。

1、如何创建一个高德的MCP Server,参考: MCP Server

2、 MCP Server 配置,可以快速接入使用:

{ "mcpServers": { "amap-amap-sse": { "url": "https://mcp.amap.com/sse?key=您在高德官网上申请的key" } } }

详情:快速接入高德地图 MCP Server

3、在dify上创建工作流,然后添加agent节点,agent节点信息相关配置,如下: mcp服务配置:填写高德 MCP Server配置 指令:你是一个专业的旅游助手。 查询:指定输入的询问问题变量

参考

https://docs.cloudbase.net/ai/mcp/introduce

https://tech.xiaomi.com/#/pc/article-detail?id=40551

https://my.oschina.net/IDP/blog/18387734

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

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

相关文章

TDengine 运维——巡检工具(定期检查)

背景 TDengine 在运行一段时间后需要针对运行环境和 TDengine 本身的运行状态进行定期巡检,本文档旨在说明如何使用巡检工具对 TDengine 的运行环境进行自动化检查。 安装工具使用方法 工具支持通过 help 参数查看支持的语法 Usage: taosinspect [OPTIONS]Check…

qwen 2.5 并行计算机制:依靠 PyTorch 和 Transformers 库的分布式能力

qwen 2.5 并行计算机制:依靠 PyTorch 和 Transformers 库的分布式能力 完整可运行代码: import torch import torch.nn.functional as F from transformers

MSTNet:用于糖尿病视网膜病变分类的多尺度空间感知 Transformer 与多实例学习方法|文献速递-深度学习医疗AI最新文献

Title 题目 MSTNet: Multi-scale spatial-aware transformer with multi-instance learning for diabetic retinopathy classification MSTNet:用于糖尿病视网膜病变分类的多尺度空间感知 Transformer 与多实例学习方法 01 文献速递介绍 糖尿病视网膜病变&#…

docker运行程序Killed异常排查

问题描述 我最近开发了一个C 多线程程序,测试没有问题,封装docker测试也没有问题,然后提交给客户了,然后在他那边测试有问题,不定时、不定位置异常中断,以前一直认为只要封装了docker就万事大吉&#xff0…

Excel 批量下载PDF、批量下载考勤图片——仙盟创梦IDE

在办公场景中,借助应用软件实现 Excel 批量处理考勤图片、电子文档与 PDF,具有诸多显著优势。 从考勤图片处理来看,通过 Excel 批量操作,能快速提取图片中的考勤信息,如员工打卡时间、面部识别数据等,节省…

PCIe-Error Detection(一)

下表为PCIe协议中给出的错误: 一、可纠正错误(Correctable Errors,8种)​​ ​​检错机制​​ ​​错误名称​​​​检测层级​​​​触发条件​​​​Receiver Error​​Physical接收端均衡器(EQ)监测到…

向量空间的练习题目

1.考虑 中的向量x1 和x2 求每一向量的长度 令x3x1x2,求x3的长度,它的长度与x1和x2的和有什么关系? 2.重复练习1,取向量 3.令C为复数集合,定义C上的加法为 (abi)(cdi)(ac)(bd)i 并定义标量乘法为对所有实数a (abi) a bi 证明&…

Leetcode 2123. 使矩阵中的 1 互不相邻的最小操作数

1.题目基本信息 1.1.题目描述 给你一个 下标从 0 开始 的矩阵 grid。每次操作,你可以把 grid 中的 一个 1 变成 0 。 如果一个矩阵中,没有 1 与其它的 1 四连通(也就是说所有 1 在上下左右四个方向上不能与其他 1 相邻)&#x…

MySQL高可用集群

https://dev.mysql.com/doc/mysql-shell/8.4/en/mysql-innodb-cluster.html 1 什么是MySQL高可用集群 MySQL高可用集群:MySQL InnoDB ClusterInnoDB Cluster是MySQL官方实现高可用读写分离的架构方案,包含以下组件 MySQL Group Replication:简…

day14 leetcode-hot100-27(链表6)

21. 合并两个有序链表 - 力扣(LeetCode) 1. 暴力法 思路 创建一个空节点,用来组装这两个链表,谁小谁就是下一个节点。 知识 创建空节点:ListNode n1 new ListNode(-1); 具体代码 /*** Definition for singly-l…

YOLOv5 :训练自己的数据集

- **🍨 本文为[🔗365天深度学习训练营](https://mp.weixin.qq.com/s/rnFa-IeY93EpjVu0yzzjkw) 中的学习记录博客** - **🍖 原作者:[K同学啊](https://mtyjkh.blog.csdn.net/)** 我们接着上一篇文章配置完YOLOv5需要的环境后&#…

flutter项目迁移空安全

重中之重 备份好项目文件,甚至连已经加载好的flutter库也可以备份。环境包升级 2.1 不要直接换成flutter:3.0以上的版本,这样做既有基本的库兼容问题,又有空安全下的语法问题(整个项目中需要增加 late、?、!的语法错误,一片报错的…

MySql(十二)

目录 MySql约束 1.添加主键约束 语法格式 1)创建一个带主键的表 查看表结构 2)创建表的时候指定主键名称 查看表结构 3)创建一个表然后,然后再使用alter为列添加主键 查看表结构 4)为表添加数据 1---正常数据 2---主键…

51c视觉~3D~合集3

我自己的原文哦~ https://blog.51cto.com/whaosoft/13954440 #SceneTracker 在4D时空中追踪万物!国防科大提出首个长时场景流估计方法 本篇分享 TPAMI 2025 论文​​SceneTracker: Long-term Scene Flow Estimation Network​​,国防科大提出首…

【2025年电工杯数学建模竞赛A题】光伏电站发电功率日前预测问题+完整思路+paper+源码

本人7年数学建模竞赛经验,历史获奖率百分之百。团队成员都是拿过全国一等奖的硕博,有需要数模竞赛帮助的可以私信我 本题主要涉及数据预测,数据分析,机器学习,时间序列等知识 1.问题背景与问题描述 2.解题思路分析 …

OpenCv高阶(十九)——dlib关键点定位

文章目录 一、什么是人脸关键点定位?二、关键点模型的下载及关键信息的理解三、dlib关键点定位的简单实现(1)导入必要的库(2)从指定路径读取图像文件(3)创建dlib的正面人脸检测器对象&#xff0…

BUUCTF之[ACTF2020 新生赛]BackupFile

打开环境就一句话 找出源文件! 结合题目名字&#xff1a;BackupFile 先用dirsearct扫描网站文件 发现一个index.php.bak ,拼接url下载 打开发现php代码 <?php include_once "flag.php";if(isset($_GET[key])) {$key $_GET[key];if(!is_numeric($key)) {exit…

头歌之动手学人工智能-Pytorch 之autograd

目录 第1关&#xff1a;Variable 任务描述 编程要求 测试说明 没有伟大的愿望&#xff0c;就没有伟大的天才。——巴尔扎克开始你的任务吧&#xff0c;祝你成功&#xff01; 第2关&#xff1a;Variable 属性 任务描述 编程要求 测试说明 真正的科学家应当是个幻想家&a…

Kafka集成Flume/Spark/Flink(大数据)/SpringBoot

Kafka集成Flume Flume生产者 ③、安装Flume&#xff0c;上传apache-flume的压缩包.tar.gz到Linux系统的software&#xff0c;并解压到/opt/module目录下&#xff0c;并修改其名称为flume Flume消费者 Kafka集成Spark 生产者 object SparkKafkaProducer{def main(args:Array[S…

Scratch节日 | 拯救屈原 | 端午节

端午节快乐&#xff01; 这款特别为端午节打造的Scratch游戏 《拯救屈原》&#xff0c;将带你走进古代中国&#xff0c;感受历史与文化的魅力&#xff01; &#x1f3ee; 游戏介绍 扮演勇敢的探险者&#xff0c;穿越时空回到古代&#xff0c;解锁谜题&#xff0c;完成任务&…