【譯】微軟與 Anthropic 合作為 MCP 創建官方 C# SDK
微軟正在與 Anthropic 合作,為模型上下文協議(MCP)創建一個官方的 C# SDK。MCP 已經在人工智能社區得到了迅速的應用,這次合作旨在增強人工智能模型與 C#應用程序的集成。
該 SDK 是作為一個開源項目在 modelcontextprotocol GitHub 組織中開發的,這使得開發人員很容易找到并在項目上進行協作。該庫的 NuGet 包叫 ModelContextProtocol。
這個庫的起點是一個名為 mcpdotnet 的項目,由 Peder Holdgaard Pederson 發起。我們非常感謝 Peder 和其他貢獻者所做的工作,他們為官方的 C# MCP 庫奠定了堅實的基礎。
MCP 是什么?
模型上下文協議(MCP)是由 Anthropic 創建的一個開放協議,用于實現 LLM 應用程序與外部工具和數據源之間的集成。它最初于2024年11月發布,最近進行了更新,增加了新的流功能。該協議被設計為可擴展和靈活的,允許開發人員創建可用于 LLM 的自定義工具和數據源。
許多微軟產品已經增加了對 MCP 的支持,包括 Copilot Studio、VS Code 的新 GitHub Copilot Agent 模式和 Semantic Kernel。許多微軟產品正在創建 MCP 服務器來訪問它們的功能。GitHub MCP Server 和 用于瀏覽器自動化的 Playwright MCP 都是很受歡迎的例子,還有更多的正在開發中。
為什么是 C#?
C# 是一種流行的編程語言,被許多開發人員使用,尤其是在企業領域。通過為 MCP 創建官方 C# SDK,微軟旨在使開發人員更容易將 AI 模型集成到他們的 C# 應用程序中,并使用 C# 構建 MCP 服務器。C# SDK 還利用了現代 .NET 中顯著的性能改進,為人工智能應用程序提供了出色的速度和效率。有了.NET 優化的運行時和對容器化的支持,服務在本地開發場景中表現良好。微軟的許多核心產品都是用 C# 編寫的,包括 Visual Studio、大部分 Azure 服務、支持 Microsoft Teams 和 XBOX 的服務等等。所有這些產品都可以從 MCP 中受益,C# SDK 為此提供了基礎。
MCP的簡要說明
AI 應用程序可以使用 MCP 連接到外部工具和數據源,然后將其作為其上下文的一部分提供給 LLM。通過讓 LLM 訪問和使用外部數據和工具,增強其功能,使其能夠執行更復雜的任務。
AI 應用程序在 MCP 中稱為 Host,通過 MCP 客戶端與 MCP 服務器通信。MCP 客戶端理解 MCP 協議,可以向 MCP 服務器發送請求,然后 MCP 服務器處理請求并返回響應。如下圖所示:

MCP 客戶端和服務器端可以交換一組標準消息,包括:
|
消息 |
描述 |
|
InitializeRequest |
該請求在客戶端第一次連接時從客戶端發送到服務器,要求服務器開始初始化 |
|
ListToolsRequest |
從客戶端發送請求服務器擁有的工具列表 |
|
CallToolRequest |
客戶端用來調用服務器提供的工具 |
|
ListResourcesRequest |
從客戶端發送,請求服務器擁有的資源列表 |
|
ReadResourceRequest |
從客戶端發送到服務器,讀取特定的資源URI |
|
ListPromptsRequest |
從客戶端發出,請求服務器所持有的提示詞和提示詞模板列表 |
|
GetPromptRequest |
客戶端用于獲取服務器提供的提示詞 |
|
PingRequest |
由服務器或客戶端發出的一種ping,用于檢查對方是否還活著 |
|
CreateMessageRequest |
服務器向客戶端發出的通過客戶端對大語言模型(LLM)進行采樣的請求。客戶端可以自主決定選擇使用哪個模型。此外,客戶端應在開始采樣之前告知用戶,以便用戶能夠檢查該請求(引入人工干預環節),并決定是否批準該請求。 |
|
SetLevelRequest |
從客戶端到服務器的請求,以啟用或調整日志記錄 |
正如您所看到的,MCP 協議被設計為靈活和可擴展的,允許開發人員創建可與 LLM 一起使用的自定義工具和數據源。而且已經有很多 MCP 服務器可用,每天都有更多的服務器被創建。modelcontextprotocol/servers repo 中的自述文件包含了參考服務器、第三方服務器和社區服務器的列表,這些服務器總共有數百個。
一個簡單的例子——Echo 服務器
使用官方 C# SDK 創建一個簡單的 MCP 服務器非常容易。這里我們將演示 SDK README 中包含的示例 Echo 服務器。Echo 服務器只是回顯它從客戶機接收到的任何消息,并以“hello”為前綴。
從一個新的 dotnet 控制臺應用程序開始,添加 Microsoft.Extensions.Hosting 和 ModelContextProtocol NuGet 包:
dotnet add package Microsoft.Extensions.Hosting
dotnet add package ModelContextProtocol --prerelease
然后,將 Program.cs 文件中的代碼替換為以下代碼:
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using ModelContextProtocol.Server; using System.ComponentModel; var builder = Host.CreateApplicationBuilder(args); builder.Logging.AddConsole(consoleLogOptions => { // Configure all logs to go to stderr consoleLogOptions.LogToStandardErrorThreshold = LogLevel.Trace; }); builder.Services .AddMcpServer() .WithStdioServerTransport() .WithToolsFromAssembly(); await builder.Build().RunAsync(); [McpServerToolType] public static class EchoTool { [McpServerTool, Description("Echoes the message back to the client.")] public static string Echo(string message) => $"hello {message}"; }
注意:MCP C# SDK 處于預覽階段,Api 可能會發生變化。隨著 SDK 的發展,我們將不斷更新這個博客,但是如果您遇到上述代碼的任何問題,請嘗試使用 mcp-csharp README 中的“Getting Started (Server)”部分中的第一個代碼示例。
現在要查看服務器的運行情況,可以使用 MCP Inspector,這是 MCP 服務器的可視化測試工具。
由于 MCP Inspector 是一個 node 應用程序,您不需要安裝它,只需使用 npx 運行它即可。Inspector 的參數是一個將運行服務器的命令。在本例中,我們希望在當前目錄下運行服務器,所以我們可以使用 dotnet run:
npx @modelcontextprotocol/inspector dotnet run
系統可能會提示您安裝 Inspector ,您可以按 y 并按 enter 鍵來安裝。Inspector 將啟動并執行用于啟動服務器的命令。您會在終端上看到一些輸出,表明服務器正在啟動,然后它會顯示一條消息,表明 Inspector UI 準備好了:
?? MCP Inspector is up and running at http://localhost:5173 ??
打開瀏覽器窗口并導航到終端中顯示的 URL。您應該看到這樣的內容:

現在點擊“Connect”按鈕連接到服務器。Inspector 將連接到服務器并提供工具列表請求。如果服務器有任何資源或提示,它會提供請求資源或提示列表的功能。
單擊“List Tools”按鈕查看服務器所擁有的工具列表。此時,只有一個工具可用,即 Echo 工具。

現在點擊“Echo”工具來查看工具的細節。您將看到工具描述和工具接受的參數的輸入框—在本例中,Echo 工具接受一個名為“message”的參數。

在“message”框中輸入消息,然后單擊“Run Tool”按鈕。Inspector 將調用該工具并顯示結果。

這是一個非常簡單的例子來介紹基本的概念。有關更復雜的示例,請參閱 SDK repo 中的 samples 目錄。
結論
這是對 MCP 和新的 MCP C# SDK 的快速介紹。SDK 仍處于早期階段,但它已經是將 AI 模型集成到 C# 應用程序中的強大工具。SDK 是開源的,可以在 GitHub 上獲得,我們歡迎來自社區的貢獻。
嘗試 SDK 庫中的一個示例,或者使用 SDK 創建自己的 MCP 服務器。如果遇到任何問題,請在 GitHub repo 上創建 issue。
我們很高興看到開發人員使用 MCP C# SDK 來發明創造,我們期待看到 MCP 生態系統的成長和發展。
原文連接:https://devblogs.microsoft.com/blog/microsoft-partners-with-anthropic-to-create-official-c-sdk-for-model-context-protocol

作者:MeteorSeed
我希望您喜歡這篇博文,并一如既往地感謝您閱讀并與朋友和同事分享我的博文。
轉載請注明出處。

浙公網安備 33010602011771號