UNPKG

marketing-post-generator-mcp

Version:

A powerful MCP server for AI-powered marketing blog post generation with Claude integration

90 lines 3.15 kB
import { Tool, Prompt } from '@modelcontextprotocol/sdk/types.js'; import winston from 'winston'; import { ToolRegistryEntry, PromptRegistryEntry, RegistryConfig, RegistryStats, DiscoveryEntry, DiscoveryMetadata, ExecutionContext, RegistryEvent } from './types.js'; /** * Central registry for managing MCP tools and prompts */ export declare class ToolAndPromptRegistry { private readonly tools; private readonly prompts; private readonly config; private readonly logger; private readonly eventListeners; constructor(config?: Partial<RegistryConfig>, logger?: winston.Logger); /** * Register a tool in the registry */ registerTool(toolDefinition: Tool, handler: (args: any) => Promise<any>, metadata?: Partial<Omit<ToolRegistryEntry, 'type' | 'toolDefinition' | 'handler'>>): Promise<void>; /** * Register a prompt in the registry */ registerPrompt(promptDefinition: Prompt, handler: (args: any) => Promise<string>, metadata?: Partial<Omit<PromptRegistryEntry, 'type' | 'promptDefinition' | 'handler'>>): Promise<void>; /** * Register multiple tools and prompts at once */ registerAll(tools: Array<{ definition: Tool; handler: (args: any) => Promise<any>; metadata?: Partial<Omit<ToolRegistryEntry, 'type' | 'toolDefinition' | 'handler'>>; }>, prompts: Array<{ definition: Prompt; handler: (args: any) => Promise<string>; metadata?: Partial<Omit<PromptRegistryEntry, 'type' | 'promptDefinition' | 'handler'>>; }>): Promise<void>; /** * Get a tool by name */ getTool(name: string): ToolRegistryEntry | undefined; /** * Get a prompt by name */ getPrompt(name: string): PromptRegistryEntry | undefined; /** * Get all tool definitions for MCP server registration */ getToolDefinitions(): Tool[]; /** * Get all prompt definitions for MCP server registration */ getPromptDefinitions(): Prompt[]; /** * Execute a tool by name */ executeTool(name: string, args: any, context?: Partial<ExecutionContext>): Promise<any>; /** * Execute a prompt by name */ executePrompt(name: string, args: any, context?: Partial<ExecutionContext>): Promise<string>; /** * Get discovery metadata for client exploration */ getDiscoveryMetadata(): DiscoveryMetadata; /** * Get discovery entries for client exploration */ getDiscoveryEntries(): DiscoveryEntry[]; /** * Get registry statistics */ getStats(): RegistryStats; /** * Add event listener for registry events */ addEventListener(listener: (event: RegistryEvent) => void): void; /** * Remove event listener */ removeEventListener(listener: (event: RegistryEvent) => void): void; /** * Clear all registered tools and prompts */ clear(): void; private registerEntry; private validateEntry; private generateId; private compareVersions; private formatVersion; private emitEvent; private log; } //# sourceMappingURL=ToolAndPromptRegistry.d.ts.map