鍵.png)
深入理解 ASP.NET Core Web API:從哲學(xué)到一對多模型(Models & 1:N 關(guān)系)
但是有了 MCP,它就可以通過調(diào)用工具來回答這個(gè)問題了:
從宏觀上看,有以下幾個(gè)組件:
在這個(gè)例子中,MCP 客戶端和 MCP 服務(wù)器都存在于用戶的桌面上。桌面 Claude 應(yīng)用是 MCP 客戶端的宿主,也就是說 MCP 客戶端是內(nèi)置在應(yīng)用里的。
get_alerts
:獲取美國某個(gè)州的天氣警報(bào)。它需要一個(gè)參數(shù),state
——美國州的兩位字母代碼(比如 CA、NY)。get_forecast
:獲取某個(gè)地點(diǎn)的天氣預(yù)報(bào)。它需要兩個(gè)參數(shù),latitude
——地點(diǎn)的緯度,和longitude
——地點(diǎn)的經(jīng)度。對于每個(gè)工具,MCP 都會(huì)調(diào)用相應(yīng)的 Weather API 接口,這些接口就是普通的 HTTP 接口,類似這里的的 API:https://api.weather.gov。
get_alerts
和get_forecast
。為了理解這些組件是如何協(xié)同工作的,我們用了一個(gè)請求圖。請注意,這個(gè)圖已經(jīng)簡化了,省略了一些協(xié)議細(xì)節(jié)。
MCP 客戶端與服務(wù)器建立連接并獲取可用工具。這些工具存儲(chǔ)在會(huì)話中,結(jié)構(gòu)如下:
工具名稱、描述和參數(shù)等所有信息都在服務(wù)器端定義。MCP 服務(wù)器的 Python 代碼如下:
工具調(diào)用實(shí)際上是 Claude LLM 支持的功能,并不是 MCP 引入的新特性。根據(jù)官方 Claude LLM 文檔:
如果你在 API 請求中包含 tools
,大模型可能會(huì)返回 tool_use
內(nèi)容塊,表示大模型對這些工具的使用。然后你可以使用大模型生成的工具輸入運(yùn)行這些工具,還可以選擇將結(jié)果通過 tool_result
內(nèi)容塊返回給大模型。
上面的工具結(jié)構(gòu)會(huì)被添加到發(fā)送給 Claude LLM 的查詢中。Python 示例代碼如下:
有了這些工具,LLM 會(huì)判斷哪個(gè)工具適合用戶的查詢。在這個(gè)例子中,它識(shí)別出對于“紐約現(xiàn)在的天氣是什么?”這個(gè)問題,需要調(diào)用 get_forecast
。
由于這個(gè)工具需要兩個(gè)參數(shù):latitude
(緯度)和 longitude
(經(jīng)度),LLM 知道它需要提供紐約的坐標(biāo),這些坐標(biāo)它從訓(xùn)練數(shù)據(jù)中已經(jīng)知道了。
LLM 會(huì)返回類似以下內(nèi)容:
Claude 桌面應(yīng)用會(huì)利用協(xié)議去查詢天氣 API。由于協(xié)議設(shè)計(jì),請求會(huì)依次經(jīng)過 Claude 桌面應(yīng)用、MCP 客戶端和 MCP 服務(wù)器。
Weather API 的響應(yīng)會(huì)按相反的順序返回,首先到達(dá) MCP 服務(wù)器,然后是 MCP 客戶端,最后到達(dá) Claude 桌面應(yīng)用。返回的內(nèi)容看起來像這樣:
Claude 桌面應(yīng)用會(huì)把原始查詢“紐約現(xiàn)在的天氣是什么?”以及第五步中的天氣預(yù)報(bào)內(nèi)容一起發(fā)送給 Claude LLM。
Claude LLM 組織自然語言回答,Claude 桌面應(yīng)用顯示最終答案?;谔峁┑念A(yù)報(bào)數(shù)據(jù),LLM 創(chuàng)建了一個(gè)友好的回答,然后在桌面應(yīng)用上顯示:
以上就是實(shí)時(shí)天氣查詢案例的整個(gè)流程!正如你所看到的,這是一個(gè)標(biāo)準(zhǔn)化和簡化 LLM 與外部工具或資源協(xié)作的機(jī)制。
MCP 是如此簡單,以至于你幾乎不需要它來協(xié)調(diào)工具調(diào)用。然而,它有助于標(biāo)準(zhǔn)化資源,社區(qū)已經(jīng)迅速開發(fā)了許多有用的 MCP 服務(wù)器。有幾百個(gè)現(xiàn)成的服務(wù)器可供使用,比如:GitHub、Jira、Slack、Cloudflare、Blender 等等,而且這個(gè)列表還在不斷增長。你可以簡單地將它們添加到你的 Claude 桌面應(yīng)用或任何宿主(比如:IDE 或聊天客戶端)中,以擴(kuò)展其功能!
除了這個(gè)簡單例子中使用的工具或函數(shù),MCP 還支持其他功能:
MCP 生態(tài)系統(tǒng)還很新,但它確實(shí)引起了很大的關(guān)注。隨著開發(fā)者們紛紛用它來構(gòu)建創(chuàng)新的應(yīng)用程序,它會(huì)進(jìn)一步成熟。
雖然 MCP 顯著增強(qiáng)了 AI 的能力,但它也帶來了新的安全威脅,我們在另一篇文章中再討論安全問題。
文章轉(zhuǎn)載自: MCP 企業(yè)級(jí)落地案例架構(gòu)設(shè)計(jì)和落地實(shí)戰(zhàn)
深入理解 ASP.NET Core Web API:從哲學(xué)到一對多模型(Models & 1:N 關(guān)系)
NAS設(shè)備API接口全解析:遠(yuǎn)程文件管理、用戶權(quán)限與自動(dòng)備份
生成式AI API架構(gòu)最佳實(shí)踐:構(gòu)建高性能、安全可控的智能服務(wù)
零基礎(chǔ)入門 Alexa API 開發(fā):環(huán)境配置、技能創(chuàng)建與示例講解
.Net中如何創(chuàng)建RESTful API
構(gòu)建基于Claude MCP的天氣查詢智能體 | 實(shí)戰(zhàn)落地示例
API 認(rèn)證:JWT、OAuth 與 API KEY對比
零代碼打造高效 AI Agents:初學(xué)者快速上手指南
如何使用rest api發(fā)送電子郵件