關于 MCP 的理論知識學習

文章目錄

    • 1. 寫在最前面
    • 2. 基本概念
      • 2.1 Why MCP
        • 2.1.1 大模型訪問的局限
        • 2.1.2 過渡階段—Function Call
        • 2.1.3 當前階段— MCP
    • 3. 碎碎念
    • 4. 參考資料

1. 寫在最前面

最近有一項任務是寫舊版本遷移到新版本的支持文檔,文檔的編寫是借助于 cursor 幫忙寫的。但是實現的方式不夠優雅,因為 cursor 還不支持直接訪問公司的 confluence 文檔站,筆者只能:

  • 首先,從 confluence 上下載兩個不同版本的 api 文檔說明

  • 然后,將轉為 pdf 格式的文檔通過 agent 的方式,讓 cursor 可以瀏覽到

  • 最后,cursor 再針對兩份文檔異同,來實現一個舊文檔遷移到新文檔的說明

這個方式雖然也能完成需求,但是總歸實現的方式還需要人工干預,不夠簡潔。最近 MCP 的概念很熱,并且借助這個功能,似乎能夠簡化筆者類似需求的實現,剛好趁著五一節前的大塊空余時間,先來理解一下基本概念。

2. 基本概念

為了避免梳理和記憶的內容同質化,在理解 MCP 的概念的時候,筆者盡量使用自己能夠理解和記憶的方式進行,故很多地方可能存在出入,如果有不準確的地方,歡迎指出!

2.1 Why MCP

2.1.1 大模型訪問的局限

在使用 cursor coding 的時候,因為只需要訪問項目內的文件,同時現在也支持運行大部分的 Terminal 命令,所以大部分的時候,是能夠滿足需求的。

但是在讓 cursor 訪問項目以為的文件,就不行了,參考下面的問答:

在這里插入圖片描述

2.1.2 過渡階段—Function Call
  • 未使用 function Call

    在這里插入圖片描述

  • 使用 function Call

    在這里插入圖片描述

大模型的 function Call 功能通常指的是在使用大語言模型(如 GPT 系列)時,模型能夠調用特定的功能或接口來執行某些操作。這種功能可以增強模型的交互性和實用性,使其能夠更好地滿足用戶的需求。

注:function call 作為過渡階段的原因在于 function call 平臺依賴性強,不同 LLM 平臺的 function call API 實現差異較大。例如,OpenAI 的函數調用方式與 Google 的不兼容,開發者在切換模型時需要重寫代碼,增加了適配成本。除此之外,還有安全性,交互性等問題。

2.1.3 當前階段— MCP

MCP (Model Context Protocol,模型上下文協議)定義了應用程序和 AI 模型之間交換上下文信息的方式。這使得開發者能夠以一致的方式將各種數據源、工具和功能連接到 AI 模型(一個中間協議層)。

在這里插入圖片描述

注:MCP 可以理解成電腦轉接頭是用來連接不同類型的接口或端口,以便于設備之間的互聯和兼容。比如

  • USB-C 轉 USB-A:將 USB-C 設備連接到 USB-A 端口(如傳統電腦)。
  • USB-C 轉 HDMI:將 USB-C 設備連接到 HDMI 顯示器或電視。
  • USB-C 轉 VGA:將 USB-C 設備連接到 VGA 顯示器。

筆者個人的簡單理解, 「MCP」可以理解成類似于「GRPC」協議的一種協議標準,使用這個協議實現的 server 、client 可以很方便的兼容和適配到其他的大模型應用上。

大模型訪問數據的需求是天然存在的

只不過 MCP 協議將數據連接到模型的這個環節可以更智能更統一。Anthropic 基于這樣的痛點設計了 MCP,充當 AI 模型的「萬能轉接頭」,讓 LLM 能輕松的獲取數據或者調用工具。

3. 碎碎念

大概理解了一下概念,想要動手實踐,假期前的最后幾小時可能不允許了,所以就先記錄到這里吧,希望大家假期愉快吖:

  • 人生下來不是為了拖著鎖鏈,而是為了展開雙翼。

  • 不論世界如何,都要向著陽光野蠻生長,成為照亮世界的大人。

  • 成年人的煩惱,和誰說好像都不合適,要學會自我消化,想開、看開、放開。

4. 參考資料

  • Introduction - Model Context Protocol

  • MCP(Model Context Protocol) ,一篇就夠了

  • 回調函數 - 維基百科,自由的百科全書

  • 如何使用 Function Calling 功能_大模型服務平臺百煉(Model Studio)-阿里云幫助中心

  • Introduction - Model Context Protocol

  • Core architecture - Model Context Protocol

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/78931.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/78931.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/78931.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++學習之路,從0到精通的征途:List類的模擬實現

目錄 一.list的介紹 二.list的接口實現 1.結點 2.list結構 3.迭代器 (1)begin (2)end 4.修改 (1)insert (2)push_back (3)push_front &#xff0…

【游戲ai】從強化學習開始自學游戲ai-2 使用IPPO自博弈對抗pongv3環境

文章目錄 前言一、環境設計二、動作設計三、狀態設計四、神經網路設計五、效果展示其他問題總結 前言 本學期的大作業,要求完成多智能體PPO的乒乓球對抗環境,這里我使用IPPO的方法來實現。 正好之前做過這個單個PPO與pong環境內置的ai對抗的訓練&#…

計算機考研精煉 操作系統

第 14 章 操作系統概述 14.1 基本概念 14.1.1 操作系統的基本概念 如圖 14 - 1 所示,操作系統是計算機系統中的一個重要組成部分,它位于計算機硬件和用戶程序(用戶)之間,負責管理計算機的硬件資源,為用戶和…

什么是基爾霍夫第一定律

基爾霍夫第一定律(Kirchhoffs First Law),也稱為基爾霍夫電流定律(Kirchhoffs Current Law,簡稱 KCL),是電路分析中最基礎的定律之一。它描述了電路中電流的守恒特性,適用于任何集總…

解決 RN Switch 組件在安卓端樣式很丑的問題

解決此種問題的方式有很多 可以導入原生庫react-native-switch 切圖 (會缺少動畫) 使用 js 組件 這里使用 js 繪制組件(原生體驗)解決此類問題 Switch.tsx import React, { useEffect, useRef, useState } from react; import { Animated, Pressabl…

【AI】【MCP】搭建私人王炸MCP自動化工作流

目錄 一、什么是MCP 二、MCP大集合 三、準備工作 3.1 安裝node.js 3.2 安裝vscode 3.3 安裝cline插件 3.3.1 安裝 3.3.2 配置Cline 四、配置MCP服務 4.1 Search-mcp服務 4.2 playwright-mcp 服務 前言:夢想組合,輕松辦公,告別手動&a…

Git 實操:如何使用交互式 Rebase 移除指定提交(真實案例分享)

在日常開發中,有時候我們提交了一些不想保留的記錄,比如測試代碼、錯誤的功能提交等。 ?? 在操作 4. 強制推送到遠程倉庫前的注意事項 強制推送(git push --force 或 git push -f)確實很強大但也危險,因為它會重寫…

11.Excel:函數

一 函數是什么 函數是定義好的公式。 單元格內輸入sum然后tab,框選要求和的范圍,然后回車鍵。 補充:公式。 公式以開頭,可以用于計算,返回數值。 分別點擊各個數值,中間用加號連接。這樣很不方便&#xff…

Springboot使用ThreadLocal提供線程局部變量,傳遞登錄用戶名

文章目錄 概述使用創建ThreadLocalUtil工具類在登錄攔截器中使用ThreadLocal存儲登錄用戶名在/userInfo接口中獲取登錄用戶名 注意事項參考視頻 概述 使用 創建ThreadLocalUtil工具類 utils/ThreadLocalUtil.java package org.example.utils;/*** ThreadLocal 工具類*/ Supp…

1399. 統計最大組的數目

1399. 統計最大組的數目 題目鏈接&#xff1a;1399. 統計最大組的數目 代碼如下&#xff1a; class Solution { public:int countLargestGroup(int n) {int res 0;unordered_map<int, int> um;int maxValue 0;for (int i 1;i < n;i) {string value to_string(i);…

VS Code 插件Git History Diff 使用

右上角 查看單個文件記錄

數學建模論文手的學習日常01

目錄 一.要寫的內容&#xff1a; 二.文章標題&#xff1a; 三.摘要&#xff08;非常非常非常重要&#xff09; 四、關鍵詞&#xff1a; 五、問題重述 六、模型假設 七、符號說明 八、模型的建立與求解 九、模型的分析與檢驗 十、模型的評價、改進與推廣 十一、參考…

深度學習: AI 體育領域

一、引言 在科技與體育深度融合的當下&#xff0c;AI 體育逐漸成為推動體育行業變革的重要力量。深度學習憑借其強大的數據分析與模式識別能力&#xff0c;為 AI 體育帶來了全新的發展機遇。從運動員動作分析到智能健身指導&#xff0c;從賽事預測到運動康復輔助&#xff0c;深…

在 Ubuntu24.04 LTS 上 Docker 部署英文版 n8n 和 部署中文版 n8n-i18n-chinese

一、n8n 簡介 n8n 是一個低代碼&#xff08;Low-Code&#xff09;工作流自動化平臺&#xff0c;可以幫助用戶以非常簡單的方式創建自動化流程&#xff0c;連接不同的應用程序和服務。n8n的設計理念是為了讓復雜的工作流變得簡單易用&#xff0c;同時也支持高度的自定義&#xf…

《系統分析師-第三階段—總結(八)》

背景 采用三遍讀書法進行閱讀&#xff0c;此階段是第三遍。 過程 本篇總結第15章的內容 第15章 總結 系統運行與維護&#xff0c;系統經過測試交付之后&#xff0c;進入運行維護階段&#xff0c;維護分為系統運行、故障維護、系統評價和系統相關的策略。 疑問&#xff1a;…

LeetCode 1295.統計位數為偶數的數字:模擬

【LetMeFly】1295.統計位數為偶數的數字&#xff1a;模擬 力扣題目鏈接&#xff1a;https://leetcode.cn/problems/find-numbers-with-even-number-of-digits/ 給你一個整數數組 nums&#xff0c;請你返回其中位數為 偶數 的數字的個數。 示例 1&#xff1a; 輸入&#xff1…

DDD是什么?電商系統舉例

一、DDD的基本概念 領域驅動設計&#xff08;Domain-Driven Design&#xff0c;簡稱DDD&#xff09;是由Eric Evans提出的一種軟件開發方法論&#xff0c;旨在應對復雜業務系統的設計和實現。它的核心思想是將軟件的設計與業務領域緊密結合&#xff0c;通過深入理解業務需求&a…

K8S ConfigMap 快速開始

一、什么是 ConfigMap&#xff1f; ConfigMap 是 Kubernetes 中用于存儲非敏感配置數據的 API 對象&#xff0c;支持以鍵值對&#xff08;Key-Value&#xff09;或文件的形式存儲配置&#xff0c;允許將配置與鏡像解耦&#xff0c;實現配置的集中管理和動態更新。 二、主要用…

Prometheus使用Recoding Rules優化性能

通過PromQL可以實時對Prometheus中采集到的樣本數據進行查詢&#xff0c;聚合以及其它各種運算操作。而在某些PromQL較為復雜且計算量較大時&#xff0c;直接使用PromQL可能會導致Prometheus響應超時的情況。這時需要一種能夠類似于后臺批處理的機制能夠在后臺完成這些復雜運算…

C++ RAII 編程范式詳解

C RAII 編程范式詳解 一、RAII 核心概念 RAII&#xff08;Resource Acquisition Is Initialization&#xff0c;資源獲取即初始化&#xff09; 是 C 的核心編程范式&#xff0c;通過將資源生命周期與對象生命周期綁定實現安全、自動化的資源管理。 核心原則&#xff1a; 資源…