MCP-Nest
NestJS 框架扩展包,通过装饰器将业务代码快速暴露为 MCP 服务器,让 AI Agent 直接调用微服务工具与数据
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
NestJS 框架扩展包,通过装饰器将业务代码快速暴露为 MCP 服务器,让 AI Agent 直接调用微服务工具与数据
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:MCP-Nest 架构概览 — 将 NestJS 应用转化为 MCP 服务器的核心模块设计
想象一下,你是一家金融科技公司的 AI 架构师。团队用 NestJS 构建了核心业务系统(用户管理、风控引擎、交易路由),现在希望让 AI Agent 能够调用这些系统的工具和数据。
传统的做法是手动写一堆 API 端点、操心请求验证、处理各种边界情况——而 MCP-Nest 的出现,就是为了解决这个痛点。它让 NestJS 开发者用熟悉的装饰器语法,直接把业务代码暴露给 AI Agent,无需重复造轮子。
MCP(Model Context Protocol)是 Anthropic 在 2024 年末推出的开放协议,旨在标准化 AI 模型与外部工具/数据的交互方式。MCP-Nest 则填补了 NestJS 生态在这块的空白,让 NestJS 应用无缝接入 MCP 生态,成为 AI 眼中的"工具仓库"。项目由 reKog Labs 维护,当前版本 1.9.7-alpha,GitHub 获星 663 颗。
MCP-Nest 的功能设计围绕两个核心维度展开:传输协议和MCP 能力。
项目支持三种 MCP 传输协议,开发者可以根据实际场景选择:
HTTP + SSE(Server-Sent Events):适合 Web 场景,服务器主动推送事件到客户端。playground 中提供了完整的 http-sse.ts 客户端示例,包含 OAuth 认证版本。
Streamable HTTP:MCP 官方推荐的 HTTP 传输方式,支持请求/响应流式交互,playground 提供了 http-streamable.ts 客户端。
STDIO:标准输入输出,适合命令行工具和本地 AI 集成,playground 提供了 stdio-client.ts。
这种多协议设计体现了良好的工程品味:传输层与业务逻辑完全解耦,切换协议只需修改模块配置,不需要改动任何业务代码。
MCP 协议定义了三种能力,MCP-Nest 对每一种都提供了完整的装饰器支持:
Tools(工具):用 @Tool() 装饰器将 NestJS 服务方法暴露为 AI 可调用的工具。通过 Zod schema 做参数验证,支持 Elicitation(交互式参数收集)、HTTP 请求上下文注入、每工具级别的权限守卫。这部分代码集中在 src/mcp/providers/tool.provider.ts 和 src/mcp/services/tool.service.ts。
Resources(资源):用 @Resource() 装饰器暴露数据内容给 AI,类似文件系统。playground 中 greeting.resource.ts 演示了如何从服务方法返回结构化数据。
Prompts(提示模板):用 @Prompt() 装饰器定义可复用的 AI 提示模板,支持动态参数注入,适合构建领域专家级 Agent 提示词库。
MCP-Nest 最有价值的设计,是将 NestJS 的依赖注入(DI)系统与 MCP 协议深度融合。
开发者可以在 Tool/Resource/Prompt 的处理函数中,注入任何 NestJS Provider——数据库服务、HTTP 客户端、缓存层、配置服务。这解决了企业级 MCP 服务器开发中最实际的问题:如何复用现有业务逻辑?
以 playground 中的 analytics-feature 为例,假设有一个 AnalyticsService 处理数据聚合,直接在 Tool 方法中注入使用即可,无需为 MCP 单独写一套数据访问代码。这种模式在微服务架构中尤为强大——每个 NestJS 微服务都可以独立暴露自己的 MCP 接口,形成 Agent 友好的服务网格。
企业级应用离不开安全认证。MCP-Nest 内置了完整的 MCP Authorization 规范(2025-06-18 版本)实现,提供两套认证方案:
内置授权服务器:集成 GitHub 和 Google OAuth 提供商,零外部依赖快速上手,适合原型和小规模部署。
外部授权服务器:支持对接 Keycloak、Auth0、Azure AD 等企业身份提供商,提供了完整的 Keycloak docker-compose 配置示例(包括 realm-config JSON)和 Azure AD 集成文档。
存储层支持内存存储(开发用)和 TypeORM 持久化存储(生产用),OAuth 客户端注册支持动态注册(RFC 7591),全面支持 PKCE。
项目在代码质量上展现了高标准:
dist/index.d.ts,consumer 可获得完整的类型提示playground/ 作为集成测试 Workspace,通过 bun.lock 管理依赖MCP-Nest 并非银弹,以下几点值得注意:
alpha 版本风险:当前版本 1.9.7-alpha,生产环境引入需评估升级风险。
NestJS 强依赖:包本身面向 NestJS 开发者,无法用于其他 Node.js 框架(如 Fastify 裸用),虽然支持 @nestjs/platform-fastify 作为可选适配器。
MCP 协议尚在演进:MCP 协议本身还在快速迭代,SDK 版本耦合较紧(peerDeps 要求 @modelcontextprotocol/sdk >= 1.10.0)。
MCP-Nest 代表着 AI Agent 基础设施向企业应用层渗透的大趋势。随着 Claude Desktop、Cursor、VS Code Copilot 等主流 AI 工具陆续支持 MCP 协议,MCP 服务器将成为 AI 应用的标准"工具后端"。
MCP-Nest 的核心价值场景包括:企业知识库 Agent(将内部文档系统暴露给 AI)、数据分析 Agent(连接现有 BI 系统)、业务流程 Agent(调用内部微服务 API)、智能客服(整合 CRM/工单系统)。
对于已有 NestJS 技术栈的团队,MCP-Nest 是目前最成熟、最完整的 MCP 服务器开发方案——不需要学新框架,用熟悉的装饰器和 DI 模式,就能构建生产级的 MCP 工具后端。