MCP服务器模块

一个NestJS模块,用于通过Model Context Protocol (MCP)轻松暴露AI工具、资源和提示。

  • by chainstream-io
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 chainstream-io/dex-mcp-server

使用说明

NestJS MCP服务器模块

NestJS模块,使用 模型上下文协议(MCP).

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

特性

  • 🚀 多运输支持:HTTP+SSE、流式HTTP和STDIO
  • 🔧 工具:将NestJS方法公开为具有自动发现和Zod验证的MCP工具
    • 🛠️ 引出:带有用户输入启发的交互式工具调用
    • 📊 进度通知:长时间运行的操作的实时进度更新
    • 🌐 HTTP请求访问:完全访问MCP处理程序中的请求上下文
  • 📁 资源:通过MCP资源系统提供内容和数据
  • 📚 资源模板:具有参数化URI的动态资源
  • 💬 提示:为AI交互定义可重用的提示模板
  • 🔐 基于警卫的身份验证:基于OAuth支持的警卫安全
  • 🏠 内置授权服务器 --使用内置的授权服务器进行轻松设置。 (测试版)
  • 🌐 外部授权服务器 --使用外部授权服务器(Keycloak、Auth0等)保护您的MCP服务器。
  • 💉 依赖注入:在MCP组件中利用NestJS DI系统

安装

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

快速开始

// 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}!`;
  }
}

文档

游乐场

这 playground 目录包含所有功能的工作示例。 参见 playground/README.md 了解详情。