共用方式為


開始使用 .NET AI 和模型內容通訊協定

模型內容通訊協定 (MCP) 是一種開放通訊協定,旨在標準化 AI 應用程式和外部工具和數據源之間的整合。 開發人員可以使用 MCP 來增強 AI 模型的功能,讓他們能夠產生更精確的、相關且內容感知的回應。

例如,使用 MCP,您可以將 LLM 連線到資源,例如:

  • 檔資料庫或記憶體服務。
  • 公開商務數據或邏輯的 Web API。
  • 在使用者的裝置上管理檔案或執行本機工作的工具。

許多Microsoft產品已經支援MCP,包括:

您可以使用 MCP C# SDK 快速建立自己的 MCP 整合,並在不同的 AI 模型之間切換,而不需要大幅變更程式碼。

MCP 用戶端-伺服器架構

MCP 會使用用戶端-伺服器架構,讓 AI 支援的應用程式(主機)透過 MCP 用戶端連線到多個 MCP 伺服器:

  • MCP 主機:AI 工具、程式代碼編輯器或其他軟體,可透過 MCP 使用內容資源來增強其 AI 模型。 例如,Visual Studio Code 中的 GitHub Copilot 可作為 MCP 主機,並使用 MCP 用戶端和伺服器來擴充其功能。
  • MCP 用戶端:主應用程式用來連線到 MCP 伺服器的用戶端,以擷取內容相關數據。
  • MCP 伺服器:透過 MCP 向客戶端公開功能的服務。 例如,MCP 伺服器可能會提供 REST API 或本機數據源的抽象概念,以提供商務數據給 AI 模型。

下圖說明此架構:

此圖顯示 MCP 的架構模式,包括主機、客戶端和伺服器。

MCP 用戶端和伺服器可以交換一組標準訊息:

訊息 說明
InitializeRequest 當用戶端第一次連線時,此要求會由用戶端傳送至伺服器,要求它開始初始化。
ListToolsRequest 由客戶端傳送以要求伺服器擁有的工具清單。
CallToolRequest 用戶端用來叫用伺服器所提供的工具。
ListResourcesRequest 用戶端傳送以要求可用的伺服器資源清單。
ReadResourceRequest 用戶端傳送至伺服器以讀取特定資源 URI。
ListPromptsRequest 客戶端發送請求以獲取伺服器提供的可用提示和提示範本清單。
GetPromptRequest 用戶端用來取得伺服器提供的提示。
PingRequest 伺服器或用戶端所發出的 Ping,以檢查對方是否仍在運作中。
CreateMessageRequest 伺服器要求透過客戶端取樣 LLM。 用戶端對要選取的模型具有完整自由裁量權。 客戶端還應在開始取樣前通知使用者,以便他們檢查請求(人為介入)並決定是否批准。
SetLevelRequest 客戶端對伺服器的要求,以啟用或調整記錄。

使用 MCP C# SDK 進行開發

身為 .NET 開發人員,您可以藉由建立 MCP 用戶端和伺服器來使用 MCP,透過自訂整合來增強您的應用程式。 MCP 可降低將 AI 模型連線到各種工具、服務和數據源的複雜性。

官方 MCP C# SDK 可透過 NuGet 取得,並可讓您建置適用於 .NET 應用程式和連結庫的 MCP 用戶端和伺服器。 SDK 是由 Microsoft、Anthropic 和 MCP 開放通訊協定組織共同合作維護的。

若要開始使用,請將MCP C# SDK 新增至您的專案:

dotnet add package ModelContextProtocol --prerelease

您通常可以利用或參考來自各種提供者的預先建置整合,例如 GitHub 和 Docker,而不是為每個整合點建置唯一連接器:

與 Microsoft.Extensions.AI 整合

MCP C# SDK 取決於 Microsoft.Extensions.AI 連結庫 來處理各種 AI 互動和工作。 這些延伸模組連結庫提供使用 AI 服務的核心類型和抽象概念,讓開發人員可以專注於針對概念 AI 功能撰寫程式代碼,而不是特定平臺或提供者實作。

NuGet 套件頁面上檢視 MCP C# SDK 相依性。

其他 .NET MCP 開發資源

.NET 和 Azure 生態系統中提供各種工具、服務和學習資源,以協助您建置 MCP 用戶端和伺服器,或與現有的 MCP 伺服器整合。

開始使用下列開發工具:

使用下列資源深入瞭解 .NET 和 MCP: