import { Module, type DynamicModule, type Provider } from '@nestjs/common'; import { McpRegistryService } from './mcp-registry.service'; import { McpTransportController } from './mcp-transport.controller'; import { MCP_MODULE_OPTIONS } from './mcp.constants'; export interface McpModuleOptions { aiServiceBaseUrl: string; typesenseCollectionName?: string; } export { MCP_MODULE_OPTIONS }; @Module({}) export class McpModule { static forRoot(options: McpModuleOptions): DynamicModule { const optionsProvider: Provider = { provide: MCP_MODULE_OPTIONS, useValue: options, }; return { module: McpModule, controllers: [McpTransportController], providers: [optionsProvider, McpRegistryService], exports: [McpRegistryService], global: false, }; } }