现在大模型和 AI Agent 越来越火,让 AI 能调用我们自己的系统接口,也就是接入 MCP 协议(Model Context Protocol),成了很多开发者的新需求。但实际操作起来,痛点很明显:为 AI 重新写一套接口?现有的业务代码已经稳定运行,重写不仅成本高,还容易引入新问题。直接通过反射调用内部方法?更危险——原来接口上的 [Authorize] 权限验证、数据校验、限流拦截、全局异常处理全都会失效,相当于把系统的安全防线全部撤掉了。

今天推荐一个超好用的开源组件:Nabu.NET。它能让你的老 API 几乎零修改超安全地变成 MCP Server。

为什么选 Nabu.NET?

1. 接入超级简单

不用改业务逻辑,只需在 Controller 的 Action 或 Minimal API 的路由上添加一个 [McpTool] 标签或调用 .McpTool() 方法即可。工具的输入输出 Schema 会根据你的 CLR 类型、数据注解和可空性自动生成,连接口文档里的 XML 注释都能自动变成工具描述。

2. 绝对安全(核心卖点)

这是 Nabu.NET 与其他方案最大的不同。AI 每次调用工具时,Nabu 并不会直接反射调用你的方法,而是在底层模拟一次真实的 HTTP 请求,完整走过 ASP.NET Core 的整个请求管道。这意味着什么?你原来所有的登录验证、权限控制、限流拦截、模型绑定、全局异常处理全都会正常工作。同一个接口,通过 HTTP 调用返回 403 的用户,通过 MCP 调用同样返回错误结果,AI 绝对无法越权。

3. 智能隐藏,按权限展示工具

AI 只能看到它"有权限"调用的工具。tools/list 会基于你现有的授权策略进行评估,没权限的工具对 AI 直接隐身。

4. 保护敏感头部

Nabu 会自动保护 AuthorizationCookie 等敏感头部,模型传入的参数永远无法覆盖这些关键信息。

3 步快速上手

1. 安装 NuGet 包

dotnet add package Nabu.Mcp.AspNetCore

2. 在 Program.cs 中开启服务

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddNabuMcp(options => {
    options.ServerName = "my-api";
    options.RequireAuthorization = true;      // 保护 MCP 端点本身
    options.ToolVisibility = McpToolVisibility.Authorized; // 只展示调用者有权限的工具
});

// ... 中间件配置 ...
app.UseAuthentication();
app.UseAuthorization();
app.UseNabuMcp(); // 开启 MCP 服务,默认路径是 /mcp

3. 给接口加个标签

MVC Controller:

[Authorize] // 原有的权限验证依然有效!
[HttpGet("{id}")]
[McpTool]   // 👈 加上这个,AI 就能调用它了
public ActionResult<Todo> GetTodo(int id) { ... }

Minimal API:

app.MapGet("/todo/{id}", (int id) => ...)
   .McpTool(); // 👈 加这一句即可

搞定!现在你的 AI 客户端就可以通过 /mcp 端点发现并调用这些接口了。

更多高级玩法

  • 一个 Action 暴露多个工具:可以在同一个 Action 上多次使用 [McpTool],每次指定不同的名称、参数子集和固定值。

  • 官方 SDK 适配:Nabu 提供了 Nabu.Mcp.ModelContextProtocol 适配器,可以通过官方 MCP C# SDK 提供相同的工具。

  • 广泛兼容:支持 netstandard2.0(ASP.NET Core 2.1+)、net8.0 和 net10.0,MIT 协议开源。

资源链接

  • GitHub:https://github.com/hovik-aghajanyan/nabu.net

  • NuGet: https://www.nuget.org/packages/Nabu.Mcp.AspNetCore

  • 文档: nabu.aghajanyan.mhttps://nabu.aghajanyan.me/

总结:如果你有一套现成的 ASP.NET Core API,想快速且安全地接入 AI 生态,Nabu.NET 绝对是目前最省心的选择。它不要求你重写任何业务逻辑,不破坏现有的安全体系,只需一行标签,就能让 AI 安全地调用你的接口。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐