Skip to main content
Glama

Git MCP Server

prompt-registration.ts1.92 kB
/** * @fileoverview Service for registering MCP prompts on a server instance. * Prompts are structured message templates that users can discover and invoke. * * MCP Prompts Specification: * @see {@link https://modelcontextprotocol.io/specification/2025-06-18/basic/prompts | MCP Prompts} * @module src/mcp-server/prompts/prompt-registration */ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { inject, injectable } from 'tsyringe'; import { Logger } from '@/container/tokens.js'; import { allPromptDefinitions } from './definitions/index.js'; import { logger as defaultLogger, requestContextService, } from '@/utils/index.js'; @injectable() export class PromptRegistry { constructor(@inject(Logger) private logger: typeof defaultLogger) {} /** * Registers all prompts on the given MCP server. */ registerAll(server: McpServer): void { const context = requestContextService.createRequestContext({ operation: 'PromptRegistry.registerAll', }); this.logger.debug( `Registering ${allPromptDefinitions.length} prompts...`, context, ); // Register each prompt using the SDK's registerPrompt API for (const promptDef of allPromptDefinitions) { this.logger.debug(`Registering prompt: ${promptDef.name}`, context); server.registerPrompt( promptDef.name, { description: promptDef.description, ...(promptDef.argumentsSchema && { argsSchema: promptDef.argumentsSchema.shape, }), }, async (args: Record<string, unknown>) => { const messages = await promptDef.generate(args as never); return { messages }; }, ); this.logger.info(`Registered prompt: ${promptDef.name}`, context); } this.logger.info( `Successfully registered ${allPromptDefinitions.length} prompts`, context, ); } }

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/cyanheads/git-mcp-server'

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