NestJS MCP服务器模块
  ](https://www.npmjs.com/package/@rekog/mcp-nest) ](https://www.npmjs.com/package/@rekog/mcp-nest) ](https://www.npmjs.com/package/@rekog/mcp-nest)
NestJS模块,使用 模型上下文协议(MCP).
随着 @rekog/mcp-nest 您可以以NestJS中熟悉的方式定义工具、资源和提示,并利用依赖注入的全部功能来利用现有的代码库构建复杂的企业级MCP服务器。
特性
- 🛠️ 引出:带有用户输入启发的交互式工具调用 - 🌐 HTTP请求访问:完全访问MCP处理程序中的请求上下文 - 🔐 按工具授权:对工具实施细粒度授权
- 📁 资源:通过MCP资源系统提供内容和数据
- 📚 资源模板:具有参数化URI的动态资源
- 💬 提示:为AI交互定义可重用的提示模板
- 🔐 基于警卫的身份验证:基于OAuth支持的警卫安全
- 🏠 内置授权服务器 --使用内置的授权服务器进行轻松设置。 (测试版)
- 🌐 外部授权服务器 --使用外部授权服务器(Keycloak、Auth0等)保护您的MCP服务器。
- 💉 依赖注入:在MCP组件中利用NestJS DI系统
- 🔍 服务器突变和检测 --出于自定义逻辑或检测的目的,对底层mcp服务器进行修改。
您是否有兴趣构建ChatGPT小部件(使用OpenAI SDK)或MCP应用程序? 了解如何使用 @rekog/MCP-Nest 在此存储库中 MCP巢样品
\[!提示\]
安装
npm install @rekog/mcp-nest @modelcontextprotocol/sdk zod@^4可选依赖关系
如果将内置授权服务器与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: 'Returns a greeting with progress updates',
parameters: z.object({
name: z.string().default('World'),
}),
})
async sayHello({ name }, context: Context) {
await context.reportProgress({ progress: 50, total: 100 });
return `Hello, ${name}!`;
}
}文档
- 工具指南 -将NestJS方法定义为MCP工具并公开
- 工具的发现和注册 -工具的自动发现和手动注册
- 动态能力指南 -在运行时以编程方式注册工具、资源和提示
- 资源指南 -提供静态和动态内容
- 资源模板指南 -创建参数化资源
- 提示指南 -构建可重用的提示模板
- 内置授权服务器 -使用内置OAuth保护您的MCP服务器
- 外部授权服务器 -使用外部授权服务器(Keycloak、Auth0等)保护您的MCP服务器
- 服务器示例 -MCP服务器示例(流式HTTP、HTTP和STDIO)和Fastify支持
操场
这 playground 目录包含所有功能的工作示例。 参见 playground/README.md 了解详情。
