mcp-salesforce
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SALESFORCE_PASSWORD | Yes | Your Salesforce password | |
| SALESFORCE_USERNAME | Yes | Your Salesforce username | |
| SALESFORCE_INSTANCE_URL | Yes | Your Salesforce instance URL (login, test, or custom domain) | |
| SALESFORCE_SECURITY_TOKEN | Yes | Your Salesforce security token |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| run_soql_queryA | Executes a SOQL query against Salesforce. Args: query: The SOQL query to execute |
| run_sosl_searchC | Executes a SOSL search against Salesforce. Args: search: The SOSL search to execute (e.g., 'FIND {John Smith} IN ALL FIELDS') |
| get_sobject_fieldsA | Retrieves field Names, labels and types for a specific Salesforce object. if there is a lookup, the type is reference with the lookup table name and the fields name. |
| get_recordA | Retrieves a specific record by ID. Args: object_name: The name of the Salesforce object (e.g., 'Account', 'Contact') record_id: The ID of the record to retrieve |
| create_recordC | Creates a new record. Args: object_name: The name of the Salesforce object (e.g., 'Account', 'Contact') data: The data for the new record |
| update_recordA | Updates an existing record. Args: object_name: The name of the Salesforce object (e.g., 'Account', 'Contact') record_id: The ID of the record to update data: The updated data for the record |
| delete_recordA | Deletes a record. Args: object_name: The name of the Salesforce object (e.g., 'Account', 'Contact') record_id: The ID of the record to delete |
| tooling_executeC | Executes a Tooling API request. Args: action: The Tooling API endpoint to call (e.g., 'sobjects/ApexClass') method: The HTTP method (default: 'GET') data: Data for POST/PATCH requests |
| apex_executeB | Executes an Apex REST request. Args: action: The Apex REST endpoint to call (e.g., '/MyApexClass') method: The HTTP method (default: 'GET') data: Data for POST/PATCH requests |
| restfulB | Makes a direct REST API call to Salesforce. Args: path: The path of the REST API endpoint (e.g., 'sobjects/Account/describe') method: The HTTP method (default: 'GET') params: Query parameters for the request data: Data for POST/PATCH requests |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Most tools are clearly distinct (CRUD, queries, Apex, Tooling), but apex_execute and tooling_execute could be confused despite different endpoints. Overall clear.
Most tools follow verb_noun snake_case, but 'restful' breaks the pattern, and there's inconsistency between 'get', 'run', 'execute' verbs.
10 tools is well-scoped for a Salesforce MCP, covering essential operations without being excessive.
Covers CRUD, queries, metadata, and APIs (Apex, Tooling, REST). Minor gaps like bulk operations or file uploads, but core is solid.