登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP网盘
VIP申请
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
【译】微软与 Anthropic 合作为 MCP 创建官方 C# SDK ...
【译】微软与 Anthropic 合作为 MCP 创建官方 C# SDK
[ 复制链接 ]
煅汾付
2025-6-3 00:30:32
微软正在与 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 准备好了:
[code]
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
煅汾付
2025-6-3 00:30:32
关注
0
粉丝关注
18
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
黎瑞芝
9990
杭环
9988
4
猷咎
9988
5
凶契帽
9988
6
氛疵
9988
7
恐肩
9986
8
虽裘侪
9986
9
接快背
9986
10
里豳朝
9986
查看更多