(點擊上方圖片觀看本課程的影片)
實際應用是讓模型上下文協議(MCP)發揮實際價值的地方。雖然理解 MCP 的理論和架構很重要,但真正的價值在於將這些概念應用於構建、測試和部署能解決現實問題的解決方案。本章節將理論知識與實際開發連結起來,引導您完成將基於 MCP 的應用程式付諸實現的過程。
無論您是開發智能助手、將 AI 整合到業務工作流程中,還是構建用於數據處理的自定義工具,MCP 都提供了一個靈活的基礎。其語言無關的設計以及針對主流程式語言的官方 SDK,使得 MCP 對廣大開發者來說都易於上手。通過利用這些 SDK,您可以快速原型化、迭代並在不同平台和環境中擴展您的解決方案。
在接下來的章節中,您將看到實際範例、範例程式碼以及部署策略,這些內容展示了如何在 C#、Java(使用 Spring)、TypeScript、JavaScript 和 Python 中實現 MCP。您還將學習如何調試和測試 MCP 伺服器、管理 API,以及使用 Azure 將解決方案部署到雲端。這些實用資源旨在加速您的學習,幫助您自信地構建穩健的、可投入生產的 MCP 應用程式。
本課程專注於多種程式語言中 MCP 實現的實際層面。我們將探討如何使用 MCP SDK(包括 C#、Java(使用 Spring)、TypeScript、JavaScript 和 Python)來構建穩健的應用程式,調試和測試 MCP 伺服器,以及創建可重用的資源、提示和工具。
完成本課程後,您將能夠:
- 使用官方 SDK 在多種程式語言中實現 MCP 解決方案
- 系統性地調試和測試 MCP 伺服器
- 創建並使用伺服器功能(資源、提示和工具)
- 為複雜任務設計有效的 MCP 工作流程
- 優化 MCP 實現以提升性能和可靠性
模型上下文協議提供了多種語言的官方 SDK:
- C# SDK
- Java with Spring SDK 注意: 需要依賴 Project Reactor。(參見 討論議題 246。)
- TypeScript SDK
- Python SDK
- Kotlin SDK
本節提供了在多種程式語言中實現 MCP 的實際範例。您可以在 samples 目錄中找到按語言組織的範例程式碼。
此存儲庫包含以下語言的範例實現:
每個範例展示了該特定語言和生態系統中的關鍵 MCP 概念和實現模式。
MCP 伺服器可以實現以下功能的任意組合:
資源為使用者或 AI 模型提供上下文和數據:
- 文件庫
- 知識庫
- 結構化數據來源
- 檔案系統
提示是為使用者設計的模板化消息和工作流程:
- 預定義的對話模板
- 引導式交互模式
- 專門化的對話結構
工具是 AI 模型可執行的功能:
- 數據處理工具
- 外部 API 整合
- 計算能力
- 搜索功能
官方 C# SDK 存儲庫包含多個範例實現,展示了 MCP 的不同方面:
- 基本 MCP 客戶端:展示如何創建 MCP 客戶端並調用工具的簡單範例
- 基本 MCP 伺服器:具有基本工具註冊的最小伺服器實現
- 高級 MCP 伺服器:功能齊全的伺服器,包含工具註冊、身份驗證和錯誤處理
- ASP.NET 整合:展示與 ASP.NET Core 整合的範例
- 工具實現模式:展示不同複雜度工具實現的多種模式
C# MCP SDK 處於預覽階段,API 可能會有所變動。我們將隨著 SDK 的發展持續更新此博客。
完整的 C# 實現範例,請訪問 官方 C# SDK 範例存儲庫
Java with Spring SDK 提供了具有企業級功能的穩健 MCP 實現選項。
- 與 Spring Framework 整合
- 強類型安全性
- 支援反應式編程
- 全面的錯誤處理
完整的 Java with Spring 實現範例,請參見範例目錄中的 Java with Spring 範例。
JavaScript SDK 提供了一種輕量且靈活的 MCP 實現方式。
- 支援 Node.js 和瀏覽器
- 基於 Promise 的 API
- 易於與 Express 和其他框架整合
- 支援 WebSocket 流式傳輸
完整的 JavaScript 實現範例,請參見範例目錄中的 JavaScript 範例。
Python SDK 提供了一種符合 Python 習慣的 MCP 實現方式,並與主流機器學習框架有良好整合。
- 使用 asyncio 支援 Async/await
- 與 FastAPI 整合
- 簡單的工具註冊
- 與流行的機器學習庫原生整合
完整的 Python 實現範例,請參見範例目錄中的 Python 範例。
Azure API 管理是保護 MCP 伺服器的絕佳解決方案。其核心思想是將 Azure API 管理實例置於 MCP 伺服器之前,並讓其處理您可能需要的功能,例如:
- 限流
- 令牌管理
- 監控
- 負載均衡
- 安全性
這是一個 Azure 範例,展示了如何創建 MCP 伺服器並使用 Azure API 管理進行保護。
以下圖片展示了授權流程的運作方式:
在上述圖片中,發生了以下過程:
- 使用 Microsoft Entra 進行身份驗證/授權。
- Azure API 管理作為網關,使用策略來引導和管理流量。
- Azure Monitor 記錄所有請求以供進一步分析。
以下是授權流程的詳細說明:
了解更多關於 MCP 授權規範 的內容。
以下是如何部署前述範例的步驟:
-
克隆存儲庫
git clone https://github.com/Azure-Samples/remote-mcp-apim-functions-python.git cd remote-mcp-apim-functions-python -
註冊
Microsoft.App資源提供者。- 如果您使用 Azure CLI,執行
az provider register --namespace Microsoft.App --wait。 - 如果您使用 Azure PowerShell,執行
Register-AzResourceProvider -ProviderNamespace Microsoft.App。稍後執行(Get-AzResourceProvider -ProviderNamespace Microsoft.App).RegistrationState檢查註冊是否完成。
- 如果您使用 Azure CLI,執行
-
執行此 azd 命令以配置 API 管理服務、函數應用(包含程式碼)以及所有其他所需的 Azure 資源
azd up
此命令應該會將所有雲端資源部署到 Azure。
-
在 新終端視窗 中,安裝並運行 MCP Inspector
npx @modelcontextprotocol/inspector
您應該會看到類似以下的介面:
-
按住 CTRL 點擊應用程式顯示的 URL(例如 http://127.0.0.1:6274/#resources)以加載 MCP Inspector Web 應用程式。
-
將傳輸類型設置為
SSE。 -
將 URL 設置為
azd up後顯示的 API 管理 SSE 端點,然後點擊 Connect:https://<apim-servicename-from-azd-output>.azure-api.net/mcp/sse
-
列出工具。點擊一個工具並選擇 Run Tool。
如果所有步驟都成功,您現在應該已連接到 MCP 伺服器,並能夠調用工具。
Remote-mcp-functions:這組存儲庫是使用 Azure Functions 構建和部署自定義遠端 MCP(模型上下文協議)伺服器的快速入門模板,支持 Python、C# .NET 或 Node/TypeScript。
這些範例提供了一個完整的解決方案,允許開發者:
- 本地構建和運行:在本地機器上開發和調試 MCP 伺服器
- 部署到 Azure:通過簡單的 azd up 命令輕鬆部署到雲端
- 從客戶端連接:從包括 VS Code 的 Copilot agent 模式和 MCP Inspector 工具在內的多種客戶端連接到 MCP 伺服器
- 設計即安全:MCP 伺服器使用密鑰和 HTTPS 進行保護
- 身份驗證選項:支持使用內建身份驗證和/或 API 管理的 OAuth
- 網路隔離:允許使用 Azure 虛擬網路(VNET)進行網路隔離
- 無伺服器架構:利用 Azure Functions 實現可擴展的事件驅動執行
- 本地開發:全面的本地開發和調試支持
- 簡化部署:簡化的 Azure 部署流程
該存儲庫包含所有必要的配置文件、源代碼和基礎設施定義,幫助您快速開始生產就緒的 MCP 伺服器實現。
- Azure Remote MCP Functions Python - 使用 Azure Functions 和 Python 實現 MCP 的範例
- Azure Remote MCP Functions .NET - 使用 Azure Functions 和 C# .NET 實現 MCP 的範例
- Azure Remote MCP Functions Node/Typescript - 使用 Azure Functions 和 Node/TypeScript 實現 MCP 的範例
- MCP SDK 提供了語言專屬的工具來實現穩健的 MCP 解決方案
- 調試和測試過程對於可靠的 MCP 應用程式至關重要
- 可重用的提示模板能夠實現一致的 AI 交互
- 精心設計的工作流程可以使用多個工具協調複雜任務
- 實現 MCP 解決方案需要考慮安全性、性能和錯誤處理
設計一個解決您所在領域實際問題的 MCP 工作流程:
- 確定 3-4 個對解決該問題有用的工具
- 創建一個工作流程圖,展示這些工具如何交互
- 使用您偏好的語言實現其中一個工具的基本版本
- 創建一個提示模板,幫助模型有效地使用您的工具
下一步:進階主題
免責聲明:
本文件使用 AI 翻譯服務 Co-op Translator 進行翻譯。儘管我們努力確保翻譯的準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵資訊,建議使用專業人工翻譯。我們對因使用此翻譯而產生的任何誤解或錯誤解釋不承擔責任。



