【译】微软与 Anthropic 合作为 MCP 创建官方 C# SDK

360影视 欧美动漫 2025-05-28 11:13 1

摘要:微软正在与 Anthropic 合作,为模型上下文协议(MCP)创建一个官方的 C# SDK。MCP 已经在人工智能社区得到了迅速的应用,这次合作旨在增强人工智能模型与 C#应用程序的集成。

微软正在与 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从客户端发送到服务器,读取特定的资源URIListPromptsRequest从客户端发出,请求服务器所持有的提示词和提示词模板列表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.Hostingdotnet 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

来源:opendotnet

相关推荐