🚀 NestJS MCP 模塊
NestJS MCP 模塊為 NestJS 應用提供了 MCP 服務器的集成能力,可幫助開發者快速搭建和配置 MCP 服務器,支持工具和攔截器的註冊與使用。
🚀 快速開始
📦 安裝模塊
通過 npm 或 yarn 安裝模塊:
npm install @rekog/mcp-nest
yarn add @rekog/mcp-nest
🚀 初始化 MCP 服務器
在您的 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 { 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 {}
🔍 Playground
playground
目錄包含快速測試 MCP 和 @rekog/mcp-nest
功能的示例。請參考 playground/README.md
瞭解更多細節。
📚 詳細文檔
詳細文檔請訪問 NestJS MCP 模塊官方文檔。
🔧 技術細節
配置選項
McpModule.forRoot()
方法接受一個 McpOptions
對象來配置服務器。以下是可用的選項:
屬性 |
詳情 |
名稱 |
必需。您的 MCP 服務器名稱。 |
版本 |
必需。您的 MCP 服務器版本。 |
能力 |
可選的 MCP 服務器能力,用於 advertise。See @modelcontextprotocol/sdk。 |
指令 |
可選的指令,供客戶端了解如何與服務器交互。 |
傳輸類型 |
指定要啟用的傳輸類型。 |
上下文工廠 |
自定義上下文工廠。 |
工具列表 |
註冊的工具列表。 |
攔截器列表 |
註冊的攔截器列表。 |
配置器列表 |
配置器列表,用於自定義 MCP 服務器行為。 |
攔截器
創建一個攔截器
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 {}
📄 許可證
項目在 MIT License 下開源。
維護者