@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.
31 lines (30 loc) • 1.59 kB
TypeScript
import { ToolAnnotations } from '@modelcontextprotocol/sdk/types';
import { ZodRawShapeCompat } from '@modelcontextprotocol/sdk/server/zod-compat.js';
export interface ToolBaseOptions {
name: string;
}
export interface ToolWithDescriptionOptions extends ToolBaseOptions {
description: string;
}
export interface ToolWithParamsSchemaOptions extends ToolBaseOptions {
paramsSchema: ZodRawShapeCompat;
}
export interface ToolWithParamsSchemaAndDescriptionOptions extends ToolWithParamsSchemaOptions {
description: string;
}
export interface ToolWithAnnotationsOptions extends ToolBaseOptions {
annotations: ToolAnnotations;
}
export interface ToolWithAnnotationsAndDescriptionOptions extends ToolWithAnnotationsOptions {
description: string;
}
export interface ToolWithParamsSchemaAndAnnotationsOptions extends ToolBaseOptions {
paramsSchema: ZodRawShapeCompat;
annotations: ToolAnnotations;
}
export interface ToolWithParamsSchemaAndAnnotationsAndDescriptionOptions extends ToolWithParamsSchemaAndAnnotationsOptions {
description: string;
}
export type ToolOptions = ToolBaseOptions | ToolWithDescriptionOptions | ToolWithParamsSchemaOptions | ToolWithParamsSchemaAndDescriptionOptions | ToolWithAnnotationsOptions | ToolWithAnnotationsAndDescriptionOptions | ToolWithParamsSchemaAndAnnotationsOptions | ToolWithParamsSchemaAndAnnotationsAndDescriptionOptions;
export declare const MCP_TOOL = "__mcp_tool__";
export declare function Tool(options: ToolOptions): (target: object, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;