写点什么

MCP C# SDK 符合新协议规范,带来了安全性和工具更新

作者:Almir Vuk

  • 2025-08-21
    北京
  • 本文字数:1331 字

    阅读完需:约 4 分钟

大小:548.90K时长:03:07
MCP C# SDK符合新协议规范,带来了安全性和工具更新

模型上下文协议(MCP)C# SDK已更新,以支持最新的规范,版本为2025-06-18。据报道,此版本为.NET 开发者在 AI 应用开发中引入了多项新功能,包括更新的认证协议、启发式支持、结构化工具输出以及工具响应中的资源链接。

 

对于不太熟悉的读者,MCP 规范描述如下:

 

模型上下文协议(MCP)是一个开放协议,能够实现大语言模型(LLM)应用与外部数据源和工具之间的无缝集成。无论你是在构建 AI 驱动的集成开发环境(IDE)、增强聊天界面还是创建自定义 AI 的工作流,MCP 都提供了一种标准化的方式来连接 LLM 与它们所需的上下文。

 

这个版本中最值得注意的更新之一是新的认证协议。正如所解释的那样,它将认证服务器和资源服务器的角色分开,使其更容易与 OAuth 2.0 和 OpenID Connect 等广泛使用的标准集成。目标是提高在管理对外部资源访问时的灵活性和安全性。

 

另一个重要特性,如发布版所述,是启发式支持。这一新增功能允许服务器在交互过程中直接从用户请求结构化信息,从而实现更动态和上下文感知的 AI 体验。在服务器端,启发是通过 ElicitAsync 扩展方法处理的,这要求开发者为请求的输入值定义模式。这些模式仅限于字符串、数字和布尔值等原始类型,也可以包括指导用户的描述。

 

客户端应用程序可以通过声明支持来选择启发。在 C# SDK 中,这是通过ElicitationHandler管理的,它定义了如何收集用户输入并返回给服务器。根据用户是否提供请求的信息,处理器返回适当的 ElicitResult,将输入标记为接受或拒绝。

 

规范还增加了结构化的工具输出。以前,工具可以返回结构化数据,但需要客户端或语言模型在没有指导的情况下进行解析。随着最新的更新,工具可以为其输出返回显式定义的模式,允许应用程序更可靠地处理结果。C# SDK 自动为工具输出生成 JSON 模式,并将其包含在元数据中,以确保不同工具响应的一致性。

 

工具结果中也引入了对资源链接的支持。这一新增功能允许工具在其输出中包含对资源的直接引用,从而改进导航和发现。据报道,这对于创建或管理资源的工具特别有用,因为客户端可以轻松访问它们。下面是一个示例:


[McpServerTool][Description("创建一个具有随机值的资源,并返回指向该资源的链接。")]public async Task<CallToolResult> MakeAResource(){    int id = new Random().Next(1, 101); // 1到100(含)
var resource = ResourceGenerator.CreateResource(id);
var result = new CallToolResult();
result.Content.Add(new ResourceLinkBlock() { Uri = resource.Uri, Name = resource.Name });
return result;}
复制代码


除了主要的新增功能,新规范还带来了模式改进,例如增强的元数据支持和用户友好的标题,旨在使开发更顺畅,输出更易于访问。

 

开发者可以通过更新他们的 SDK 包来开始使用新功能:

 

dotnet add package ModelContextProtocol --prerelease
复制代码

 

发布还包括了最佳实践指南,强调了遵循适当的 OAuth 流程、验证启发式输入、使用资源指示符以及采纳协议中概述的安全建议的必要性。

 

MCP 团队强调,生态系统正在持续增长,并确认他们致力于保持 C# SDK 与最新规范更新的一致性。

 

对此感兴趣的读者,完整的发布说明可在官方渠道上找到。

 

原文链接:

https://www.infoq.com/news/2025/08/csharp-mcp-sdk-update/

2025-08-21 13:001

评论

发布
暂无评论
MCP C# SDK符合新协议规范,带来了安全性和工具更新_AI&大模型_InfoQ精选文章