sfcc-dev-mcp
Version:
MCP server for Salesforce B2C Commerce Cloud development assistance including logs, debugging, and development tools
75 lines • 2.87 kB
JavaScript
import { ValidationHelpers, CommonValidations } from '../core/handlers/validation-helpers.js';
export const SFRA_TOOL_NAMES = [
'get_available_sfra_documents',
'get_sfra_document',
'search_sfra_documentation',
'get_sfra_documents_by_category',
'get_sfra_categories',
];
export const SFRA_TOOL_NAMES_SET = new Set(SFRA_TOOL_NAMES);
/**
* Configuration for SFRA documentation tools
* Maps each tool to its validation, execution, and messaging logic
*/
export const SFRA_TOOL_CONFIG = {
get_available_sfra_documents: {
defaults: (args) => args,
validate: (_args, _toolName) => {
// No validation needed for list operation
},
exec: async (_args, context) => {
const client = context.sfraClient;
return client.getAvailableDocuments();
},
logMessage: (_args) => 'List SFRA docs',
},
get_sfra_document: {
defaults: (args) => args,
validate: (args, toolName) => {
ValidationHelpers.validateArguments(args, CommonValidations.requiredString('documentName'), toolName);
},
exec: async (args, context) => {
const client = context.sfraClient;
const result = await client.getSFRADocument(args.documentName);
if (!result) {
throw new Error(`SFRA document "${args.documentName}" not found`);
}
return result;
},
logMessage: (args) => `SFRA doc ${args.documentName}`,
},
search_sfra_documentation: {
defaults: (args) => args,
validate: (args, toolName) => {
ValidationHelpers.validateArguments(args, CommonValidations.requiredString('query'), toolName);
},
exec: async (args, context) => {
const client = context.sfraClient;
return client.searchSFRADocumentation(args.query);
},
logMessage: (args) => `Search SFRA ${args.query}`,
},
get_sfra_documents_by_category: {
defaults: (args) => args,
validate: (args, toolName) => {
ValidationHelpers.validateArguments(args, CommonValidations.requiredString('category'), toolName);
},
exec: async (args, context) => {
const client = context.sfraClient;
return client.getDocumentsByCategory(args.category);
},
logMessage: (args) => `SFRA docs by category ${args.category}`,
},
get_sfra_categories: {
defaults: (args) => args,
validate: (_args, _toolName) => {
// No validation needed for list operation
},
exec: async (_args, context) => {
const client = context.sfraClient;
return client.getAvailableCategories();
},
logMessage: (_args) => 'SFRA categories',
},
};
//# sourceMappingURL=sfra-tool-config.js.map