NestJS MCP 模块为 NestJS 应用提供了 MCP 服务器的集成能力,可帮助开发者快速搭建具备特定功能的服务器,实现工具注册、拦截器配置等功能。
要开始使用 NestJS MCP 模块,请按照以下步骤进行:
通过 npm 或 yarn 安装模块:
npm install @rekog/mcp-nest
# 或者
yarn add @rekog/mcp-nest
在您的 NestJS 应用中初始化 MCP 服务器:
import { Module } from '@nestjs/common';
import { McpModule } from '@rekog/mcp-nest';
@Module({
imports: [
McpModule.forRoot({
name: 'my-mcp-server',
version: '1.0.0',
}),
],
})
export class AppModule {}
import { McpTool, McpContext } from '@rekog/mcp-nest';
export class MyAwesomeTool implements McpTool {
async execute(context: McpContext): Promise<void> {
// 在此处实现您的工具逻辑
}
}
import { Module } from '@nestjs/common';
import { McpModule } from '@rekog/mcp-nest';
@Module({
imports: [
McpModule.forRoot({
name: 'my-mcp-server',
version: '1.0.0',
}),
],
})
export class AppModule {}
import { McpInterceptor } from '@rekog/mcp-nest';
export class MyAwesomeInterceptor implements McpInterceptor {
intercept(context: any, next: Function): any {
// 在此处实现您的拦截逻辑
return next();
}
}
import { Module } from '@nestjs/common';
import { McpModule } from '@rekog/mcp-nest';
@Module({
imports: [
McpModule.forRoot({
name: 'my-mcp-server',
version: '1.0.0',
}),
],
})
export class AppModule {}
详细文档请访问 NestJS MCP 模块官方文档。
playground
目录包含快速测试 MCP 和 @rekog/mcp-nest
功能的示例。请参考 了解更多细节。
McpModule.forRoot()
方法接受一个 McpOptions
对象来配置服务器。以下是可用的选项:
属性 | 详情 |
---|---|
名称 | 必需。您的 MCP 服务器名称。 |
版本 | 必需。您的 MCP 服务器版本。 |
能力 | 可选的 MCP 服务器能力,用于 advertise。See @modelcontextprotocol/sdk。 |
指令 | 可选的指令,供客户端了解如何与服务器交互。 |
传输类型 | 指定要启用的传输类型。 |
上下文工厂 | 自定义上下文工厂。 |
工具列表 | 注册的工具列表。 |
拦截器列表 | 注册的拦截器列表。 |
配置器列表 | 配置器列表,用于自定义 MCP 服务器行为。 |
创建一个简单的工具:
import { McpTool, McpContext } from '@rekog/mcp-nest';
export class HelloTool implements McpTool {
async execute(context: McpContext): Promise<void> {
await context.send('Hello, World!');
}
}
注册工具:
import { Module } from '@nestjs/common';
import { McpModule } from '@rekog/mcp-nest';
@Module({
imports: [
McpModule.forRoot({
name: 'my-mcp-server',
version: '1.0.0',
tools: [HelloTool],
}),
],
})
export class AppModule {}
创建一个简单的拦截器:
import { McpInterceptor } from '@rekog/mcp-nest';
export class LoggingInterceptor implements McpInterceptor {
intercept(context: any, next: Function): any {
console.log('请求开始');
const result = next();
console.log('请求结束');
return result;
}
}
注册拦截器:
import { Module } from '@nestjs/common';
import { McpModule } from '@rekog/mcp-nest';
@Module({
imports: [
McpModule.forRoot({
name: 'my-mcp-server',
version: '1.0.0',
interceptors: [LoggingInterceptor],
}),
],
})
export class AppModule {}
项目在 MIT License 下开源。