flexible_search
Execute FlexibleSearch queries to retrieve data from SAP Commerce Cloud (Hybris) databases using custom search syntax for product management and system administration.
Instructions
Execute a FlexibleSearch query against the Hybris database. Use FlexibleSearch syntax.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | FlexibleSearch query (e.g., "SELECT {pk}, {code} FROM {Product}") | |
| maxCount | No | Maximum number of results (default: 100) |
Implementation Reference
- src/index.ts:194-211 (registration)Registers the 'flexible_search' tool in the MCP tools list, including name, description, and input schema definition.{ name: 'flexible_search', description: 'Execute a FlexibleSearch query against the Hybris database. Use FlexibleSearch syntax.', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'FlexibleSearch query (e.g., "SELECT {pk}, {code} FROM {Product}")', }, maxCount: { type: 'number', description: 'Maximum number of results (default: 100)', }, }, required: ['query'], }, },
- src/index.ts:408-413 (handler)MCP server tool call handler for 'flexible_search': validates input arguments and delegates to HybrisClient.executeFlexibleSearch.case 'flexible_search': result = await hybrisClient.executeFlexibleSearch( validateString(args, 'query', true), validateNumber(args, 'maxCount', { min: 1, max: 10000 }) ); break;
- src/hybris-client.ts:451-467 (handler)Core implementation of flexible search: sends POST request to Hybris HAC FlexibleSearch endpoint with query and maxCount, returns FlexibleSearchResult.async executeFlexibleSearch(query: string, maxCount = 100): Promise<FlexibleSearchResult> { const formData = new URLSearchParams({ flexibleSearchQuery: query, maxCount: maxCount.toString(), }); return this.hacRequest<FlexibleSearchResult>( `${this.hacPrefix}/console/flexsearch/execute`, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, body: formData, } ); }
- src/hybris-client.ts:73-77 (schema)Type definition for the output of flexible_search: array of result objects and total count.export interface FlexibleSearchResult { results: Record<string, unknown>[]; count: number; }