Skip to main content
Glama
handlers.ts1.43 kB
import type { GetPromptResult } from '@modelcontextprotocol/sdk/types.js'; import type { Config } from '../config.js'; import type { Directus } from '../directus.js'; import type { McpPrompt } from './index.js'; import { createPromptResult } from '../utils/prompt-helpers.js'; import { fetchPromptByName } from './index.js'; /** * Handler for get-prompt requests. Fetches the prompt from Directus and processes it. * @param directus - The Directus client * @param config - The application configuration * @param promptName - The name of the prompt to fetch * @param args - The arguments to apply to the prompt template * @returns The processed prompt result */ export async function handleGetPrompt( directus: Directus, config: Config, promptName: string, args: Record<string, any> = {}, ): Promise<GetPromptResult> { const promptItem = await fetchPromptByName(directus, config, promptName); if (!promptItem) { throw new Error(`Prompt not found: ${promptName}`); } // Ensure messages is an array, even if empty const messages = promptItem.messages || []; return createPromptResult(messages, args, promptItem.systemPrompt); } /** * Returns all available prompts from Directus * @param prompts - Record of prompt name to prompt definition * @returns An array of MCP prompt definitions */ export function getAvailablePrompts(prompts: Record<string, McpPrompt>): McpPrompt[] { return Object.values(prompts); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JoshTheDerf/directus-extension-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server