亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        探索MCP應(yīng)用與開發(fā)的奧秘

        2025-08-29 00:00:00楊磊
        中國(guó)信息技術(shù)教育 2025年15期

        編者按:在人工智能越來(lái)越融入生活的今天,你是否好奇人工智能如何與外部系統(tǒng)“對(duì)話”,精準(zhǔn)獲取信息并完成任務(wù)?Anthropic于2024年推出MCP協(xié)議將給你答案。本欄目上一期文章重點(diǎn)介紹了MCP協(xié)議的起源和工作原理,本期文章將聚焦MCP協(xié)議在用戶應(yīng)用與開發(fā)實(shí)踐中的關(guān)鍵環(huán)節(jié),同時(shí)提供了實(shí)用的指導(dǎo)與參考資源,讀者可通過(guò)本文掌握MCP的核心知識(shí)與技能,并將其有效運(yùn)用于教學(xué)場(chǎng)景,從而推動(dòng)MCP技術(shù)在教育領(lǐng)域的深化應(yīng)用與發(fā)展。

        中圖分類號(hào):G434 文獻(xiàn)標(biāo)識(shí)碼:A論文編號(hào):1674—2117(2025)15-0081-06

        引言

        隨著人工智能技術(shù)的迅猛發(fā)展,模型上下文協(xié)議(MCP)日益受到關(guān)注。MCP的核心是標(biāo)準(zhǔn)化上下文信息的傳遞,它是實(shí)現(xiàn)模型服務(wù)便捷調(diào)用、互操作和整合的關(guān)鍵使能規(guī)范和基礎(chǔ)。無(wú)論是用戶希望借此提升工作效率,還是開發(fā)者致力于創(chuàng)新MCP應(yīng)用的開發(fā),深入掌握MCP的應(yīng)用與開發(fā)流程都顯得極為關(guān)鍵。因此,本文將探討MCP在用戶應(yīng)用及開發(fā)實(shí)踐中的多個(gè)細(xì)節(jié),助力讀者理解MCP的精髓與操作要點(diǎn)。

        從用戶的角度應(yīng)用MCP現(xiàn)在,越來(lái)越多的人開始關(guān)注在日常工作中如何應(yīng)用MCP來(lái)提高工作效率和擴(kuò)展自身能力邊界,CherryStudio擁有強(qiáng)大的整合能力以及簡(jiǎn)單易用的使用界面,為用戶帶來(lái)絕佳的MCP服務(wù)體驗(yàn),下面,介紹如何在Cherry Studio中應(yīng)用MCP。

        1.前置依賴

        首先,使用CherryStudio客戶端,需確保已經(jīng)安裝1.2.9及以上版本并完成模型API配置后才能正常使用此功能,在CherryStudio上進(jìn)行模型對(duì)話所需的最低版本以及如何安裝使用可以參考Cherry

        Studio官方文檔。

        2.在Cherry Studio中同步魔搭MCP(ModelScopeMCP)服務(wù)

        魔搭MCP廣場(chǎng)匯聚了海量的MCP服務(wù)資源,為用戶提供了豐富多樣的選擇。通過(guò)將魔搭MCP服務(wù)與Cherry Studio進(jìn)行同步,用戶可以便捷地在CherryStudio中使用這些服務(wù)。

        (1)在魔搭發(fā)現(xiàn)并托管MCP服務(wù)

        若已經(jīng)完成魔搭MCP廣場(chǎng)上的MCP服務(wù)發(fā)現(xiàn)、選型、托管步驟,則可以直接進(jìn)入下一步,其中有“Hosted”標(biāo)簽的為可托管服務(wù),即服務(wù)部署于ModelScope平臺(tái)上,各客戶端可進(jìn)行調(diào)取使用(如圖1)。

        在有“Hosted”標(biāo)記的MCP頁(yè)面上點(diǎn)擊進(jìn)入詳情頁(yè)(如圖2),在“連接”位置進(jìn)行托管,并獲得包括SSEURL的服務(wù)配置信息;除另有說(shuō)明外,有些MCP服務(wù)需要填寫環(huán)境變量后才可以連通。連接并托管成功的MCP服務(wù)可以在魔搭MCP實(shí)驗(yàn)場(chǎng)、本地開發(fā)環(huán)境及CherryStudio客戶端等多個(gè)場(chǎng)所/應(yīng)用環(huán)境被調(diào)取并使用到。

        (2)在Cherry Studio中設(shè) 置ModelScopeMCP同步

        在CherryStudio的“設(shè)置-MCP服務(wù)器-同步服務(wù)器”(如

        C ? □ https://www.modelscope.cn/mcp ☆ + ☆ : ...

        }Modelscope 首頁(yè) 模型庫(kù) 數(shù)據(jù)集 創(chuàng)空間 AIGC專區(qū) 文檔 社區(qū)

        MCP服務(wù) MCP體驗(yàn)gt;Fetch網(wǎng)頁(yè)內(nèi)容抓取 Hosted 高德地圖 Hosted福@modelcontextprotocol/fetch fetch @amap/amap-maps瀏覽器自動(dòng)化 301 該服務(wù)器使大型語(yǔ)言模型能夠檢索和處理網(wǎng)頁(yè)內(nèi)容,將 高德地圖是一個(gè)支持任何MCHTML轉(zhuǎn)換為markdown格式,以便于更輕松地使用。 用戶輕松利用高德地圖MCP@modelcontextprotocol 118.7k 41 @amap搜索工具 612交流協(xié)作工具 235 趣丸千音 Local A 12306-MCP車票查..@allvoicelab/AllVoiceLab @Jooo0ok/12306-mcp官方AllVoiceLab模型上下文協(xié)議(MCP)服務(wù)器,支持與 服務(wù)器提供一個(gè)簡(jiǎn)單的API接開發(fā)者工具 1214 強(qiáng)大的文本轉(zhuǎn)語(yǔ)音和視頻翻譯API交互。允許MCP客戶 票。@allvoicelab 3.1k 3 @Joooook娛樂(lè)與多媒體 106支付寶McPever lacal 支 可視化圖表-MCP-S..文件系統(tǒng) 209是支付寶開放平臺(tái)提供的MCPServer,讓你可以輕松將 Avisualization Model Co大計(jì)寧立平退州的六創(chuàng) 高 種能能力 -h

        圖1魔搭MCP廣場(chǎng)

        圖3)中,默認(rèn)ModelScope,因?yàn)镃herryStudio與ModelScope為官方合作,所以在MCP服務(wù)器勾選ModelScope后會(huì)自動(dòng)進(jìn)入魔搭主頁(yè),如下頁(yè)圖4所示。

        在魔搭主頁(yè)里將魔搭A(yù)PI令牌填入到對(duì)應(yīng)位置,即可一鍵同步魔搭賬號(hào)下的所有已托管MCP服務(wù)配置。

        進(jìn)入魔搭首頁(yè)訪問(wèn)“魔搭首頁(yè)-訪問(wèn)令牌”(如下頁(yè)圖5),在獲取到Token后,在CherryStudio相應(yīng)地方填入Token并點(diǎn)擊“同步”。

        在Cherry Studio可用的MCP服務(wù)器列表當(dāng)中會(huì)有魔搭HostedMCP服務(wù)配置好并連接的那些服務(wù)器(如下頁(yè)圖6)。這樣,就可知道MCP服務(wù)在CherryStudio中已經(jīng)同步完成了,之后就可以在CherryStudio中正常使用MCP服務(wù)了。

        (3)增量更新

        不論是成功地把MCP服務(wù)新加入MCP廣場(chǎng)還是卸載了MCP服務(wù),都可以隨時(shí)回到CherryStudio中的“設(shè)置-MCP服務(wù)器一同步服務(wù)器”頁(yè)面上,點(diǎn)擊“同步”

        圖2連接頁(yè)面

        圖4同步魔搭賬號(hào)

        圖5訪問(wèn)令牌

        務(wù)器”的圖標(biāo)。點(diǎn)擊“MCP服務(wù)器”圖標(biāo)就可以看到已經(jīng)通過(guò)同步的方式導(dǎo)人到CherryStudio中的可以拿來(lái)直接使用的MCP服務(wù)列表了(如下頁(yè)圖7)。用戶可以在對(duì)話框列表中選取本次對(duì)話想要使用

        從開發(fā)者的角度開發(fā)MCP

        在了解MCP開發(fā)的知識(shí)技能后就能設(shè)計(jì)制作出各式各樣的、非常有創(chuàng)意的MCP應(yīng)用軟件,為用戶打造各種強(qiáng)大功能。其中,F(xiàn)astMCP是一個(gè)MCPServer編程的開發(fā)引擎框架,以其精簡(jiǎn)高效的特點(diǎn)成為許多開發(fā)人員的選擇,本文結(jié)合使用FastMCP框架實(shí)現(xiàn)基于城市天氣查詢的MCPServer來(lái)闡述MCP開發(fā)的一些知識(shí)要點(diǎn)。

        的MCP服務(wù),之后AI助手會(huì)在后續(xù)對(duì)話的過(guò)程中根據(jù)需要調(diào)用服務(wù)來(lái)完成所需求的任務(wù)。

        按鈕,進(jìn)行增量更新。每次都會(huì)同步MCP廣場(chǎng)上的MCP服務(wù)更新情況到CherryStudio中,隨時(shí)都保持最新的MCP服務(wù)列表。

        1.模塊導(dǎo)入及初始化

        (2)效果示例

        3.在Cherry Studio中結(jié)合模型與MCP的使用

        開發(fā)的第一步是導(dǎo)人必要的模塊并進(jìn)行初始化操作。在Python環(huán)境中,需要導(dǎo)人FastMCP模塊以及其他相關(guān)依賴庫(kù)。下頁(yè)圖9是具體的代碼示例。

        (1)用MCP在會(huì)話中開啟MCP服務(wù)

        以“時(shí)間服務(wù)MCP”為例,當(dāng)用戶要求AI助手獲取某個(gè)網(wǎng)頁(yè)的相關(guān)信息后,AI助手就會(huì)自動(dòng)調(diào)用之前開啟了“時(shí)間服務(wù)”的MCP,將相關(guān)網(wǎng)頁(yè)內(nèi)容準(zhǔn)確地提取出來(lái),并把相關(guān)信息反饋給用戶(如下頁(yè)圖8)。

        在完成MCP服務(wù)同步以后,在CherryStudio客戶端AI助手消息輸入框的旁邊會(huì)出現(xiàn)“MCP服

        這里,初始化了一個(gè)名為“weather”的FastMCP實(shí)例。該實(shí)例名稱會(huì)在一些工具中顯示,便于開發(fā)者識(shí)別和管理不同的MCP

        圖7選擇MCP服務(wù)

        圖8MCP服務(wù)反饋

        圖9代碼示例

        型的FastMCP工具主要由以下三個(gè)部分構(gòu)成。

        參數(shù)可以為數(shù)據(jù)元添加注釋,例如@ mcp.tool(annotations={\"title\":\"CalculateSum\",\"readOnlyHint\":True,\"openWorldHint\":False}),這些注釋信息有助于LLM更好地理解和使用工具。

        (1)裝

        飾器

        ④ 元數(shù)據(jù):可以設(shè)置name、description和tags等元數(shù)據(jù)參數(shù),如@mcp.tool(name °leddash 'find_products\",description 11 工具描述信息\",tags={\"catalog\",\"search\"}),通過(guò)這些元數(shù)據(jù),能夠更清晰地定義工具的名稱、描述和所屬標(biāo)簽,便于組織和篩選工具。

        裝飾器用于聲明一個(gè)MCP Tool工具,其標(biāo)準(zhǔn)格式為 @ mcp.tool(.在FastMCP框架中,裝飾器還支持多種參數(shù)設(shè)置,以實(shí)現(xiàn)不同的功能。

        (2)函數(shù)主體

        函數(shù)主體是具體實(shí)現(xiàn)工具功能的核心部分。FastMCP框架支持豐富的特性,為開發(fā)者提供了靈活的開發(fā)方式。

        ① 排除參數(shù):通過(guò)exclude_args參數(shù)可以指定哪些參數(shù)不向LLM暴露,但需要

        ① 類型注釋:支持廣泛的類型注釋,包括所有Pydantic類型,同時(shí)可以使用Field類和Annotated提供有關(guān)參數(shù)的其他元數(shù)據(jù)。這有助于提高代碼的可讀性和可維護(hù)性,確保參數(shù)的正確傳遞和使用。

        fromtyping import Any,Dict,Optional

        import httpx

        frommcp.server.fastmcpimport FastMCP

        mcp=FastMCP(\"weather\")#初始化FastMCP

        Server

        為這些參數(shù)提供默認(rèn)值。例如,@ mcp.tool(name =11 get_user_details\",exclude_args=[\"user_id\"]),在此設(shè)置下,user_id參數(shù)不會(huì)告知LLM填寫,但需要有默認(rèn)參數(shù)傳入。

        ② 函數(shù)參數(shù)約定:沒(méi)有默認(rèn)值的參數(shù)被視為必需參數(shù),而有默認(rèn)值的參數(shù)則是可選參數(shù)。這種約定與Python的標(biāo)準(zhǔn)函數(shù)參數(shù)規(guī)則一致,開發(fā)者可以輕松上手。

        Server實(shí)例。通過(guò)這一初始化操作,搭建起了MCP Server的基礎(chǔ)架構(gòu),為后續(xù)的功能開發(fā)做好了準(zhǔn)備。

        ② 禁用工具:若設(shè)置enabled參數(shù)為False,即 @ mcp.tool(enabled °leddash False),則該工具不會(huì)提供給LLM使用,可用于控制工具的啟用狀態(tài)。

        2.FastMCP工具拆解

        ③ 支持標(biāo)準(zhǔn)def和異步asynchronous函數(shù):工具可以采用標(biāo)準(zhǔn)的def函數(shù)或異步的asynchronous函數(shù)作為實(shí)現(xiàn)方式。無(wú)論采用哪種方式,工具都會(huì)自動(dòng)

        FastMCP框架中的工具是實(shí)現(xiàn)MCP功能的核心組件。一個(gè)典③ 數(shù)據(jù)注釋:利用annotations

        fromtyping import Any return\"Unable to fetchalertsornoalertsfound.\"

        import httpx if not data[\"features]:

        from mcp.server.fastmcp import FastMCP return\"No active alerts for this state.\" alerts Σ=Σ [format_alert(feature)forfeatureindata[\"features\"]]

        #Initialize FastMCP server return\"n- -n\".join(alerts)

        mcp=FastMCP(\" weather\") @mcp.tool

        #Constants asyncdefget_forecast(latitude:float,longitude:float) -gt;str

        NWS_API_BASE Ψ=Ψ \"https://api.weather.gov\" etweatherforecastforalocation

        USER_AGENT Σ=Σ \"weather-app/1.0\" Args:

        async def make_nws_request(url:str) dict[str,Any]|None: latitude:Latitude of the location MakearequesttotheNwSAPlwithpropererorhandling.\" longitude:Longitude of the location headers III \"User-Agent\":USER_AGENT, #First get the forecast grid endpoint \"Accept\":\"application/geo+json\" points_url Σ=Σ f{NWS_APl_BASE}/points/{latitude},{longitude}\" 分 points_data Σ= await make_nws_request(points_url) asyncwith httpx.AsyncClientas client: if not points_data: try: return\"Unable to fetch forecast data forthis location.\" response Σ= awaitclient.get(url,headers=headers,timeout=30.0) #Get the forecast URL from the points response response.raise_for_status forecast_url Σ=Σ points_data.get(\"properties\",0).get(\"forecast\") return response.json if not forecast_url: except Exception ase: return\"Unable to fetch detailed forecast.\" print(f\"Request error:{e}\") forecast_data Σ=Σ awaitmake_nws_request(forecast_url) return None if not forecast_data:

        def format_alert(feature:dict) -gt;str return\"Unable to fetchdetailed forecast.\" Formatanalertfeatureintoareadablestring. #Format the periods intoa readable forecast props Σ=Σ feature.get(\"properties\",0) periods Σ=Σ forecast_data.get(\"properties\",{).get(\"periods\",[]) returnf forecasts Θ=I (20

        Event:{props.get('event','Unknown')} forperiod in periods[:5]:# Only shownext5periods

        Area:{props.get('areaDesc','Unknown')} forecast

        Severity:{props.get('severity','Unknown')} {period.get('name','UnknownPeriod')}:

        Description:{props.get('description','No description available')} Temperature:{period.get('temperature','Unknown')}°{period.

        Instructions:{props.get(‘instruction’,'No specific instructionsprovided')} get('temperatureUnit','Unknown')} Wind:{period.get('windSpeed','Unknown')}{period.get('windDirection',

        @mcp.tool 'Unknown')}

        asyncdefget_alerts(state:str)-gt;str: Forecast:{period.get('detailedForecast','Nodetailed forecastavailable')} Get weatheralertsfora US state. Args: forecasts.append(forecast) state:Two-letter US state code (e.g.CA,NY) return\"n -n\".join(forecasts) ! if name_ _main__\": url=f\"{NwS_API_BASE}/alerts/active/area/{state} #Initializeandruntheserver data Σ=Σ awaitmake_nws_request(url) mcp.run(transport='stdio') if not data or \"features\"not in data:

        圖10完整的代碼main.py實(shí)現(xiàn)及詳細(xì)解析

        圖11目錄結(jié)構(gòu)信息

        樣的輸出數(shù)據(jù)。例如,在天氣查詢工具的函數(shù)說(shuō)明中,可以詳細(xì)描述工具的用途、輸入?yún)?shù)的含義以及輸出結(jié)果的格式等內(nèi)容。

        志記錄、閱讀資源或通過(guò)Context對(duì)象報(bào)告進(jìn)度等。這些功能有助于開發(fā)者在開發(fā)過(guò)程中進(jìn)行調(diào)試、監(jiān)控和優(yōu)化工具的性能。

        3.實(shí)例展示

        (3)函數(shù)說(shuō)明

        接下來(lái),通過(guò)一個(gè)具體的實(shí)例——獲取指定城市天氣信息的工具,來(lái)深入理解FastMCP工具的開發(fā)過(guò)程。圖10是完整的代碼main.py實(shí)現(xiàn)及詳細(xì)解析。

        圖12添加MCP服務(wù)

        目錄結(jié)構(gòu)如上頁(yè)圖11所示。使用CherryStudio客戶端添加MCP服務(wù)如圖12所示。

        圖13參數(shù)部分的內(nèi)容

        持雙向通信,但實(shí)現(xiàn)復(fù)雜且可能受網(wǎng)絡(luò)限制。它們共同服務(wù)于客戶端與MCP服務(wù)器的通信,其中SSE和Streamable HTTP基于HTTP協(xié)議拓展,而STDIO在本地環(huán)境中為快速開發(fā)調(diào)試提供便利。STDIO、SSE和Streamable HTTP各有優(yōu)勢(shì)和局限,需根據(jù)具體場(chǎng)景選擇。未來(lái),新興技術(shù)如WebAssembly和WebSockets可能為優(yōu)化MCP訪問(wèn)過(guò)程提供新思路,同時(shí)現(xiàn)有通信方式有望得到進(jìn)一步優(yōu)化改進(jìn),以適應(yīng)分布式計(jì)算和云計(jì)算環(huán)境下的應(yīng)用需求。

        注意,參數(shù)部分的內(nèi)容如圖13所示。

        結(jié)論

        圖14MCP服務(wù)反饋

        在配置完成點(diǎn)擊保存后,綠燈點(diǎn)亮,說(shuō)明添加服務(wù)成功。開啟聊天窗口,選擇剛剛配置的服務(wù)器進(jìn)行測(cè)試,如圖14所示。

        5.進(jìn)一步探 索與總結(jié)

        在MCP訪問(wèn)過(guò)程中,有STDIO、SSE和StreamableHTTP三種方

        MCP技術(shù)范式正革新人工智能模型應(yīng)用方式。用戶借助CherryStudio等客戶端與魔搭MCP廣場(chǎng)的融合,能輕松同步、配置和調(diào)用眾多MCP服務(wù),拓展AI助手功能,提升效率與問(wèn)題解決能力,無(wú)論是網(wǎng)頁(yè)檢索還是路線規(guī)劃,都能快速獲得理想方案。開發(fā)者熟練掌握MCP開發(fā),尤其是FastMCP框架,可高效搭建實(shí)用MCPServer,通過(guò)深度解析FastMCP工具,明晰開發(fā)需綜合設(shè)計(jì)裝飾器、函數(shù)主體與闡述等關(guān)鍵模塊。未來(lái),隨著模型優(yōu)化與算力提升,MCP將在多領(lǐng)域深度應(yīng)用,開發(fā)者在高效框架支持下,能開發(fā)更多創(chuàng)新應(yīng)用,滿足市場(chǎng)變化需求,推動(dòng)MCP技術(shù)創(chuàng)造更大價(jià)值,助力各行業(yè)邁向智能化新階段。 e

        (powershell -ExecutionPolicy

        ByPass-c \"irm https://astral.sh/uv/

        install.ps1|iex\")然后創(chuàng)建uv管理的項(xiàng)目:(uvinit mcp—server—democd mcp—server-demo)最后,將MCP添加到項(xiàng)目依賴

        項(xiàng)中:(uv add \"mcp[cli]\"mcp—server—demo)

        式可供選擇,本例中使用為:mcp.run(transport='stdio').STDIO通過(guò)標(biāo)準(zhǔn)輸人輸出實(shí)現(xiàn)本地通信,適合簡(jiǎn)單開發(fā)調(diào)試,但效率低,不適用于大規(guī)模數(shù)據(jù)和高并發(fā)。SSE基于持久連接,可實(shí)時(shí)推送服務(wù)器更新至客戶端,適合實(shí)時(shí)場(chǎng)景,不過(guò)僅支持文本數(shù)據(jù)且單向通信。StreamableHTTP利用HTTP分塊傳輸,能處理大規(guī)模數(shù)據(jù)且支

        偷拍偷窥在线精品视频| 亚洲羞羞视频| 精品综合久久久久久99| 91热久久免费频精品99| 国产精品偷窥熟女精品视频| 精品久久欧美熟妇www| 成人国产精品一区二区网站| 少妇激情一区二区三区久久大香香 | 国产 精品 自在 线免费| 亚洲av无码精品色午夜| 亚洲欧美性另类春色| 国产偷国产偷亚洲高清| 亚洲熟妇无码久久精品| 精品国产av最大网站| 久久99精品中文字幕在| 久久黄色精品内射胖女人| 国产精品日本一区二区在线播放| 欧美疯狂性xxxxxbbbbb| 天堂Av无码Av一区二区三区| 国产天堂av在线播放资源| 人妻乱交手机在线播放| 亚洲最大成人综合网720p| 亚洲av永久无码精品一区二区| 国产成人一区二区三区免费观看| 国产麻豆国精精品久久毛片| 大陆国产乱人伦| 女人夜夜春高潮爽a∨片| 亚洲蜜芽在线精品一区| 国产真实一区二区三区| 亚洲av高清在线一区二区三区| 日韩成人精品在线| 91热久久免费频精品99| 亚洲妇熟xxxx妇色黄| 国产精品久久久久久久久鸭| 亚洲最新中文字幕一区| 亚洲av色香蕉一区二区三区潮| 亚洲爆乳精品无码一区二区三区| 久久精品亚洲乱码伦伦中文| 国产传媒剧情久久久av| 人妻少妇精品视频专区vr| 亚洲中文字幕久久无码精品|