| list_objects | List all Salesforce objects in this org. Use this as the first step when exploring
an unfamiliar org or when you need to find a custom object. Returns: name (API name), label (display name), queryable, createable, custom.
Use the optional search parameter to filter by name/label substring.
Standard objects: Account, Contact, Lead, Opportunity, Case, Task, Event, User.
Custom objects end in __c (e.g., Invoice__c).
Follow up with describe_object to see fields for any object.
|
| describe_object | Get complete metadata for a Salesforce object: fields, relationships, picklist values,
and record types. Call this before querying or writing to an unfamiliar object. Each field includes: name (API name), label, type, referenceTo (for lookups),
picklistValues (for picklists), nillable, createable, updateable.
Common types: string, picklist, reference (lookup/master-detail), boolean, date,
datetime, currency, double, int, id, textarea, phone, email, url.
Standard objects: Account, Contact, Lead, Opportunity, Case, Task, Event, User.
Custom objects and fields end in __c.
|
| run_soql_query | Execute a SOQL query. SOQL syntax: SELECT fields FROM Object WHERE conditions ORDER BY field LIMIT n Use SOQL when you know which object to query. Use run_sosl_search instead when
searching by keyword across multiple objects.
Common objects: Account, Contact, Lead, Opportunity, Case, Task, Event, User.
Custom objects end in __c. Custom fields end in __c.
Relationship queries use dot notation for parent (SELECT Contact.Account.Name FROM Contact)
and subqueries for children (SELECT Name, (SELECT LastName FROM Contacts) FROM Account).
Always include LIMIT to avoid large result sets. Call describe_object first if you
don't know the available fields. Results include totalSize, done, and records array.
|
| run_sosl_search | Search across multiple Salesforce objects by keyword using full-text search. Syntax: FIND {search_term} IN ALL FIELDS RETURNING Object1(fields), Object2(fields)
Use SOSL when you don't know which object contains the data, or need to search
across Account, Contact, Lead, Opportunity simultaneously.
Use run_soql_query instead for structured filtering (date ranges, status, owner).
Example: FIND {Acme} IN ALL FIELDS RETURNING Account(Id, Name), Contact(Id, Name, Email)
Wildcards: * (multiple chars), ? (single char). Minimum 2 characters.
|
| get_record | Get a single Salesforce record by its ID. Returns all readable fields. Record IDs are 15 or 18 character strings. The first 3 characters indicate the object
type (001=Account, 003=Contact, 006=Opportunity, 00Q=Lead, 500=Case).
Use run_soql_query or run_sosl_search to find record IDs if you only have a name or email.
|
| create_record | Create a new Salesforce record. Provide the object name and a dict of field values. Call describe_object first to see required fields and valid picklist values.
The data dict keys must be field API names (e.g., LastName, not "Last Name").
Returns the new record's ID on success.
Example: create_record("Contact", {"LastName": "Smith", "Email": "smith@example.com"})
|
| update_record | Update fields on an existing Salesforce record. Only include fields you want to change. Example: update_record("Opportunity", "006...", {"StageName": "Closed Won", "CloseDate": "2026-03-15"})
Returns HTTP 204 on success.
|
| delete_record | Permanently delete a Salesforce record. This cannot be undone via the API.
Records go to the Recycle Bin and can be recovered by an admin within 15 days. |
| tooling_execute | Execute a Salesforce Tooling API call. The Tooling API accesses metadata and
developer objects: ApexClass, ApexTrigger, CustomField, Flow, ValidationRule. Example: tooling_execute("query/?q=SELECT Id,Name FROM ApexClass LIMIT 5")
Example: tooling_execute("query/?q=SELECT Id,TableEnumOrId FROM CustomField WHERE TableEnumOrId='Account'")
Use run_soql_query for regular data queries. Use this for metadata inspection.
|
| apex_execute | Call a custom Apex REST endpoint. These are org-specific REST services written
in Apex by developers. The action is the URL path after /services/apexrest/. This will return an error if no custom Apex REST endpoints exist in the org. |
| restful | Execute a raw Salesforce REST API call. This is an escape hatch for API endpoints
not covered by other tools. Common paths:
- sobjects/ — list all objects
- sobjects/Account/describe/ — describe an object
- analytics/reports/ — list reports
- analytics/reports/{id} — run a report
- limits/ — API usage limits
- tooling/query/?q=SOQL — query metadata
The path is relative to /services/data/vXX.0/. Method defaults to GET.
|