通過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.pswp.cn/web/74027.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/74027.shtml
英文地址,請注明出處:http://en.pswp.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 …