salesforce_search_objects
Search Salesforce standard and custom objects by name pattern to quickly find relevant data structures for integration or development tasks.
Instructions
Search for Salesforce standard and custom objects by name pattern. Examples: 'Account' will find Account, AccountHistory; 'Order' will find WorkOrder, ServiceOrder__c etc.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| searchPattern | Yes | Search pattern to find objects (e.g., 'Account Coverage' will find objects like 'AccountCoverage__c') |
Implementation Reference
- src/tools/search.ts:19-59 (handler)The main handler function that executes the tool's logic: retrieves all Salesforce objects via describeGlobal, filters by search pattern in name or label, and formats the results.export async function handleSearchObjects(conn: any, searchPattern: string) { // Get list of all objects const describeGlobal = await conn.describeGlobal(); // Process search pattern to create a more flexible search const searchTerms = searchPattern.toLowerCase().split(' ').filter(term => term.length > 0); // Filter objects based on search pattern const matchingObjects = describeGlobal.sobjects.filter((obj: SalesforceObject) => { const objectName = obj.name.toLowerCase(); const objectLabel = obj.label.toLowerCase(); // Check if all search terms are present in either the API name or label return searchTerms.every(term => objectName.includes(term) || objectLabel.includes(term) ); }); if (matchingObjects.length === 0) { return { content: [{ type: "text", text: `No Salesforce objects found matching "${searchPattern}".` }], isError: false, }; } // Format the output const formattedResults = matchingObjects.map((obj: SalesforceObject) => `${obj.name}${obj.custom ? ' (Custom)' : ''}\n Label: ${obj.label}` ).join('\n\n'); return { content: [{ type: "text", text: `Found ${matchingObjects.length} matching objects:\n\n${formattedResults}` }], isError: false, }; }
- src/tools/search.ts:4-17 (schema)Defines the Tool object with name, description, and input schema for validating the searchPattern argument.export const SEARCH_OBJECTS: Tool = { name: "salesforce_search_objects", description: "Search for Salesforce standard and custom objects by name pattern. Examples: 'Account' will find Account, AccountHistory; 'Order' will find WorkOrder, ServiceOrder__c etc.", inputSchema: { type: "object", properties: { searchPattern: { type: "string", description: "Search pattern to find objects (e.g., 'Account Coverage' will find objects like 'AccountCoverage__c')" } }, required: ["searchPattern"] } };
- src/index.ts:57-61 (registration)Registers the handler by dispatching tool calls with name 'salesforce_search_objects' to handleSearchObjects function within the CallToolRequestSchema handler.case "salesforce_search_objects": { const { searchPattern } = args as { searchPattern: string }; if (!searchPattern) throw new Error('searchPattern is required'); return await handleSearchObjects(conn, searchPattern); }
- src/index.ts:37-47 (registration)Registers the tool schema by including SEARCH_OBJECTS in the list returned by ListToolsRequestSchema handler.tools: [ SEARCH_OBJECTS, DESCRIBE_OBJECT, QUERY_RECORDS, DML_RECORDS, MANAGE_OBJECT, MANAGE_FIELD, SEARCH_ALL, UPLOAD_REPORT_XML // Add new tool to the list ], }));