一个 NestJS 模块,用于轻松地通过 模型上下文协议(MCP) 在您的 NestJS 应用程序中暴露工具、资源和提示。
使用 @rekog/mcp-nest,您可以以熟悉的方式在 NestJS 中定义工具、资源和提示,并利用依赖注入的全部功能来利用现有的代码库构建复杂的、企业级的 MCP 服务器。
您是否对构建 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。