大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

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:009563

评论

发布
暂无评论

使用 K8s 进行作业调度实战分享

后端进阶

学习 Kubernetes 容器 k8s 调度式分布

科普小知识:区块链与分布式系统

CECBC

区块链 分布式

聊聊微服务

炜娓道来程序人生

架构 微服务 SOA

Android |《看完不忘系列》之dagger

哈利迪

android

难以遏制的人因差错-Go的日志工具之痛

田晓亮

微服务 Go 语言

面经手册 · 第7篇《ArrayList也这么多知识?一个指定位置插入就把谢飞机面晕了!》

小傅哥

Java 数据结构 面试 小傅哥 ArrayList

OPPO互联网DevSecOps实践

OPPO安全

DevOps 安全

【Elasticsearch 技术分享】—— ES 查询检索数据的过程,是什么样子的?

程序员小航

Java elasticsearch 搜索 ES Lucene Elastic Search

甲方日常2

句子

工作 随笔杂谈 日常

第11周总结+作业

林毋梦

Flink-键值分区状态-10

小知识点

scala 大数据 flink

Woman、man、camera、TV:如何做一个完整的深度学习应用

LeanCloud

学习 程序员 互联网 容器 LeanCloud

月度工作汇报,为什么要全球直播?

赵新龙

TGO鲲鹏会 技术社区 开源社区

前端智能化的加速时刻:华为机器视觉的创新方程式

脑极体

区块链是一个有去无返的奇幻旅程

CECBC

区块链

Docker 镜像构建之 Dockerfile

哈喽沃德先生

Docker 容器 微服务

为什么中国出了这么多厉害的互联网公司,但没有自己设计过编程语言?

代码制造者

编程语言 低代码 企业信息化 零代码 编程开发

《搞定1》读书笔记

超超不会飞

炒股不要看K线图(分享最近学习投资的一点心得)

Nick

投资 理财

迎接物联网时代,区块链大有可为

CECBC

云计算 大数据 区块链技术

Luajit字节码分析之KSTR

whosemario

lua

Java | 你知道快速搭建一个spring boot项目该怎么做吗?

简爱W

Redis系列(二):Redis的5种数据结构及其常用命令

简爱W

CRM企业到底该不该做PaaS?

ToB行业头条

PaaS SaaS CRM

解决数据指数级增长挑战,英特尔如何又快又好提供领导力产品?

最新动态

Apache Pulsar 2.6.1 版本正式发布:2.6.0 功能增强版,新增 OAuth2 支持

Apache Pulsar

消息队列 Apache Pulsar 消息系统 消息中间件

零代码简史

明道云

SaaS

Redis系列(一):Redis简介及环境安装

简爱W

性能相关,内存

Linuxer

性能

面试官再问你Http请求过程,怼回去!

架构师修行之路

HTTP TCP/IP

有选择才会有困惑

escray

学习 面试

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