簡單理解MCP:AI如何使用工具


簡單理解MCP:AI如何使用工具(以天氣/新聞服務為例)
在這里插入圖片描述

你是否注意到人工智能(AI)助手正變得越來越智能?它們不再僅僅是聊天,還能執行實際操作,比如查詢天氣、在線搜索,甚至預訂會議。這通常涉及到使用外部的“工具”(如API或函數)。

但是,一個AI(比如驅動你最喜歡的聊天應用的那個)是如何可靠地連接并使用由不同開發者創建的各種工具呢?這就是模型上下文協議 (Model content Protocol, MCP) 發揮作用的地方。
在這里插入圖片描述

MCP解決的問題

想象一下,你試圖將來自不同國家的電器插頭插入你家的墻上插座——你需要各種轉換器,因為它們的插頭標準各不相同!類似地,不同的AI模型和不同的工具提供者可能有各自獨特的“溝通”方式。將它們連接起來可能會變得混亂和復雜。

MCP就像一個通用適配器或一種標準語言。它定義了一套通用的規則,規定了AI模型、你使用的應用程序(客戶端)以及工具提供者(MCP服務器)應該如何交互。

認識參與者

為了理解工作流程,讓我們明確各個角色:

  1. AI (大語言模型 - LLM): 這是“大腦”(比如來自OpenAI、Anthropic、Google等的模型)。它理解你的請求,并決定是否需要工具來回答。
  2. MCP 服務器 (MCP Server): 這是“工具箱提供者”。它是一個提供一個或多個工具的服務。在我們的例子中,想象一個“天氣與新聞服務”,它提供獲取天氣預報和新聞頭條的工具。
  3. 客戶端 (Client): 這是正在交互的應用程序(例如,一個特殊的聊天界面、一個編碼助手)。它充當中間人,將你和AI連接到MCP服務器(工具箱)。重要的是,通常是你(或應用程序開發者)告訴客戶端應該連接到哪個(或哪些)MCP服務器。 AI不決定使用哪個服務器,只決定使用已連接服務器上的哪個工具

在這里插入圖片描述

MCP 工作流程:分步詳解(以天氣/新聞為例)

讓我們來看看當你通過客戶端應用向AI助手提問時,事情是如何運作的,比如問:“明天倫敦的天氣怎么樣?還有,最新的頭條新聞是什么?”

第1步:客戶端連接到MCP服務器

  • 首先,你正在使用的客戶端應用程序需要與你(或應用程序)指定的“天氣與新聞服務”MCP服務器建立連接。
  • 可以想象成: 把你的應用程序插入天氣與新聞服務指定的端口。MCP定義了如何安全可靠地建立這種連接。

第2步:客戶端發現可用工具

  • 一旦連接成功,客戶端會詢問MCP服務器:“嘿,你提供哪些工具?”
  • 服務器會按照MCP標準回復一個列表。這個列表包含:
    • 工具名稱(例如,get_weather_forecast, get_latest_news)。
    • 描述(例如,“為指定城市提供天氣預報”,“獲取當前熱門新聞頭條”)。
    • 所需輸入(例如,get_weather_forecast 需要一個 city 名稱)。
  • 可以想象成: 閱讀機器上按鈕的標簽,看看每個按鈕是干什么用的。

第3步:客戶端為AI準備請求

  • 你在客戶端應用中輸入你的請求:“明天倫敦的天氣怎么樣?還有,最新的頭條新聞是什么?”
  • 客戶端接收你的請求,并將其與從天氣與新聞服務器收到的可用工具列表(來自第2步)打包在一起。它將這個完整的包裹發送給AI (LLM)。

第4步:AI決定是否以及如何使用工具

  • AI分析你的請求(“倫敦天氣”、“頭條新聞”)。
  • 它查看可用的工具(get_weather_forecast, get_latest_news)及其描述。
  • 它判斷:
    • “要回答天氣部分,我需要 get_weather_forecast 工具,并且 city 輸入應該是’倫敦’。”
    • “要回答新聞部分,我需要 get_latest_news 工具(這個可能不需要特定輸入)。”
  • 然后,AI將指令發送回客戶端,大致意思是:“請使用 get_weather_forecast 工具,參數 city=倫敦,并使用 get_latest_news 工具。” MCP標準化了AI傳達這個決定的方式。

第5步:客戶端通過MCP執行工具

  • 客戶端收到來自AI的指令。
  • 然后,它使用標準的MCP格式 (call_tool) 向天氣與新聞MCP服務器發出正式請求:
    • “運行 get_weather_forecast,輸入 city='倫敦'。”
    • “運行 get_latest_news。”
  • 可以想象成: 客戶端按照AI的指示按下了機器上的特定按鈕。

第6步:MCP服務器運行工具并返回結果

  • 天氣與新聞服務器收到 call_tool 請求。
  • 它運行其內部邏輯(例如,調用其天氣API合作伙伴、查詢其新聞數據庫)。
  • 它收集結果(倫敦的天氣預報詳情、新聞標題列表)。
  • 它將這些結果再次按照MCP標準打包,發送回客戶端。

第7步:AI生成最終回答

  • 客戶端從服務器收到工具執行的結果(例如,原始天氣數據、新聞文章片段)。
  • 它將這些結果發送回AI (LLM)。
  • AI結合原始問題和工具結果,為你生成一個最終的、易于理解的回答:
    “好的,倫敦明天的天氣預報是部分多云,最高氣溫18℃。最新的頭條新聞包括…”

為什么MCP很重要?

MCP看起來可能有很多來回傳遞,但它的價值是巨大的:

  • 標準化 (Standardization): 大家都說同一種語言。客戶端、服務器和LLM都知道如何相互溝通。
  • 互操作性 (Interoperability): 你可以輕松地更換不同的AI模型或添加新的工具服務器,而無需從頭開始重建一切。一個為使用MCP而構建的客戶端理論上可以與任何兼容MCP的服務器對話。
  • 簡化開發 (Simplicity for Developers): 雖然涉及一些步驟,但擁有一個標準使得開發者能夠更容易地構建可以可靠協作的客戶端和服務器。

本質上,MCP充當了關鍵的管道和線路,使得AI生態系統的不同部分能夠順暢連接和協作,從而實現了我們在現代AI應用中看到的復雜的工具使用能力。它幫助AI從簡單的聊天,進化到能夠真正事情的階段。

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

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

相關文章

護網奇談: 紅隊工程師手記

零、引言:在演練中活著,在現實中消失 人們常說,護網是網絡安全界的“大閱兵”。 每年一次,紅藍對陣,政企聯動,戰鼓擂響,態勢大屏高掛,PPT如潮,報告成山。 你在屏幕前看…

機器翻譯與數據集

機器翻譯與數據集 語言模型是自然語言處理的關鍵,而機器翻譯是語言模型最成功的基準測試。因為機器翻譯正是將輸入序列轉換成輸出序列的序列轉換模型(sequence transduction)的核心問題。序列轉換模型在各類現代人工智能應用中發揮著至關重要…

基于 HTML 和 CSS 實現的 3D 翻轉卡片效果

一、引言 在網頁設計中,為了增加用戶的交互體驗和視覺吸引力,常常會運用一些獨特的效果。本文將詳細介紹一個基于 HTML 和 CSS 實現的 3D 翻轉卡片效果,通過對代碼的剖析,讓你了解如何創建一個具有立體感的卡片,在鼠標…

C++ 中二級指針的正確釋放方法

C 中二級指針的正確釋放 一、什么是二級指針? 簡單說,二級指針就是指向指針的指針。 即: int** p;它可以指向一個 int*,而 int* 又指向一個 int 類型的變量。 常見應用場景 動態二維數組(例如 int** matrix&#x…

大數據平臺與數據倉庫的核心差異是什么?

隨著數據量呈指數級增長,企業面臨著如何有效管理、存儲和分析這些數據的挑戰。 大數據平臺和 數據倉庫作為兩種主流的數據管理工具,常常讓企業在選型時感到困惑,它們之間的界限似乎越來越模糊,功能也有所重疊。本文旨在厘清這兩種…

Winform(11.案例講解1)

今天寫兩個案例,用于更好的理解控件的使用 在寫之前先寫一個類 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _1.案例講解 { internal class Student { public string …

Spring AMQP源碼解析

目錄 channel和connection的區別 自動裝配RabbitAutoConfiguration 消息發送流程 獲取connection對象 獲取channel對象 AMQConnection讀取frame幀并回調publishconfirm和publishreturn MainLoop線程監聽 執行回調 channel和connection的區別 Spring AMQP 是 Spring 框…

Linux系統安裝PaddleDetection

一、安裝cuda 1. 查看設備 先輸入nvidia-smi,查看設備支持的最大cuda版本,選擇官網中支持的cuda版本 https://www.paddlepaddle.org.cn/install/quick?docurl/documentation/docs/zh/install/conda/linux-conda.html 2. 下載CUDA并安裝 使用快捷鍵…

Linux系統中的時間同步服務

1.時間同步:多主機協作工作,時間應該保持一致,如加密協議、日志、集群等,利用NTP(Network Time Protocol)協議使得各個主機時間達到同步。 ntp:將系統時鐘和世界協調時UTC同步,精度在局域網內可…

【Linux筆記】系統的延遲任務、定時任務極其相關命令(at、crontab極其黑白名單等)

一、延時任務 1、概念 延時任務(Delayed Jobs)通常指在指定時間或特定條件滿足后執行的任務。常見的實現方式包括 at 和 batch 命令,以及結合 cron 的調度功能。 2、命令 延時任務的命令最常用的是at命令,第二大節會詳細介紹。…

軟考 系統架構設計師系列知識點 —— 黑盒測試與白盒測試(1)

本文內容參考: 黑盒測試和白盒測試詳解-CSDN博客 軟件測試中的各種覆蓋(Coverage)詳解-CSDN博客 特此致謝! 零、概述 黑盒測試又名為功能測試,主要目的是發現軟件設計的需求或者是軟件設計規格說明書中的錯誤缺陷。…

yolov11 epoch100輪 訓練筆記5 kaggle comet

Football Players Detection using YOLOV11 | Kaggle !pip install comet_ml import comet_mlcomet_ml.login(project_name"c") Comet - Build Better Models Faster yolov11訓練 100輪一眨眼訓練完了 然而comet接不到yolo的sdk 優秀 訓練17輪map就0.99了 v5訓練100…

Ubuntu K8S(1.28.2) 節點/etc/kubernetes/manifests 不存在

Ubuntu K8S(1.28.2) 節點/etc/kubernetes/manifests 不存在 在查看日志(journalctl -xefu kubelet)時發現各節點/etc/kubernetes/manifests 不存在,但主節點沒有異常 21080 file.go:104] "Unable to read config path" err"…

neo4j基礎操作:命令行增刪改查

目錄 一,Neo4j的增 1.1.新增節點 1.2.新增關系 1.2.1創建節點時,創建關系 1.2.2在已有的節點上,創建關系 二,Neo4j的刪除 2.1刪除節點 2.1.1無關系的節點刪除 2.1.2 有關系的節點刪除 三,節點修改 3.1 給節點…

rollout 是什么:機器學習(強化學習)領域

rollout 是什么:機器學習(強化學習)領域 指從特定初始狀態開始,按照某個策略或模型進行一系列動作和狀態轉移,直到達到終止狀態或預定時間步數 。比如: 迷宮任務:強化學習代理在迷宮中,從起始點出發,按某策略(如隨機選方向走)進行移動,直到找到出口或達到最大移動…

stm32之TIM定時中斷詳解

目錄 1.引入1.1 簡介1.2 類型1.2.1 基本定時器1.2.2 通用定時器1. 觸發控制單元 (Trigger Control Unit)2. 輸入捕獲單元 (Input Capture Unit)3. 輸出比較單元 (Output Compare Unit)4. CNT 計數器5. 自動重裝載寄存器 (ARR)6. 預分頻器 (PSC)7. 中斷與 DMA 事件8. 剎車功能 (…

centos8源碼安裝openssl

前言: 在使用python3.11部署運行FastAPI時,由于其uvicorn需要使用openssl模塊,導致沒有安裝openssl的服務器項目運行不起來. 【第一步】 我的網盤下載openssl-1.1.1n.tar.gz 提取碼: vay9 【第二步】 上傳到服務器解壓 tar -zxvf opens…

vue3 動態修改系統title

vue3 動態修改系統title 修改前 修改后 1、封裝 useTitle 工具函數 創建組合式 API,通過 watchEffect 監聽標題變化: // composables/useTitle.js import { ref, watchEffect } from vue;export function useTitle(initialTitle) {const title r…

比較兩種判斷相同二叉樹的方法:遞歸與遍歷序列對比

在二叉樹操作中,判斷兩棵樹是否相同是一個常見的問題。本文將對比兩種不同的解決方案:遞歸法和遍歷序列對比法,分析它們的優缺點,并探討為何遞歸法是更優的選擇。 問題描述 給定兩棵二叉樹的根節點 p 和 q,判斷它們是…

從0開始學習大模型--Day01--大模型是什么

初識大模型 在平時遇到問題時,我們總是習慣性地去運用各種搜索引擎如百度、知乎、CSDN等平臺去搜索答案,但由于搜索到的內容質量參差不齊,檢索到的內容只是單純地根據關鍵字給出內容,往往看了幾個網頁都找不到答案;而…