SObject All
The platform/sobject-all server is the full-capability SObject server. It exposes every standard and custom object in your Salesforce org through a complete set of tools covering create, read, update, delete, query, search, and relationship traversal. This is the right choice when you want AI agents to have full access to Salesforce data, matching the permissions of the human-in-the-loop and trusting them to prompt appropriately. This provides maximum productivity gains.
Note that Salesforce's permission model still acts as a safety net: even with all tools available, every operation is constrained by the authenticated user's field-level security, object permissions, and sharing rules. An agent cannot update a field the user cannot edit in Lightning, and cannot delete a record the user cannot delete in the UI.
If you want to limit what agents can do, choose a scoped server instead: SObject Reads for query-only access, SObject Mutations to allow create and update but not delete, or SObject Deletes for delete-focused workflows.
- Production:
https://api.salesforce.com/platform/mcp/v1/platform/sobject-all - Sandbox/Scratch:
https://api.salesforce.com/platform/mcp/v1/sandbox/platform/sobject-all
- "Show me all open opportunities in the Manufacturing industry over $500K, grouped by owner."
- "Create a follow-up task for every Account where the last activity date is more than 90 days ago."
- "Update the Stage on opportunity {name} to Closed Won and set the Close Date to today."
- "Find every Contact associated with Acme Corp and return their names, titles, and email addresses."
The following tools are available in the sobject-all server.
Returns Salesforce schema information optimized for LLM consumption. Call with no parameters first to get a compact index of all queryable business objects — significantly smaller than the raw Describe API. Then call with a specific object name to get field-level details when constructing queries or mutations. Includes admin-authored guidance about data quality and business definitions alongside the standard schema (e.g., "use Calculated_ACV__c instead of Amount for accurate forecasting").
Two modes:
- Index mode (no parameters): Compact list of all business objects with descriptions and relationships
- Detail mode (with object name): Full field schema plus any contextual admin guidance
Inputs:
| Parameter | Type | Required | Description |
|---|---|---|---|
object-name | string | No | API name of the object. Omit to get the compact index of all objects. |
Outputs: Index mode: compact list of queryable objects with descriptions. Detail mode: full field schema with types, required flags, picklist values, relationships, and any admin-authored guidance.
Executes a SOQL query to retrieve Salesforce records. This is the primary way to read data when you know which object and fields you need. SOQL syntax: SELECT fields FROM Object WHERE conditions ORDER BY field LIMIT n. Supports relationship queries to traverse lookups (e.g., Contact.Account.Name) and subqueries for child records (e.g., SELECT Id FROM Contacts). Always include a WHERE clause to filter results and a LIMIT clause to control result size. For large objects, filter on indexed fields (Id, Name, foreign keys, External IDs) to avoid timeout errors. Maximum 50,000 total records per transaction across all queries.
Example: SELECT Id, Name, Industry FROM Account WHERE Industry = 'Technology' LIMIT 100
Use SOQL when you know which object contains your data and need precise filtering, sorting, aggregation, or relationship traversal. Use find instead when searching across multiple objects for a term that could appear anywhere.
Inputs:
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | A valid SOQL query string |
Outputs: Array of matching records with the fields specified in the SELECT clause.
Executes a text search across multiple Salesforce objects simultaneously. Use this instead of soql_query when searching for a term that could exist in multiple object types, when you don't know which object contains the data, or when you need relevance-ranked text matching. Returns a maximum of 2,000 records total. Use search groups to narrow scope: IN ALL FIELDS (default), IN NAME FIELDS, IN EMAIL FIELDS, or IN PHONE FIELDS.
Example: FIND {Acme} IN NAME FIELDS RETURNING Account(Id, Name), Contact(Id, Name, Email)
Use find for "find me anything matching X" scenarios. It cannot traverse relationships or sort by field values — if you need related records after finding matches, follow up with a soql_query using the returned IDs.
Inputs:
| Parameter | Type | Required | Description |
|---|---|---|---|
search | string | Yes | A valid SOSL search string (e.g., FIND {Acme} IN NAME FIELDS RETURNING Account(Id, Name)) |
Outputs: Search result groups by object type, each containing matched records with the requested fields.
Returns the currently authenticated user's identity and context — User ID, name, email, role, profile, manager, local time, and timezone. Call this when you need to personalize responses, filter queries to "my" records using the returned User ID, or apply the user's time and locale when interpreting date-based requests.
Inputs:
| Parameter | Type | Required | Description |
|---|---|---|---|
| (none) | — | — | No parameters required |
Outputs: Identity object with user ID, full name, email, username, profile, role, manager, local time, and timezone.
Returns records of a specific type that the user recently viewed or modified. Use this as a starting point when the user refers to "my accounts," "recent cases," or "that opportunity I was looking at" without providing specific record IDs or names. Returns records ordered by last viewed date.
Inputs:
| Parameter | Type | Required | Description |
|---|---|---|---|
sobject-name | string | Yes | API name of the object (e.g., Account, Case, Opportunity) |
Outputs: Array of recently viewed records of the specified type, ordered by last viewed date.
Retrieves child records related to a parent record by traversing relationships. Use this instead of a separate SOQL query when you already have a record ID and need its related records — for example, get all Contacts for an Account, or all Opportunity Line Items for an Opportunity. Supports multi-level traversal. More efficient than writing a subquery when navigating a known relationship.
Inputs:
| Parameter | Type | Required | Description |
|---|---|---|---|
sobject-name | string | Yes | API name of the parent object |
id | string | Yes | Salesforce record ID of the parent record |
relationship-path | string | Yes | Relationship name (e.g., Contacts, OpportunityLineItems) |
Outputs: Array of related records via the specified relationship.
Creates a new Salesforce record. Call getObjectSchema first to understand required fields and valid values — the operation fails if required fields are missing or values violate validation rules. Returns the new record's ID on success. All operations respect the user's permissions and field-level security; attempts to set fields the user cannot edit are rejected.
Inputs:
| Parameter | Type | Required | Description |
|---|---|---|---|
sobject-name | string | Yes | API name of the object to create a record for |
body | object | Yes | Field-value pairs for the new record |
Outputs: The new record's Salesforce ID and success indicator.
Updates an existing record by ID. Only include fields you want to change — omitted fields keep their current values. Call getObjectSchema to verify field names and valid picklist values if unsure. Fails if the record doesn't exist, the user lacks edit permission, or field validations fail.
Inputs:
| Parameter | Type | Required | Description |
|---|---|---|---|
sobject-name | string | Yes | API name of the object |
id | string | Yes | Salesforce record ID of the record to update |
body | object | Yes | Field-value pairs to update |
Outputs: Success or error indicator.
Updates a child record by navigating from a parent record through a relationship. Use this when you have the parent record context and need to modify a related record without knowing the child's ID directly.
Inputs:
| Parameter | Type | Required | Description |
|---|---|---|---|
sobject-name | string | Yes | API name of the parent object |
id | string | Yes | Salesforce record ID of the parent record |
relationship-path | string | Yes | Relationship path to the target record |
body | object | Yes | Field-value pairs to update on the related record |
Outputs: Success or error indicator.
Permanently deletes a record by ID. Confirm with the user before deleting. Deleted records go to the Recycle Bin and can be recovered in the Salesforce UI for up to 15 days (no undelete tool is available through MCP). Fails if the user lacks delete permission or deletion would violate relationship rules.
Inputs:
| Parameter | Type | Required | Description |
|---|---|---|---|
sobject-name | string | Yes | API name of the object |
id | string | Yes | Salesforce record ID of the record to delete |
Outputs: Success or error indicator.
Deletes a child record by navigating from a parent record through a relationship. Same cautions as deleteSobjectRecord — confirm with the user before deleting.
Inputs:
| Parameter | Type | Required | Description |
|---|---|---|---|
sobject-name | string | Yes | API name of the parent object |
id | string | Yes | Salesforce record ID of the parent record |
relationship-path | string | Yes | Relationship path to the record to delete |
Outputs: Success or error indicator.