通过Appium理解MCP架构

MCP即Model Context Protocol(模型上下文协议),是由Anthropic公司于2024年11月26日推出的开放标准框架,旨在为大型语言模型与外部数据源、工具及系统建立标准化交互协议,以打破AI与数据之间的连接壁垒。
MCP架构与Appium有一定相似性,主要体现在以下方面: - C/S架构:MCP采用客户端-服务器模型,分为协议层和传输层。Appium同样基于C/S架构,由客户端和服务器两部分组成。在MCP中,客户端嵌入在LLM应用中负责发送请求并接收响应,服务器是轻量级程序,通过标准化接口暴露功能。Appium的客户端负责编写和执行测试脚本,服务器是基于Node.js的HTTP服务器,负责接收客户端请求,解析并在移动设备上执行相应操作。 - 消息通信:MCP在传输层使用JSON - RPC 2.0进行消息交换,支持标准输入输出和HTTP/SSE等传输模式。Appium客户端与服务器端通过JSON Wire Protocol进行通信。两者都通过特定的协议来实现客户端和服务器之间的消息传递,以完成相应的任务。 不过,二者也有不同之处。MCP主要用于AI智能体与外部数据源、工具的交互,让AI模型能连接并访问外部资源。而Appium是用于移动应用的UI自动化测试,主要针对移动设备上的应用程序进行测试操作。
在这里插入图片描述
MCP Server具有提供资源、工具和** prompts(提示)**三大能力。其中最常用的功能通常是提供工具,原因是它能让LLM与外界系统交互,完成如爬取网页内容、获取天气信息等复杂任务,极大地扩展了LLM的应用范围和实际能力。
Cursor使用MCP来允许AI访问和处理多种数据源,包括本地文件、远程API和数据库等。 MCP Server的好处包括: - 安全连接:无需将API密钥等敏感信息直接提供给LLM,由MCP Server自己控制资源访问。- 受控数据流:所有数据交互通过标准化协议进行,降低数据泄露风险。- 选择性授权:开发者能精确控制AI可访问的资源范围。 以下是一些MCP Server的实例: - PostgreSQL管家:让AI能够查询数据库,如电商运营者可通过AI自动生成SQL并返回可视化图表,实现“查上周北京销量Top10”等功能。- GitHub指挥官:可实现代码库智能管理,如开发者说“合并dev分支到master”,AI自动创建PR、检查冲突、生成更新日志。- 文件魔术师:用于全自动文件处理,例如整理会议录音时,AI自动转文字,提取待办事项,生成会议纪要.md文件。
MCP主要使用JSON - RPC 2.0进行消息通信,支持以下通信方式:

  • 标准输入输出:适用于简单的本地测试和开发场景,通过命令行将请求输入到MCP Server,并从标准输出获取响应。 - HTTP:可用于客户端与服务器在不同主机或网络环境下的通信,能方便地与各种Web应用和服务集成,通过HTTP请求发送消息,服务器以HTTP响应返回结果。 - Server - Sent Events(SSE):用于实现服务器向客户端推送实时更新,适用于需要及时获取模型处理结果或状态变化的场景,如长轮询或实时交互的应用。 在实际应用中,HTTP是较为常用的通信方式。因为它具有广泛的兼容性和成熟的生态系统,几乎所有的现代编程语言和框架都支持HTTP通信,便于开发人员进行集成和扩展,能轻松实现客户端与服务器之间的请求和响应交互,适用于多种应用场景,包括Web应用、移动应用等与MCP Server进行通信的场景。

MCP和Function call的区别在这里插入图片描述

MCP和Function Call有以下区别:

  • 复杂度:MCP是复杂的协议,涉及结构化数据交换和精细流程控制;Function Call相对简单,只是模型发出的简单函数调用指令。 - 上下文管理能力:MCP能深度管理对话上下文,记住用户偏好和对话历史;Function Call对上下文理解有限,主要关注函数调用本身。 - 数据交换形式:MCP支持复杂结构化数据交换,可进行多轮对话,交换用户偏好、状态信息等;Function Call通常只是简单地传递函数调用所需的参数。 - 功能特性:MCP支持多轮对话、状态管理、错误处理、复杂业务逻辑等复杂功能;Function Call主要用于执行简单的、预定义的功能,如获取信息、执行简单操作。 - 适用场景:MCP适用于智能助手、复杂业务流程、需要多轮交互的场景;Function Call适用于简单的信息查询、工具调用等简单任务。 MCP的优势在于能处理复杂任务,通过多轮对话和上下文管理,可实现更智能的交互。它提供标准化框架,利于构建开放的插件化AI生态,让AI模型便捷连接各类外部数据源和工具。不过,MCP也存在生态不成熟,第三方支持工具少,性能有待验证,大规模并发调用可能有延迟瓶颈,以及模型支持程度不高的问题。 Function Call的优势是简单直接,易于实现和理解,能方便地扩展模型功能,让模型利用外部工具完成基本任务。其劣势是在处理复杂任务时较为繁琐,需手动管理对话状态和上下文,且缺乏统一标准,不同LLM供应商的实现方式存在差异。

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

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

相关文章

网页版五子棋项目的问题处理

文章目录 config.WebSocketConfig将键值对加⼊OnlineUserManager中线程安全、锁ObjectMapper来处理json针对多开情况的判定处理连接关闭、异常(玩家中途退出)后的不合理操作游戏大厅数据更新 config.WebSocketConfig 把MatchAPI注册进去 • 在addHandle…

【初探数据结构】归并排序与计数排序的序曲

💬 欢迎讨论:在阅读过程中有任何疑问,欢迎在评论区留言,我们一起交流学习! 👍 点赞、收藏与分享:如果你觉得这篇文章对你有帮助,记得点赞、收藏,并分享给更多对数据结构感…

算法刷题记录——LeetCode篇(8.7) [第761~770题](持续更新)

更新时间:2025-03-30 算法题解目录汇总:算法刷题记录——题解目录汇总技术博客总目录:计算机技术系列博客——目录页 优先整理热门100及面试150,不定期持续更新,欢迎关注! 763. 划分字母区间 给你一个字…

Pod 网络与 CNI 的作用

在 Kubernetes 中,Pod 网络 是实现容器间通信的核心机制,每个 Pod 拥有独立的 IP 地址,可直接跨节点通信。CNI(Container Network Interface) 是 Kubernetes 的网络插件标准,负责为 Pod 分配 IP、配置网络规…

使用keepalived结合tomcat和nginx搭建三主热备架构

角色主机名软件IP地址用户client172.25.250.90keepalivedVIP172.25.250.100keepalivedVIP172.25.250.101keepalivedVIP172.25.250.102masterserverAkeepalived, nginx172.25.250.30backupserverBkeepalived, nginx172.25.250.31backupserverCkeepalived, nginx172.25.250.32web…

STRUCTBERT:将语言结构融入预训练以提升深度语言理解

【摘要】最近,预训练语言模型BERT(及其经过稳健优化的版本RoBERTa)在自然语言理解(NLU)领域引起了广泛关注,并在情感分类、自然语言推理、语义文本相似度和问答等各种NLU任务中达到了最先进的准确率。受到E…

leetcode_977. 有序数组的平方_java

977. 有序数组的平方https://leetcode.cn/problems/squares-of-a-sorted-array/ 1.题目 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例 1: 输入:nums [-4,-1…

Nginx—nginx.conf 配置结构详解

一、nginx.conf 配置结构 函数 说明 main 全局配置 event 配置工作模式以及连接数 http http模块相关配置 server 虚拟主机配置,可以有多个 location 路由规则,表达式 upstream 集群、内网服务器(负载均衡也在这里边配&#xff…

斐波那契数列----C语言

关于斐波那契 已知: 问题背景:一对兔子从第3个月开始每月生一对新兔子,新兔子同样在第3个月开始繁殖。 关键观察: 第1个月:1对(初始兔子)。 第2个月:1对(未成熟&#…

vulhub靶场—— Tomcat8

目录 一、漏洞描述 二、靶场搭建 三、漏洞复现 1、弱密码 2、文件上传 一、漏洞描述 环境描述: Tomcat 支持后台部署 war 文件,可以直接将 webshell 部署到 web 目录下。tomcat 默认的管理页面 manager 使用 basic 认证用户名和密码登录&#xff0…

使用 Spring AI Aliabab Module RAG 构建 Web Search 应用

使用 Spring AI Alibaba 构建大模型联网搜索应用 Spring AI 实现了模块化 RAG 架构,架构的灵感来自于论文“模块化 RAG:将 RAG 系统转变为类似乐高的可重构框架”中详述的模块化概念。 Spring AI 模块化 RAG 体系 总体上分为以下几个步骤: …

一些练习 C 语言的小游戏

一些练习 C 语言的小游戏 — 1. 猜数字游戏 描述:程序随机生成一个数字,玩家需要猜测这个数字,并根据提示(太高或太低)调整猜测,直到猜中为止。 功能点: 随机数生成 (rand() 函数)。循环和…

关于中文编程的一些思考

随着信息化与数字化的发展,工业4.0时代亦将徐徐到来。当计算机的普及程度越来越高,数据的产生、传输、处理等变得越来越快、越来越大量的时候,人们想要自动化办公的愿望也越来越强烈,希望能将自身从耗费脑力但是重复繁琐的工作中解…

golang 日志log与logrus

目录 一、Go 标准库 log 详解 1. 功能特点 2. 常用函数 3. 示例代码 4. 优势和局限 二、第三方库 logrus 详解 1. 功能特点 2. 核心功能 3. 示例代码 4. 优势和扩展性 三、总结 1. 何时选择 log? 2. 何时选择 logrus? 3. 对比总结 一、Go 标…

消费品行业创新创业中品类创新与数字化工具的融合:以开源 AI 智能客服、AI 智能名片及 S2B2C 商城小程序为例

摘要: 本文聚焦于消费品行业的创新与创业,深入探讨“选择大于努力”这一观点,强调品类选择在品牌发展中的关键作用。同时,详细分析了品类创新对于新消费品牌崛起以及传统品牌转型的重要意义。在此基础上,引入开源 AI 智…

Razer macOS v0.4.10快速安装

链接点这里下载最新的 .dmg 文件。将下载的 .dmg 映像文件拖入 应用程序 文件夹中。若首次打开时出现安全警告【什么扔到废纸篓】,这时候点击 Mac 的“系统偏好设置”-> “安全性与隐私”-> “通用”,然后点击底部的 “打开”。【或者仍然打开】 对…

Flask项目部署:Flask + uWSGI + Nginx

目录 1,网络架构 2,环境安装 2.1,安装yum:Shell软件包管理器 2.2 安装python 2.3 安装uWSGI 2.4 安装Flask 3,上传工程包到服务器,打包Flask项目 4,创建和配置 uwsgi 配置文件 uwsgi.ini 4.1配置文件 4.2配置文件注释详解 5,启动服务 6,安装nginx 7,nginx配置 8,…

[FPGA基础学习]实现流水灯与按键暂停

FPGA实现LED流水灯 1.vscode的安装和使用 vscode下载 Visual Studio Code - Code Editing. Redefined vscode插件(Verilog-HDL/SystemVerilog)下载 quartus绑定vscode 2.用6个LED完成周期为1秒的跑马灯效果 流水灯模块设计 时钟输入 DE2-115开发板…

【TensorRT】TensorRT从安装到推理——Python 环境下 MobileNetV4 三分类任务

我想开发一个基于深度学习的分类小软件,逐渐了解到了TensorRT在模型推理速度上的优势,经过一下午资料的查找实现了将onnx模型转为TensorRT格式模型的推理及测试过程。将实现过程记录下来方便日后查看。 本文实验设备是MX350显卡 2G显存 一 、安装Tenso…

1.两数之和(Java)

1. 题目描述 LeetCode 1. 两数之和(Two Sum) 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回它们的索引。 示例 1: 输入:nums [2,7,11,15], target 9 …