Skip to main content
Glama

SFCC Development MCP Server

by taurgis
best-practices-tool-config.ts3.02 kB
import { GenericToolSpec, ToolExecutionContext } from '../core/handlers/base-handler.js'; import { ToolArguments } from '../core/handlers/base-handler.js'; import { ValidationHelpers, CommonValidations } from '../core/handlers/validation-helpers.js'; import { SFCCBestPracticesClient } from '../clients/best-practices-client.js'; export const BEST_PRACTICE_TOOL_NAMES = [ 'get_available_best_practice_guides', 'get_best_practice_guide', 'search_best_practices', 'get_hook_reference', ] as const; export type BestPracticeToolName = typeof BEST_PRACTICE_TOOL_NAMES[number]; export const BEST_PRACTICE_TOOL_NAMES_SET = new Set<BestPracticeToolName>(BEST_PRACTICE_TOOL_NAMES); /** * Configuration for SFCC best practices tools * Maps each tool to its validation, execution, and messaging logic */ export const BEST_PRACTICES_TOOL_CONFIG: Record<BestPracticeToolName, GenericToolSpec<ToolArguments, any>> = { get_available_best_practice_guides: { defaults: (args: ToolArguments) => args, validate: (_args: ToolArguments, _toolName: string) => { // No validation needed for list operation }, exec: async (_args: ToolArguments, context: ToolExecutionContext) => { const client = context.bestPracticesClient as SFCCBestPracticesClient; return client.getAvailableGuides(); }, logMessage: (_args: ToolArguments) => 'List guides', }, get_best_practice_guide: { defaults: (args: ToolArguments) => args, validate: (args: ToolArguments, toolName: string) => { ValidationHelpers.validateArguments(args, CommonValidations.requiredString('guideName'), toolName); }, exec: async (args: ToolArguments, context: ToolExecutionContext) => { const client = context.bestPracticesClient as SFCCBestPracticesClient; return client.getBestPracticeGuide(args.guideName as string); }, logMessage: (args: ToolArguments) => `Guide ${args.guideName}`, }, search_best_practices: { defaults: (args: ToolArguments) => args, validate: (args: ToolArguments, toolName: string) => { ValidationHelpers.validateArguments(args, CommonValidations.requiredString('query'), toolName); }, exec: async (args: ToolArguments, context: ToolExecutionContext) => { const client = context.bestPracticesClient as SFCCBestPracticesClient; return client.searchBestPractices(args.query as string); }, logMessage: (args: ToolArguments) => `Search best practices ${args.query}`, }, get_hook_reference: { defaults: (args: ToolArguments) => args, validate: (args: ToolArguments, toolName: string) => { ValidationHelpers.validateArguments(args, CommonValidations.requiredString('guideName'), toolName); }, exec: async (args: ToolArguments, context: ToolExecutionContext) => { const client = context.bestPracticesClient as SFCCBestPracticesClient; return client.getHookReference(args.guideName as string); }, logMessage: (args: ToolArguments) => `Hook reference ${args.guideName}`, }, };

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/taurgis/sfcc-dev-mcp'

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