0.0.2npm · @surajadsul02/mcp-server-salesforce · current release
Observed 2026-08-18T00:03:28.094Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2024-11-05.
{
"tools": {}
}| Tool | Category | Annotations | Risk |
|---|---|---|---|
salesforce_describe_objectGet detailed schema metadata including all fields, relationships, and field properties of any Salesforce object. Examples: 'Account' shows all Account fields including custom fields; 'Case' shows all Case fields including relationships to Account, Contact etc.Input schema{
"type": "object",
"properties": {
"objectName": {
"type": "string",
"description": "API name of the object (e.g., 'Account', 'Contact', 'Custom_Object__c')"
}
},
"required": [
"objectName"
]
} | — | — · — | — |
salesforce_dml_recordsPerform data manipulation operations on Salesforce records:
- insert: Create new records
- update: Modify existing records (requires Id)
- delete: Remove records (requires Id)
- upsert: Insert or update based on external ID field
Examples: Insert new Accounts, Update Case status, Delete old records, Upsert based on custom external IDInput schema{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"insert",
"update",
"delete",
"upsert"
],
"description": "Type of DML operation to perform"
},
"objectName": {
"type": "string",
"description": "API name of the object"
},
"records": {
"type": "array",
"items": {
"type": "object"
},
"description": "Array of records to process"
},
"externalIdField": {
"type": "string",
"description": "External ID field name for upsert operations",
"optional": true
}
},
"required": [
"operation",
"objectName",
"records"
]
} | — | — · — | — |
salesforce_manage_fieldCreate new custom fields or modify existing fields on any Salesforce object:
- Field Types: Text, Number, Date, Lookup, Master-Detail, Picklist etc.
- Properties: Required, Unique, External ID, Length, Scale etc.
- Relationships: Create lookups and master-detail relationships
Examples: Add Rating__c picklist to Account, Create Account lookup on Custom Object
Note: Changes affect metadata and require proper permissionsInput schema{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"create",
"update"
],
"description": "Whether to create new field or update existing"
},
"objectName": {
"type": "string",
"description": "API name of the object to add/modify the field"
},
"fieldName": {
"type": "string",
"description": "API name for the field (without __c suffix)"
},
"label": {
"type": "string",
"description": "Label for the field",
"optional": true
},
"type": {
"type": "string",
"enum": [
"Checkbox",
"Currency",
"Date",
"DateTime",
"Email",
"Number",
"Percent",
"Phone",
"Picklist",
"MultiselectPicklist",
"Text",
"TextArea",
"LongTextArea",
"Html",
"Url",
"Lookup",
"MasterDetail"
],
"description": "Field type (required for create)",
"optional": true
},
"required": {
"type": "boolean",
"description": "Whether the field is required",
"optional": true
},
"unique": {
"type": "boolean",
"description": "Whether the field value must be unique",
"optional": true
},
"externalId": {
"type": "boolean",
"description": "Whether the field is an external ID",
"optional": true
},
"length": {
"type": "number",
"description": "Length for text fields",
"optional": true
},
"precision": {
"type": "number",
"description": "Precision for numeric fields",
"optional": true
},
"scale": {
"type": "number",
"description": "Scale for numeric fields",
"optional": true
},
"referenceTo": {
"type": "string",
"description": "API name of the object to reference (for Lookup/MasterDetail)",
"optional": true
},
"relationshipLabel": {
"type": "string",
"description": "Label for the relationship (for Lookup/MasterDetail)",
"optional": true
},
"relationshipName": {
"type": "string",
"description": "API name for the relationship (for Lookup/MasterDetail)",
"optional": true
},
"deleteConstraint": {
"type": "string",
"enum": [
"Cascade",
"Restrict",
"SetNull"
],
"description": "Delete constraint for Lookup fields",
"optional": true
},
"picklistValues": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"isDefault": {
"type": "boolean",
"optional": true
}
}
},
"description": "Values for Picklist/MultiselectPicklist fields",
"optional": true
},
"description": {
"type": "string",
"description": "Description of the field",
"optional": true
}
},
"required": [
"operation",
"objectName",
"fieldName"
]
} | — | — · — | — |
salesforce_manage_objectCreate new custom objects or modify existing ones in Salesforce:
- Create: New custom objects with fields, relationships, and settings
- Update: Modify existing object settings, labels, sharing model
Examples: Create Customer_Feedback__c object, Update object sharing settings
Note: Changes affect metadata and require proper permissionsInput schema{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"create",
"update"
],
"description": "Whether to create new object or update existing"
},
"objectName": {
"type": "string",
"description": "API name for the object (without __c suffix)"
},
"label": {
"type": "string",
"description": "Label for the object"
},
"pluralLabel": {
"type": "string",
"description": "Plural label for the object"
},
"description": {
"type": "string",
"description": "Description of the object",
"optional": true
},
"nameFieldLabel": {
"type": "string",
"description": "Label for the name field",
"optional": true
},
"nameFieldType": {
"type": "string",
"enum": [
"Text",
"AutoNumber"
],
"description": "Type of the name field",
"optional": true
},
"nameFieldFormat": {
"type": "string",
"description": "Display format for AutoNumber field (e.g., 'A-{0000}')",
"optional": true
},
"sharingModel": {
"type": "string",
"enum": [
"ReadWrite",
"Read",
"Private",
"ControlledByParent"
],
"description": "Sharing model for the object",
"optional": true
}
},
"required": [
"operation",
"objectName"
]
} | — | — · — | — |
salesforce_query_recordsQuery records from any Salesforce object using SOQL, including relationship queries.
Examples:
1. Parent-to-child query (e.g., Account with Contacts):
- objectName: "Account"
- fields: ["Name", "(SELECT Id, FirstName, LastName FROM Contacts)"]
2. Child-to-parent query (e.g., Contact with Account details):
- objectName: "Contact"
- fields: ["FirstName", "LastName", "Account.Name", "Account.Industry"]
3. Multiple level query (e.g., Contact -> Account -> Owner):
- objectName: "Contact"
- fields: ["Name", "Account.Name", "Account.Owner.Name"]
4. Related object filtering:
- objectName: "Contact"
- fields: ["Name", "Account.Name"]
- whereClause: "Account.Industry = 'Technology'"
Note: When using relationship fields:
- Use dot notation for parent relationships (e.g., "Account.Name")
- Use subqueries in parentheses for child relationships (e.g., "(SELECT Id FROM Contacts)")
- Custom relationship fields end in "__r" (e.g., "CustomObject__r.Name")Input schema{
"type": "object",
"properties": {
"objectName": {
"type": "string",
"description": "API name of the object to query"
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of fields to retrieve, including relationship fields"
},
"whereClause": {
"type": "string",
"description": "WHERE clause, can include conditions on related objects",
"optional": true
},
"orderBy": {
"type": "string",
"description": "ORDER BY clause, can include fields from related objects",
"optional": true
},
"limit": {
"type": "number",
"description": "Maximum number of records to return",
"optional": true
}
},
"required": [
"objectName",
"fields"
]
} | — | — · — | — |
salesforce_search_allSearch across multiple Salesforce objects using SOSL (Salesforce Object Search Language).
Examples:
1. Basic search across all objects:
{
"searchTerm": "John",
"objects": [
{ "name": "Account", "fields": ["Name"], "limit": 10 },
{ "name": "Contact", "fields": ["FirstName", "LastName", "Email"] }
]
}
2. Advanced search with filters:
{
"searchTerm": "Cloud*",
"searchIn": "NAME FIELDS",
"objects": [
{
"name": "Account",
"fields": ["Name", "Industry"],
"orderBy": "Name DESC",
"where": "Industry = 'Technology'"
}
],
"withClauses": [
{ "type": "NETWORK", "value": "ALL NETWORKS" },
{ "type": "SNIPPET", "fields": ["Description"] }
]
}
Notes:
- Use * and ? for wildcards in search terms
- Each object can have its own WHERE, ORDER BY, and LIMIT clauses
- Support for WITH clauses: DATA CATEGORY, DIVISION, METADATA, NETWORK, PRICEBOOKID, SNIPPET, SECURITY_ENFORCED
- "updateable" and "viewable" options control record access filteringInput schema{
"type": "object",
"properties": {
"searchTerm": {
"type": "string",
"description": "Text to search for (supports wildcards * and ?)"
},
"searchIn": {
"type": "string",
"enum": [
"ALL FIELDS",
"NAME FIELDS",
"EMAIL FIELDS",
"PHONE FIELDS",
"SIDEBAR FIELDS"
],
"description": "Which fields to search in",
"optional": true
},
"objects": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "API name of the object"
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields to return for this object"
},
"where": {
"type": "string",
"description": "WHERE clause for this object",
"optional": true
},
"orderBy": {
"type": "string",
"description": "ORDER BY clause for this object",
"optional": true
},
"limit": {
"type": "number",
"description": "Maximum number of records to return for this object",
"optional": true
}
},
"required": [
"name",
"fields"
]
},
"description": "List of objects to search and their return fields"
},
"withClauses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"DATA CATEGORY",
"DIVISION",
"METADATA",
"NETWORK",
"PRICEBOOKID",
"SNIPPET",
"SECURITY_ENFORCED"
]
},
"value": {
"type": "string",
"description": "Value for the WITH clause",
"optional": true
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields for SNIPPET clause",
"optional": true
}
},
"required": [
"type"
]
},
"description": "Additional WITH clauses for the search",
"optional": true
},
"updateable": {
"type": "boolean",
"description": "Return only updateable records",
"optional": true
},
"viewable": {
"type": "boolean",
"description": "Return only viewable records",
"optional": true
}
},
"required": [
"searchTerm",
"objects"
]
} | — | — · — | — |
salesforce_search_objectsSearch for Salesforce standard and custom objects by name pattern. Examples: 'Account' will find Account, AccountHistory; 'Order' will find WorkOrder, ServiceOrder__c etc.Input schema{
"type": "object",
"properties": {
"searchPattern": {
"type": "string",
"description": "Search pattern to find objects (e.g., 'Account Coverage' will find objects like 'AccountCoverage__c')"
}
},
"required": [
"searchPattern"
]
} | — | — · — | — |