解鎖你的 AI:模型上下文協定 (MCP) 入門介紹
解鎖你的 AI:模型上下文協定 (MCP) 入門介紹¶
我們先前已經討論過 MCP、ACP 和 A2A 之間的根本差異,想回顧背景資訊的讀者可以參考先前的內容。今天,我們將更深入地探討 MCP 的細節。
大型語言模型 (LLM),如 Gemini、Claude 和 ChatGPT,功能極其強大,但它們有一個根本性的限制:它們存在於一個數位沙盒中,與您的個人電腦及其獨特的工具相隔離。它們無法讀取您的本地檔案、執行您剛寫好的腳本,也無法存取您公司的內部資料庫。
但如果它們可以呢?如果您能給您的 AI 一把安全可靠的「鑰匙」,讓它進入您的本地環境呢?這正是模型上下文協定 (Model-Context Protocol, MCP) 旨在解決的問題。
## 什麼是 MCP?¶
MCP 的核心是一種標準化的語言 — — 一座通用的橋樑 — — 它允許 AI 模型與本地的應用程式、工具和檔案進行溝通和互動。它扮演著一個安全中介的角色,讓您的 LLM (「大腦」) 能夠安全地使用您電腦上的資源 (「雙手」)。
您可以將 MCP 想像成您 AI 的萬國轉接頭 🔌。沒有它,您的 AI 就像一部手機,其獨特的插頭無法適用於任何插座。有了 MCP,您的 AI 就可以連接到任何工具或資料來源,釋放其作為個人化強大助理的真正潛力。
## 運作原理:主從式架構 (Client-Server Architecture)¶
MCP 運作於一個簡單而穩健的主從式模型之上。這種模式將「思考」部分與「執行」部分分開,這對於安全性與組織性至關重要。
- MCP 客戶端 (主機/Host): 這是 LLM 所在的應用程式。在我們的專案中,mcp_chatbot.py 腳本就扮演著客戶端的角色。它接收使用者的查詢,諮詢 LLM,當 LLM 決定使用某個工具時,客戶端就會向伺服器發送請求。
- MCP 伺服器 (工具箱/Toolbox): 這是一個獨立的應用程式,它包含了您希望向 LLM 開放的所有功能。我們的 research_server.py 就是一個絕佳的例子。它本身不包含 AI 模型;它只包含了允許 AI 使用的工具和資源。
這兩個組件透過模型上下文協定進行對話,確保請求和回應能夠被正確且安全地理解。
## 在 Python 中建立 MCP 伺服器¶
得益於幾個簡單的裝飾器 (decorator),在 Python 中創建 MCP 伺服器出乎意料地簡單,這些裝飾器能將您的普通函式轉換為 AI 可存取的功能。
- @mcp.tool(): 這是最常用且最強大的裝飾器。它能立即將任何 Python 函式變成 LLM 可以呼叫的工具。MCP 會自動檢視您函式的簽名和說明文件 (docstrings),以創建一個結構 (schema)——一份詳細的描述——告訴 LLM 這個工具的功能、需要什麼參數 (例如 paper_id: str),以及會回傳什麼樣的資訊。這就像為您的函式創建一本 AI 能讀懂的即時使用手冊。
- @mcp.resource(): 如果說工具是為了做某件事,那麼資源就是為了知道某件事。這個裝飾器用於向 LLM 開放資料或檔案。您可以用它來讓 AI 讀取特定的文件、CSV 檔案,或資料庫中的一筆記錄,以便為其任務提供上下文。這就像從您的圖書館中拿一本特定的書放在桌上,供 LLM 閱讀。
- @mcp.prompt(): 這個裝飾器用於向 LLM 提供預先定義好的指令或模板。提示 (prompt) 可以是一套規則、一種要採用的個性,或是一個用於生成特定類型文本的複雜模板。這是一種引導和約束 LLM 行為的方式,以確保其輸出的一致性和實用性。
## 交握與對話:MCP 協定¶
客戶端和伺服器之間的通訊遵循一個清晰的生命週期,並且可以透過不同的連線類型進行,使其具有高度的靈活性。
## 生命週期¶
- 初始化 (Initialization): 這是「交握」(Handshake)。客戶端連接到伺服器,伺服器則回傳其所有可用的工具、資源和提示的列表。這樣,客戶端的 LLM 才能知道它有哪些能力。
- 訊息交換 (Message Exchange): 這是主要的「對話」(Conversation)。客戶端向伺服器發送請求,例如「使用 paper_id='12345' 執行 extract_info 工具」,伺फู器則執行該函式並將結果回傳。
- 終止 (Termination): 這是「道別」(Goodbye)。當會話結束時,客戶端或伺服器會關閉連線。
## 連線類型¶
MCP 根據您的需求支援多種連線方法 (或稱「傳輸方式/Transports」):
- stdio: 最簡單的方法,非常適合本地開發。客戶端直接將伺服器作為一個背景進程啟動,並透過其標準的命令列輸入和輸出來進行通訊。這正是我們在專案中使用的方法。
- http+sse: 一種現代的、基於 Web 的方法,使用 HTTP 和伺服器發送事件 (Server-Sent Events, SSE)。SSE 非常適合串流傳輸資料,使其成為 AI 可能會回傳長篇串流回應的 Web 應用的理想選擇。
- http: 標準的 Web 請求-回應協定。它可靠且被廣泛理解,適用於各種基於網路的應用程式。
## 接下來呢?¶
我們現在已經涵蓋了模型上下文協定的「是什麼」和「如何運作」 — — 從其核心目標到使其運作的特定裝飾器和協定。您應該對 MCP 如何彌合強大的 AI 模型與您的本地程式碼之間的鴻溝有了扎實的理解。
在我們的下一個單元中,我們將從理論走向實踐,探索一些強大的 MCP 真實世界用例。我們將在已創建的研究助理基礎上繼續建構,展示如何打造真正智慧且實用的本地 AI 代理。
## 參考資料¶
本文基於以下 DeepLearning.AI 課程中的概念和範例:
- 課程: Claude Code: A Highly Agentic Coding Assistant
- 提供者: DeepLearning.AI
Comments
Loading comments…
Leave a Comment