mcp-salesforce
Integrates with Salesforce to provide tools for running SOQL queries, SOSL searches, retrieving object field metadata, performing CRUD operations on records, and executing Tooling API, Apex REST API, and direct REST API calls.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-salesforcequery all accounts where name = 'Acme'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Server for salesforce
Features
Connects to Salesforce using environment variables for credentials.
Provides tools to:
Run SOQL queries.
Run SOSL searches.
Retrieve metadata about Salesforce object fields.
Get, create, update, and delete Salesforce records.
Execute Salesforce Tooling API requests.
Execute Apex REST API requests.
Make direct REST API calls to Salesforce.
Caches object field metadata for performance.
Handles errors and connection issues gracefully.
Related MCP server: Salesforce MCP Server
Configuration
A standard version to use it, is to setup your claude mcp configuration file like this :
{
"mcpServers": {
"salesforce": {
"command": "uvx",
"args": [
"mcp-salesforce",
],
"env": {
"SALESFORCE_INSTANCE_URL": "YOUR DOMAIN" (login | test | your custom domain)
"SALESFORCE_USERNAME": "YOUR_SALESFORCE_USERNAME",
"SALESFORCE_PASSWORD": "YOUR_SALESFORCE_PASSWORD",
"SALESFORCE_SECURITY_TOKEN": "YOUR_SALESFORCE_SECURITY_TOKEN"
}
}
}
}You can also use it with simonw/llm cli utils.
Available Tools
10 toolsapex_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
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| method | No | GET | |
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as side effects, authentication requirements, error handling, or response format. For a tool that executes arbitrary Apex REST requests, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at four lines, front-loaded with the main action, and uses a clear list for parameters. It avoids unnecessary words, though it could be better structured with sections.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 parameters, no output schema, and no annotations. The description covers parameter semantics adequately but lacks information about return values, error behavior, permissions, or intended use cases, leaving gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description adds meaningful context for all three parameters: 'action' with an example endpoint, 'method' with default value, and 'data' explaining its use for POST/PATCH. This significantly enhances the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool executes an Apex REST request and lists the parameters with examples. However, it does not differentiate from sibling tools like 'restful' which may have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'restful' or 'tooling_execute'. There is no mention of prerequisites or contextual suitability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| data | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are available, so the description must fully disclose behavioral traits. It only states the basic action (creates a record) without discussing idempotency, destructive nature, authentication needs, or success/failure behavior. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and includes an Args section, which is structured. However, it is overly minimal and does not front-load important information. It could be considered under-specified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a nested object parameter (data) and no output schema, the description is insufficient. It does not explain the expected structure of the data field, what the return value is, or any side effects. This leaves the agent guessing about correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is expected to compensate. It adds minimal context: for object_name it says 'The name of the Salesforce object' and for data it says 'The data for the new record', which only slightly expands on the schema titles. No details on valid values, structure of the data field, or constraints are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new record, which distinguishes it from sibling tools like delete_record or get_record. However, it is minimal and does not specify the domain (Salesforce) beyond the args, which is implied but not explicit in the description itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool over alternatives, nor does it mention any prerequisites or conditions (e.g., required permissions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| record_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'Deletes a record' without disclosing behavioral traits like irreversibility, cascading effects, required permissions, or error handling. A deletion tool requires more transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and to the point, with clear argument definitions. While concise, it could be slightly more structured with formatting, but it is efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema and no annotations, the description lacks important context such as return values, error conditions, or what happens when the record doesn't exist. For a destructive action, more completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds meaning by explaining each parameter ('The name of the Salesforce object' and 'The ID of the record to delete'). This adds value beyond the schema's titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Deletes a record' which is a specific verb and resource. It clearly distinguishes from siblings like create_record, update_record, and get_record by specifying the delete action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as update_record or get_record. Implicitly, delete is for removal, but no explicit context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| record_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility. It discloses the retrieval action but does not mention error handling, field selection, or whether it returns all fields. For a simple get-by-ID, this is moderately acceptable but lacks deeper behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences and an Args section. It is front-loaded with the main action. However, the Args section could be integrated more smoothly, and there is no structural hierarchy. Still, it is efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with no output schema and minimal parameters, the description is fairly complete. It explains the parameters but does not cover return format or error scenarios. Given the low complexity, it meets a minimum viable level but could add more context about potential issues or limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must add meaning. It specifies that object_name is 'The name of the Salesforce object' and record_id is 'The ID of the record to retrieve,' which goes beyond the schema's property titles. This adequately compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Retrieves a specific record by ID,' using a specific verb and resource. It distinguishes from sibling tools like create_record, delete_record, update_record, which have different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives, such as run_soql_query or get_sobject_fields. The description only states what it does, without context on limitations or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
Args:
object_name: The name of the Salesforce object (e.g., 'Account', 'Contact')
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral transparency. It goes beyond a generic statement by explaining that for lookup fields, the type is 'reference' and includes the lookup table name and field name. This adds significant context about the return structure. It does not mention any side effects or limitations, but for a read-only metadata tool this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: two sentences that front-load the primary purpose, followed by a clear parameter description. Every word adds value; no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 parameter, no output schema, no annotations), the description covers the essential aspects: what the tool does, what it returns (names, labels, types, lookup details), and how to specify the object. It could be more explicit about the exact response structure (e.g., list of field objects), but for a simple metadata retrieval tool, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'object_name' is explained with its purpose ('The name of the Salesforce object') and concrete examples ('e.g., 'Account', 'Contact''). Schema description coverage is 0%, so the description compensates well by adding meaning beyond the schema's title and type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieves') and the resource ('field Names, labels and types for a specific Salesforce object'), making the purpose unambiguous. It distinguishes from sibling tools like 'get_record' and 'run_soql_query' which operate on data rather than metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context: it retrieves metadata about Salesforce object fields. The example of object names (e.g., 'Account', 'Contact') gives practical usage guidance. However, it does not explicitly state when to use this tool versus alternatives, though the distinction from data query tools is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| method | No | GET | |
| params | No | ||
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions that data is for POST/PATCH (implying mutation) but does not disclose behavioral aspects like authentication, rate limits, error handling, or that arbitrary REST calls can be destructive. With no annotations, the description carries full burden but remains insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, uses a clear 'Args:' list, and front-loads the main purpose. However, a more standard formatting (e.g., markdown) could improve readability slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations or output schema, the description explains parameters but omits return value, error behavior, and any side effects. For a raw API tool that can execute arbitrary operations, more completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain each parameter. It does so effectively: path with an example, method with default, params as query parameters, data for POST/PATCH. This adds meaningful context beyond the schema's type definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Makes a direct REST API call to Salesforce,' which is a specific verb and resource. It distinguishes itself from sibling tools like create_record and run_soql_query by indicating it is a raw API call, not a specialized operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as create_record or run_soql_query. It also lacks prerequisites or caveats about using raw REST calls, e.g., requiring knowledge of Salesforce API endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_soql_queryA
Executes a SOQL query against Salesforce. Args: query: The SOQL query to execute
When using this tool, always use a column name in the query.
It is important when you aggregate or count.
In this case use the Id column. example: select count(Id) from Account
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full responsibility. It fails to disclose that SOQL is read-only, whether permissions are needed, query limits, timeout behavior, or error handling. The agent lacks critical behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loads the purpose, and includes necessary usage guidance without redundancy. Every sentence adds value, and the structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema or annotations, the description should cover return format, error conditions, and side effects. It only describes input, leaving the agent uninformed about what to expect from the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds useful guidance on how to construct the query (use column names, use Id for count). However, it does not specify syntax constraints, query length limits, or parameter format details, leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it executes a SOQL query against Salesforce, which is a distinct operation among sibling tools that include CRUD and other API calls. The purpose is immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit advice on using column names and gives a specific example for aggregate/count queries. However, it does not mention when not to use this tool (e.g., for simple record retrieval) or compare to alternatives like get_record.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_sosl_searchC
Executes a SOSL search against Salesforce. Args: search: The SOSL search to execute (e.g., 'FIND {John Smith} IN ALL FIELDS')
| Name | Required | Description | Default |
|---|---|---|---|
| search | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It merely states execution without mentioning read-only nature, side effects, permissions, rate limits, or return format. The description adds minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short—two sentences. The 'Args:' line is slightly redundant but does not waste space. It is front-loaded with the main action. However, important details are omitted in favor of brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (executing a SOSL query) and absence of annotations or output schema, the description is far too minimal. It lacks prerequisites, behavior details, error handling, and result format guidance, making it incomplete for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'search' has 0% schema description coverage. The description compensates slightly by providing an example ('FIND {John Smith} IN ALL FIELDS'), which adds meaning beyond the bare schema. However, it does not explain syntax rules, escaping, or limitations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Executes a SOSL search against Salesforce,' with a specific verb (executes) and resource (SOSL search). However, it does not differentiate from the sibling tool run_soql_query, which is a closely related query type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like run_soql_query or other record retrieval tools. The description lacks context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| method | No | GET | |
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries full burden. It only states basic action and parameters, but no behavioral traits like authentication needs, rate limits, side effects, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, no redundant information. Could be slightly more structured but is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and 3 parameters, the description lacks context on response format, error conditions, or usage examples. Incomplete for a tool that executes arbitrary endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but description explains each parameter (action, method, data) with examples, adding meaning beyond the schema. However, the explanations are minimal and lack details like allowed values or formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Executes' and the resource 'Tooling API request', with examples for action. It distinguishes from siblings like 'restful' by specifying the Tooling API, but doesn't explicitly contrast with other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not mention when not to use, prerequisites, or context for choosing it over sibling tools like 'apex_execute' or 'restful'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | ||
| record_id | Yes | ||
| data | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states it updates a record but does not disclose error behavior, return value, or requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise, front-loaded with purpose, and well-structured with bulleted args.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All parameters explained, but lacks context on error handling, response format, and how it differs from other mutation tools like delete_record.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description adds meaning beyond schema: explains object_name with examples, record_id as ID, and data as updated data. This compensates for 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Updates an existing record' with a specific resource. It distinguishes from sibling tools like create_record and delete_record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. Usage is implied but not explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Run SOQL queries to explore and retrieve Salesforce data. Access accounts, contacts, opportunities…
Plan Salesforce deploys, open pull requests and trigger pipelines from your AI client.
Run SOQL queries against your Salesforce org to retrieve records and insights. Explore objects, fi…
Run SOQL queries to explore and retrieve Salesforce data. Inspect records, fields, and relationshi…
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables natural language interactions with Salesforce data and metadata, supporting queries, data manipulation, custom object/field management, Apex code operations, and debug logging across multiple authentication methods.151,965MIT
- AlicenseNot gradedqualityDmaintenanceEnables natural language interactions with Salesforce, allowing users to query and modify data, manage custom objects and fields, execute Apex code, and perform SOQL/SOSL searches across Salesforce organizations.1,965MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to securely interact with Salesforce CRM data through SOQL queries, CRUD operations, and metadata exploration. Supports connecting to Salesforce objects like Accounts, Contacts, and Opportunities via OAuth 2.0 authentication.82MIT
- AlicenseNot gradedqualityDmaintenanceIntegrates Claude with Salesforce to enable natural language querying, modification, and management of Salesforce records and metadata. It supports comprehensive operations including object/field management, SOSL searches, and Apex code execution.1,9651MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Oliviergg/mcp-salesforce'
If you have feedback or need assistance with the MCP directory API, please join our Discord server