返回市场
巢状MCP

巢状MCP

作者:rekog-labs512 星标更新:2025-11-20

项目介绍

NestJS MCP Server 模块

<div align="center"> <img src="https://gips1.baidu.com/it/u=1492273530,3199017580&fm=3081&app=3081&f=PNG?w=640&h=526" height="200">

CI 代码覆盖率 NPM 版本 NPM 下载量 NPM 许可证

</div>

一个 NestJS 模块,用于轻松地通过 模型上下文协议(MCP) 在您的 NestJS 应用程序中暴露工具、资源和提示。

使用 @rekog/mcp-nest,您可以以熟悉的方式在 NestJS 中定义工具、资源和提示,并利用依赖注入的全部功能来利用现有的代码库构建复杂的、企业级的 MCP 服务器。

功能

  • 🚀 多传输支持:HTTP+SSE、可流式传输的 HTTP 和 STDIO
  • 🔧 工具:将 NestJS 方法作为 MCP 工具暴露出来,具有自动发现和 Zod 验证功能
  • 📁 资源:通过 MCP 资源系统提供内容和数据
  • 📚 资源模板:带有参数化 URI 的动态资源
  • 💬 提示:为 AI 交互定义可重用的提示模板
  • 🔐 基于守卫的身份验证:支持 OAuth 的基于守卫的安全性
  • 🏠 内置授权服务器 — 使用内置授权服务器进行简单设置。(测试版)
  • 🌐 外部授权服务器 — 使用外部授权服务器(如 Keycloak、Auth0 等)保护您的 MCP 服务器
  • 💉 依赖注入:在整个 MCP 组件中利用 NestJS DI 系统

您是否对构建 ChatGPT 小部件(使用 OpenAI SDK)感兴趣? 了解如何使用此仓库中的 @rekog/MCP-Nest 进行构建 MCP-Nest-Samples/pizzaz-openai-apps-sdk

安装

npm install @rekog/mcp-nest @modelcontextprotocol/sdk zod@^3

可选依赖项

如果您使用带有 TypeORM 存储的内置授权服务器,请安装以下可选同级依赖项:

npm install @nestjs/typeorm typeorm

快速开始

// app.module.ts
import { Module } from '@nestjs/common';
import { McpModule } from '@rekog/mcp-nest';
import { GreetingTool } from './greeting.tool';

@Module({
  imports: [
    McpModule.forRoot({
      name: 'my-mcp-server',
      version: '1.0.0',
    }),
  ],
  providers: [GreetingTool],
})
export class AppModule {}
// greeting.tool.ts
import { Injectable } from '@nestjs/common';
import { Tool, Context } from '@rekog/mcp-nest';
import { z } from 'zod';

@Injectable()
export class GreetingTool {
  @Tool({
    name: 'greeting-tool',
    description: '返回带有进度更新的问候语',
    parameters: z.object({
      name: z.string().default('World'),
    }),
  })
  async sayHello({ name }, context: Context) {
    await context.reportProgress({ progress: 50, total: 100 });
    return `Hello, ${name}!`;
  }
}

文档

实验室

playground 目录包含所有功能的工作示例。 详情请参阅 playground/README.md

<!-- 徽标 -->