999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

探索MCP應用與開發的奧秘

2025-08-29 00:00:00楊磊
中國信息技術教育 2025年15期

編者按:在人工智能越來越融入生活的今天,你是否好奇人工智能如何與外部系統“對話”,精準獲取信息并完成任務?Anthropic于2024年推出MCP協議將給你答案。本欄目上一期文章重點介紹了MCP協議的起源和工作原理,本期文章將聚焦MCP協議在用戶應用與開發實踐中的關鍵環節,同時提供了實用的指導與參考資源,讀者可通過本文掌握MCP的核心知識與技能,并將其有效運用于教學場景,從而推動MCP技術在教育領域的深化應用與發展。

中圖分類號:G434 文獻標識碼:A論文編號:1674—2117(2025)15-0081-06

引言

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

從用戶的角度應用MCP現在,越來越多的人開始關注在日常工作中如何應用MCP來提高工作效率和擴展自身能力邊界,CherryStudio擁有強大的整合能力以及簡單易用的使用界面,為用戶帶來絕佳的MCP服務體驗,下面,介紹如何在Cherry Studio中應用MCP。

1.前置依賴

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

Studio官方文檔。

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

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

(1)在魔搭發現并托管MCP服務

若已經完成魔搭MCP廣場上的MCP服務發現、選型、托管步驟,則可以直接進入下一步,其中有“Hosted”標簽的為可托管服務,即服務部署于ModelScope平臺上,各客戶端可進行調取使用(如圖1)。

在有“Hosted”標記的MCP頁面上點擊進入詳情頁(如圖2),在“連接”位置進行托管,并獲得包括SSEURL的服務配置信息;除另有說明外,有些MCP服務需要填寫環境變量后才可以連通。連接并托管成功的MCP服務可以在魔搭MCP實驗場、本地開發環境及CherryStudio客戶端等多個場所/應用環境被調取并使用到。

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

在CherryStudio的“設置-MCP服務器-同步服務器”(如

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

}Modelscope 首頁 模型庫 數據集 創空間 AIGC專區 文檔 社區

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

圖1魔搭MCP廣場

圖3)中,默認ModelScope,因為CherryStudio與ModelScope為官方合作,所以在MCP服務器勾選ModelScope后會自動進入魔搭主頁,如下頁圖4所示。

在魔搭主頁里將魔搭API令牌填入到對應位置,即可一鍵同步魔搭賬號下的所有已托管MCP服務配置。

進入魔搭首頁訪問“魔搭首頁-訪問令牌”(如下頁圖5),在獲取到Token后,在CherryStudio相應地方填入Token并點擊“同步”。

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

(3)增量更新

不論是成功地把MCP服務新加入MCP廣場還是卸載了MCP服務,都可以隨時回到CherryStudio中的“設置-MCP服務器一同步服務器”頁面上,點擊“同步”

圖2連接頁面

圖4同步魔搭賬號

圖5訪問令牌

務器”的圖標。點擊“MCP服務器”圖標就可以看到已經通過同步的方式導人到CherryStudio中的可以拿來直接使用的MCP服務列表了(如下頁圖7)。用戶可以在對話框列表中選取本次對話想要使用

從開發者的角度開發MCP

在了解MCP開發的知識技能后就能設計制作出各式各樣的、非常有創意的MCP應用軟件,為用戶打造各種強大功能。其中,FastMCP是一個MCPServer編程的開發引擎框架,以其精簡高效的特點成為許多開發人員的選擇,本文結合使用FastMCP框架實現基于城市天氣查詢的MCPServer來闡述MCP開發的一些知識要點。

的MCP服務,之后AI助手會在后續對話的過程中根據需要調用服務來完成所需求的任務。

按鈕,進行增量更新。每次都會同步MCP廣場上的MCP服務更新情況到CherryStudio中,隨時都保持最新的MCP服務列表。

1.模塊導入及初始化

(2)效果示例

3.在Cherry Studio中結合模型與MCP的使用

開發的第一步是導人必要的模塊并進行初始化操作。在Python環境中,需要導人FastMCP模塊以及其他相關依賴庫。下頁圖9是具體的代碼示例。

(1)用MCP在會話中開啟MCP服務

以“時間服務MCP”為例,當用戶要求AI助手獲取某個網頁的相關信息后,AI助手就會自動調用之前開啟了“時間服務”的MCP,將相關網頁內容準確地提取出來,并把相關信息反饋給用戶(如下頁圖8)。

在完成MCP服務同步以后,在CherryStudio客戶端AI助手消息輸入框的旁邊會出現“MCP服

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

圖7選擇MCP服務

圖8MCP服務反饋

圖9代碼示例

型的FastMCP工具主要由以下三個部分構成。

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

(1)裝

飾器

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

裝飾器用于聲明一個MCP Tool工具,其標準格式為 @ mcp.tool(.在FastMCP框架中,裝飾器還支持多種參數設置,以實現不同的功能。

(2)函數主體

函數主體是具體實現工具功能的核心部分。FastMCP框架支持豐富的特性,為開發者提供了靈活的開發方式。

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

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

fromtyping import Any,Dict,Optional

import httpx

frommcp.server.fastmcpimport FastMCP

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

Server

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

② 函數參數約定:沒有默認值的參數被視為必需參數,而有默認值的參數則是可選參數。這種約定與Python的標準函數參數規則一致,開發者可以輕松上手。

Server實例。通過這一初始化操作,搭建起了MCP Server的基礎架構,為后續的功能開發做好了準備。

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

2.FastMCP工具拆解

③ 支持標準def和異步asynchronous函數:工具可以采用標準的def函數或異步的asynchronous函數作為實現方式。無論采用哪種方式,工具都會自動

FastMCP框架中的工具是實現MCP功能的核心組件。一個典③ 數據注釋:利用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實現及詳細解析

圖11目錄結構信息

樣的輸出數據。例如,在天氣查詢工具的函數說明中,可以詳細描述工具的用途、輸入參數的含義以及輸出結果的格式等內容。

志記錄、閱讀資源或通過Context對象報告進度等。這些功能有助于開發者在開發過程中進行調試、監控和優化工具的性能。

3.實例展示

(3)函數說明

接下來,通過一個具體的實例——獲取指定城市天氣信息的工具,來深入理解FastMCP工具的開發過程。圖10是完整的代碼main.py實現及詳細解析。

圖12添加MCP服務

目錄結構如上頁圖11所示。使用CherryStudio客戶端添加MCP服務如圖12所示。

圖13參數部分的內容

持雙向通信,但實現復雜且可能受網絡限制。它們共同服務于客戶端與MCP服務器的通信,其中SSE和Streamable HTTP基于HTTP協議拓展,而STDIO在本地環境中為快速開發調試提供便利。STDIO、SSE和Streamable HTTP各有優勢和局限,需根據具體場景選擇。未來,新興技術如WebAssembly和WebSockets可能為優化MCP訪問過程提供新思路,同時現有通信方式有望得到進一步優化改進,以適應分布式計算和云計算環境下的應用需求。

注意,參數部分的內容如圖13所示。

結論

圖14MCP服務反饋

在配置完成點擊保存后,綠燈點亮,說明添加服務成功。開啟聊天窗口,選擇剛剛配置的服務器進行測試,如圖14所示。

5.進一步探 索與總結

在MCP訪問過程中,有STDIO、SSE和StreamableHTTP三種方

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

(powershell -ExecutionPolicy

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

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

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

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

主站蜘蛛池模板: 国产真实自在自线免费精品| 欧美人与性动交a欧美精品| 欧美成人手机在线观看网址| 手机精品福利在线观看| 亚洲欧洲国产成人综合不卡| AV在线天堂进入| 亚洲妓女综合网995久久| 2021国产v亚洲v天堂无码| 无码AV高清毛片中国一级毛片| 国产资源免费观看| 亚洲天堂色色人体| 成色7777精品在线| 在线观看av永久| 在线观看视频一区二区| 尤物午夜福利视频| 啪啪啪亚洲无码| 国产一级视频久久| 综合色在线| 亚洲天堂视频网站| 青草91视频免费观看| 亚洲三级视频在线观看| 国产精品美人久久久久久AV| 免费中文字幕在在线不卡| 国产视频只有无码精品| 青青热久免费精品视频6| 國產尤物AV尤物在線觀看| 91久久国产热精品免费| 欧美日本在线播放| 综合色天天| 99精品免费在线| 91小视频版在线观看www| 成人亚洲天堂| 鲁鲁鲁爽爽爽在线视频观看| 无码福利日韩神码福利片| 毛片视频网址| 亚洲婷婷丁香| 欧美在线免费| 国产福利免费在线观看| 99久久精品视香蕉蕉| 国产精品自拍露脸视频| 搞黄网站免费观看| 五月天丁香婷婷综合久久| 亚洲美女一区| 最新国产你懂的在线网址| 麻豆国产原创视频在线播放| 99国产精品一区二区| 国产日韩久久久久无码精品 | 91亚洲视频下载| 精品成人免费自拍视频| 国产人免费人成免费视频| 天天色天天综合| 亚洲天堂视频网| 精品一区二区三区无码视频无码| 毛片网站免费在线观看| 一本久道久久综合多人| 欧美不卡二区| 成人福利在线看| 免费看a级毛片| 欧美在线国产| 国产精品第5页| 久久福利片| 热99精品视频| 真实国产乱子伦高清| 丰满人妻中出白浆| 国产第四页| 色噜噜久久| 亚洲一区二区三区香蕉| 国产一级α片| 欧美自拍另类欧美综合图区| 成人午夜久久| 亚洲αv毛片| 欧美国产日韩在线| 国产免费福利网站| 精品久久久久久成人AV| 超碰91免费人妻| 91在线无码精品秘九色APP| 午夜福利在线观看成人| 免费人成在线观看成人片| 欧美日韩成人| 色老二精品视频在线观看| 成人国产精品2021| 日韩高清无码免费|