MCP C# SDK 1.0:一次写工具处处可用
官方 MCP C# SDK 1.0.0 正式发布,支持 stdio 或 HTTP 连接,让 Claude Code 等多个 AI 客户端共享同一套工具,避免重复编码。
官方 MCP C# SDK 1.0.0 正式发布,支持 stdio 或 HTTP 连接,让 Claude Code 等多个 AI 客户端共享同一套工具,避免重复编码。
官方 ModelContextProtocol C# SDK(1.0.0)让你只需编写一次工具,就能通过 stdio 或 HTTP 在 Claude Code 中使用——再也不用在不同应用之间复制粘贴工具代码。
官方 ModelContextProtocol C# SDK 已发布 1.0.0 版本(与 Microsoft 共同维护)。它不再是预览版或实验性封装,而是在 .NET 中构建 MCP Server 的稳定、可用于生产环境的方案。
如果你一直把 Claude Code 工具写成内联函数,或者在不同项目之间复制粘贴,那么这次更新将彻底改变这种开发方式。你只需将工具编写一次,作为独立 Server 运行,任何 MCP Client——Claude Code、Claude Desktop 或你自己的 Agent——都能连接并直接使用这些工具。
你的工具将不再依赖特定进程。Client(Claude Code)可以把 Server 作为子进程启动(stdio),也可以通过网络连接(HTTP)。工具位于进程边界的另一侧,可供任意 Client 复用,而不再硬编码到某个应用中。
核心模式如下:
[McpServerToolType]
public sealed class CoffeeTools(CoffeeShopData data)
{
[McpServerTool, Description("Consulta el estado y la fecha estimada de entrega de un pedido por su id.")]
public string GetOrderStatus(
[Description("Id del pedido, p. ej. A-1001")] string orderId) =>
data.Orders.TryGetValue(orderId, out var order)
? $"Pedido {order.Id}: {order.Status}, ETA {order.Eta}."
: "No hay ningún pedido con ese id.";
}
SDK 会读取方法签名并自动生成 JSON Schema。你不再需要手动编写 Schema,也不必维护 switch 语句。

dotnet new console -o AuroraCoffee.Mcp
cd AuroraCoffee.Mcp
dotnet add package ModelContextProtocol
dotnet add package Microsoft.Extensions.Hosting
将数据定义为可注入的 service(使用 singleton,就像真实的 repository 一样)。
使用 [McpServerTool] 标记工具方法,并在方法及其每个参数上添加 [Description]。
在 Program.cs 中使用 generic host 完成配置——沿用任何 .NET service 都会使用的同一套 DI 和配置方式。
将 Claude Code 连接到你的 Server:
claude mcp add aurora-coffee -- dotnet run --project AuroraCoffee.Mcp
如果你希望团队共享这个 Server,也可以使用 HTTP transport:
claude mcp add --transport http aurora-coffee https://your-server.example.com/mcp
MCP Server 会暴露三类能力:
tools——模型可以调用的操作(本文重点)
resources——可读取的数据(文件、数据行)
prompts——可复用的 prompt 模板
如果多个应用都需要某个工具——例如查询订单、检查库存、执行数据库查询或调用内部 API——就把它构建一次,作为 MCP Server 提供服务。这样,每个 Claude Client 都能使用它。这正是 MCP 要消除的耦合。
[于 8 月 1 日通过 devto_mcp 更新]
dev.to 上还出现了一种与之互补、更加关注安全性的模式:开发者没有向 AI 暴露原始 shell,而是构建了一个 MCP Server,只允许执行八项列入 allowlist 的操作——get_system_health、get_disk_usage、list_containers、get_container_logs、get_service_status、check_nginx_configuration、check_ssl_expiry、check_database_health。该 Server 在本地通过 stdio 运行,经由 SSH 连接到一个没有 sudo 权限的专用 VPS 用户,并将结构化 JSON 转发给由 root 所有的脚本。它拒绝提供任何自由形式的 execute(command) 工具,理由是绝不能让概率模型获得任意命令执行权限。这为 C# SDK 的工具模式提供了一个有价值的对照,展示了同一种 MCP 抽象如何实施严格的运维边界。
最初发布于 gentic.news。
如需采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。