UNPKG

@nestjs-mcp/server

Version:

Modular library for building scalable MCP servers with NestJS, providing decorators and integration patterns as a wrapper for the official MCP TypeScript SDK.

54 lines (53 loc) 1.97 kB
import { StreamableHTTPServerTransportOptions } from '@modelcontextprotocol/sdk/server/streamableHttp.js'; import { ProtocolOptions, RequestHandlerExtra as SdkRequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js'; import { Implementation, ServerCapabilities, ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types.js'; import { Provider, Type } from '@nestjs/common'; import { ZodOptional, ZodType, ZodTypeDef } from 'zod'; export type PromptArgsRawShape = { [k: string]: ZodType<string, ZodTypeDef, string> | ZodOptional<ZodType<string, ZodTypeDef, string>>; }; export type RequestHandlerExtra = SdkRequestHandlerExtra<ServerRequest, ServerNotification> & { headers: Record<string, string>; }; export type ServerOptions = { instructions?: string; capabilities?: ServerCapabilities; protocolOptions?: ProtocolOptions; }; export type McpServerOptions = { serverInfo: Implementation; options?: ServerOptions; logging?: McpLoggingOptions; }; export type McpLoggingOptions = { enabled?: boolean; level?: 'debug' | 'verbose' | 'log' | 'warn' | 'error'; }; export type McpModuleOptions = { imports?: Type<any>[]; providers?: Provider[]; name: string; version: string; instructions?: string; capabilities?: ServerCapabilities; protocolOptions?: ProtocolOptions; logging?: McpLoggingOptions; transports?: McpModuleTransportOptions; }; export type McpModuleTransportOptions = { streamable?: { enabled: boolean; options?: Omit<StreamableHTTPServerTransportOptions, 'onsessioninitialized' | 'sessionIdGenerator'> & { sessionIdGenerator?: () => string | undefined; }; }; sse?: { enabled: boolean; }; }; export type McpFeatureOptions = {}; export type McpModuleAsyncOptions = { imports?: any[]; useFactory: (...args: any[]) => Promise<McpModuleOptions> | McpModuleOptions; inject?: any[]; };