/**
* Prompt Registry
* Central registry for all MCP prompts (workflow templates)
*/
import type {
Prompt,
GetPromptResult,
} from '@modelcontextprotocol/sdk/types.js';
/**
* Prompt handler function type
*/
export type PromptHandler = (
args: Record<string, string>
) => Promise<GetPromptResult>;
/**
* Prompt definition with handler
*/
export interface PromptDefinition {
definition: Prompt;
handler: PromptHandler;
}
/**
* Registry of all available prompts
*/
const prompts = new Map<string, PromptDefinition>();
/**
* Register a new prompt
*/
export function registerPrompt(prompt: PromptDefinition): void {
prompts.set(prompt.definition.name, prompt);
}
/**
* Get all registered prompts
*/
export function getAllPrompts(): Prompt[] {
return Array.from(prompts.values()).map((p) => p.definition);
}
/**
* Get a prompt handler by name
*/
export function getPromptHandler(name: string): PromptHandler | undefined {
return prompts.get(name)?.handler;
}
/**
* Check if a prompt exists
*/
export function hasPrompt(name: string): boolean {
return prompts.has(name);
}
// No prompts registered yet
// To add a prompt, import it and register:
// import { myPrompt, handleMyPrompt } from './my-prompt.js';
// registerPrompt({ definition: myPrompt, handler: handleMyPrompt });