/api
/decorators

Decorators API Reference

@Tool

Define MCP tools.

@Tool(options: ToolOptions)

interface ToolOptions {
  name: string;
  description: string;
  inputSchema?: ZodObject;
  examples?: {
    request?: any;
    response?: any;
  };
}

@Resource

Define MCP resources.

@Resource(options: ResourceOptions)

interface ResourceOptions {
  uri: string;
  name: string;
  description: string;
  mimeType?: string;
  examples?: {
    response?: any;
  };
}

@Prompt

Define MCP prompts.

@Prompt(options: PromptOptions)

interface PromptOptions {
  name: string;
  description: string;
  arguments?: Array<{
    name: string;
    description: string;
    required?: boolean;
  }>;
}

@Module

Define modules.

@Module(options: ModuleOptions)

interface ModuleOptions {
  name: string;
  description?: string;
  controllers?: any[];
  providers?: any[];
  imports?: any[];
  exports?: any[];
}

@UseGuards

Apply guards.

@UseGuards(...guards: any[])

@UseMiddleware

Apply middleware.

@UseMiddleware(...middleware: any[])

@UseInterceptors

Apply interceptors.

@UseInterceptors(...interceptors: any[])

@Cache

Cache responses.

@Cache(options: CacheOptions)

interface CacheOptions {
  ttl: number;  // seconds
  key?: (input: any) => string;
}

@RateLimit

Rate limit requests.

@RateLimit(options: RateLimitOptions)

interface RateLimitOptions {
  requests: number;
  window: string;  // '1m', '1h', etc.
  key?: (ctx: ExecutionContext) => string;
}

@Injectable

Mark for dependency injection.

@Injectable()

@Widget

Attach UI widget.

@Widget(widgetName: string)

Next Steps