Skip to main content
Glama

SFCC Development MCP Server

by taurgis
sfra-tool-config.ts3.47 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 { SFRAClient } from '../clients/sfra-client.js'; export const SFRA_TOOL_NAMES = [ 'get_available_sfra_documents', 'get_sfra_document', 'search_sfra_documentation', 'get_sfra_documents_by_category', 'get_sfra_categories', ] as const; export type SFRAToolName = typeof SFRA_TOOL_NAMES[number]; export const SFRA_TOOL_NAMES_SET = new Set<SFRAToolName>(SFRA_TOOL_NAMES); /** * Configuration for SFRA documentation tools * Maps each tool to its validation, execution, and messaging logic */ export const SFRA_TOOL_CONFIG: Record<SFRAToolName, GenericToolSpec<ToolArguments, any>> = { get_available_sfra_documents: { defaults: (args: ToolArguments) => args, validate: (_args: ToolArguments, _toolName: string) => { // No validation needed for list operation }, exec: async (_args: ToolArguments, context: ToolExecutionContext) => { const client = context.sfraClient as SFRAClient; return client.getAvailableDocuments(); }, logMessage: (_args: ToolArguments) => 'List SFRA docs', }, get_sfra_document: { defaults: (args: ToolArguments) => args, validate: (args: ToolArguments, toolName: string) => { ValidationHelpers.validateArguments(args, CommonValidations.requiredString('documentName'), toolName); }, exec: async (args: ToolArguments, context: ToolExecutionContext) => { const client = context.sfraClient as SFRAClient; const result = await client.getSFRADocument(args.documentName as string); if (!result) { throw new Error(`SFRA document "${args.documentName}" not found`); } return result; }, logMessage: (args: ToolArguments) => `SFRA doc ${args.documentName}`, }, search_sfra_documentation: { 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.sfraClient as SFRAClient; return client.searchSFRADocumentation(args.query as string); }, logMessage: (args: ToolArguments) => `Search SFRA ${args.query}`, }, get_sfra_documents_by_category: { defaults: (args: ToolArguments) => args, validate: (args: ToolArguments, toolName: string) => { ValidationHelpers.validateArguments(args, CommonValidations.requiredString('category'), toolName); }, exec: async (args: ToolArguments, context: ToolExecutionContext) => { const client = context.sfraClient as SFRAClient; return client.getDocumentsByCategory(args.category as string); }, logMessage: (args: ToolArguments) => `SFRA docs by category ${args.category}`, }, get_sfra_categories: { defaults: (args: ToolArguments) => args, validate: (_args: ToolArguments, _toolName: string) => { // No validation needed for list operation }, exec: async (_args: ToolArguments, context: ToolExecutionContext) => { const client = context.sfraClient as SFRAClient; return client.getAvailableCategories(); }, logMessage: (_args: ToolArguments) => 'SFRA categories', }, };

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