salesforce-mcp
Enables interaction with Salesforce data through SOQL queries, SOSL searches, object metadata retrieval, record operations (create, read, update, delete), Tooling API requests, Apex REST requests, 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., "@salesforce-mcpshow me the top 10 opportunities this quarter"
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 Salesforce Connector
A Model Context Protocol (MCP) server implementation for Salesforce integration, allowing LLMs to interact with Salesforce data through SOQL queries and SOSL searches.
Features
Execute SOQL (Salesforce Object Query Language) queries
Perform SOSL (Salesforce Object Search Language) searches
Retrieve metadata for Salesforce objects, including field names, labels, and types
Retrieve, create, update, and delete records
Execute Tooling API requests
Execute Apex REST requests
Make direct REST API calls to Salesforce
Related MCP server: mcp-nutanix
Configuration
Model Context Protocol
To use this server with the Model Context Protocol, you need to configure it in your claude_desktop_config.json file. Add the following entry to the mcpServers section:
{
"mcpServers": {
"salesforce": {
"command": "uvx",
"args": [
"--from",
"mcp-salesforce-connector",
"salesforce"
],
"env": {
"SALESFORCE_USERNAME": "YOUR_SALESFORCE_USERNAME",
"SALESFORCE_PASSWORD": "YOUR_SALESFORCE_PASSWORD",
"SALESFORCE_SECURITY_TOKEN": "YOUR_SALESFORCE_SECURITY_TOKEN"
}
}
}
}Replace YOUR_SALESFORCE_USERNAME, YOUR_SALESFORCE_PASSWORD, and YOUR_SALESFORCE_SECURITY_TOKEN with your Salesforce credentials.
Available Tools
10 toolsapex_executeC
Executes an Apex REST request
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The Apex REST endpoint to call (e.g., '/MyApexClass') | |
| method | No | The HTTP method (default: 'GET') | GET |
| data | No | Data for POST/PATCH requests |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Executes an Apex REST request', implying a mutation operation that could have side effects, but doesn't specify authentication needs, rate limits, error handling, or what the execution entails (e.g., whether it's synchronous/asynchronous). This is a significant gap for a tool with potential write operations.
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 a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for the tool's complexity, making it easy to parse quickly.
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 complexity (executing REST requests with potential side effects), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like permissions, response format, or error cases, which are crucial for safe and effective use in a Salesforce/Apex context.
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 100%, so the input schema fully documents the parameters (action, method, data). The description adds no additional meaning beyond what the schema provides, such as examples of Apex endpoints or data formats. Baseline 3 is appropriate since the schema does the heavy lifting.
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 'Executes an Apex REST request' clearly states the action (execute) and resource (Apex REST request), but it's vague about what this means in practice. It doesn't distinguish this tool from sibling tools like 'restful' or 'tooling_execute', which likely handle similar REST operations in the Salesforce context.
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. The description doesn't mention prerequisites, context, or exclusions, leaving the agent to guess based on tool names alone. For example, it's unclear when to choose this over 'restful' or 'tooling_execute' among the siblings.
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
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | The name of the Salesforce object (e.g., 'Account', 'Contact') | |
| data | Yes | The data for the new record |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While 'creates' implies a write operation, it doesn't specify permissions required, whether the operation is idempotent, what happens on conflicts, or what the response contains. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.
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 extremely concise with just three words, front-loading the essential action. There's zero wasted language, making it efficient for quick comprehension while still conveying the core purpose.
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 mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after creation (e.g., returns record ID), error conditions, or how it differs from sibling tools. Given the complexity of creating Salesforce records, more context is needed for effective 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?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (object_name and data fields). This meets the baseline expectation when schema coverage is complete.
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 ('creates') and resource ('new record'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'update_record' beyond the creation aspect, nor does it specify what type of record (Salesforce object) is being created, which would be helpful for sibling differentiation.
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 like 'update_record' or 'delete_record'. There's no mention of prerequisites, constraints, or typical use cases, leaving the agent with minimal context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_recordC
Deletes a record
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | The name of the Salesforce object (e.g., 'Account', 'Contact') | |
| record_id | Yes | The ID of the record to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Deletes a record' implies a destructive, irreversible mutation, but it doesn't specify permissions required, side effects (e.g., cascading deletions), error handling, or what happens on success. For a destructive tool with zero annotation coverage, this is a significant gap in safety and operational 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 extremely concise with just two words, front-loading the core action. There is no wasted language or redundancy, making it efficient for quick comprehension, though this conciseness comes at the cost of detail.
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 complexity of a destructive delete operation, no annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like irreversibility, permissions, or response format, leaving critical gaps for safe and effective tool invocation in a context with multiple sibling tools.
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 100%, with clear descriptions for both parameters ('object_name' and 'record_id'). The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. Baseline 3 is appropriate when the schema does the heavy lifting.
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 'Deletes a record' clearly states the action (delete) and resource (record), which is better than a tautology. However, it lacks specificity about what type of record (e.g., Salesforce object record) and doesn't distinguish it from sibling tools like 'create_record' or 'update_record' beyond the verb difference.
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. It doesn't mention prerequisites (e.g., needing a valid record ID), exclusions, or compare it to siblings like 'update_record' for modifications instead of deletion. This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_object_fieldsB
Retrieves field Names, labels and types for a specific Salesforce object
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | The name of the Salesforce object (e.g., 'Account', 'Contact') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 'retrieves' data, implying a read-only operation, but doesn't clarify aspects like authentication requirements, rate limits, error handling, or what the output format looks like (e.g., JSON structure). This leaves significant gaps for a tool interacting with Salesforce.
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 a single, clear sentence that directly states the tool's function without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly, earning the highest score for efficiency.
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 moderate complexity (retrieving metadata for Salesforce objects), no annotations, and no output schema, the description is minimally adequate. It covers the basic purpose but lacks details on behavioral traits, usage context, and output format, which are important for an agent to use it effectively in a Salesforce environment.
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 input schema has 100% description coverage, with the single parameter 'object_name' well-documented in the schema itself. The description adds no additional parameter details beyond implying it retrieves fields for a 'specific Salesforce object', which aligns with the schema but doesn't provide extra semantic value, so the baseline score of 3 is appropriate.
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's purpose with specific verbs ('retrieves') and resources ('field Names, labels and types for a specific Salesforce object'), making it easy to understand what it does. However, it doesn't explicitly differentiate from sibling tools like 'get_record' or 'run_soql_query', which might also retrieve Salesforce data, so it doesn't reach the highest score.
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. It doesn't mention scenarios where this tool is preferred over siblings like 'get_record' (which might retrieve record data) or 'run_soql_query' (which might query fields), nor does it specify prerequisites or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recordC
Retrieves a specific record by ID
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | The name of the Salesforce object (e.g., 'Account', 'Contact') | |
| record_id | Yes | The ID of the record to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool retrieves a record, implying a read-only operation, but doesn't disclose behavioral traits like authentication needs, rate limits, error handling, or what happens if the ID is invalid. This is a significant gap for a tool with no annotation coverage.
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 a single, efficient sentence that front-loads the core purpose without any wasted words. It's appropriately sized for a simple retrieval tool, making it easy for an agent to parse quickly.
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 complexity of Salesforce operations and the lack of annotations and output schema, the description is incomplete. It doesn't explain what a 'record' entails, the return format, or how it differs from other retrieval tools, leaving gaps that could hinder correct agent 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 100%, so the input schema fully documents both parameters ('object_name' and 'record_id'). The description adds no additional meaning beyond implying ID-based retrieval, which is already clear from the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
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 resource ('a specific record by ID'), making the tool's purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'run_soql_query' or 'get_object_fields' which might also retrieve records or data, so it doesn't reach the highest score.
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. With siblings like 'run_soql_query' for querying and 'get_object_fields' for metadata, there's no indication that this is for direct ID-based retrieval, leaving the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restfulC
Makes a direct REST API call to Salesforce
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | The path of the REST API endpoint (e.g., 'sobjects/Account/describe') | |
| method | No | The HTTP method (default: 'GET') | GET |
| params | No | Query parameters for the request | |
| data | No | Data for POST/PATCH requests |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'direct REST API call' implies it can perform various HTTP operations, the description doesn't mention authentication requirements, rate limits, error handling, response formats, or any side effects. For a tool that can execute DELETE or POST operations, this lack of behavioral context is a significant gap.
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 extremely concise - a single sentence that directly states the tool's core function. There's no wasted language or unnecessary elaboration. It's front-loaded with the essential information, making it efficient for quick understanding.
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 tool with 4 parameters (including nested objects), no annotations, and no output schema, the description is insufficient. A direct REST API call tool that can perform GET, POST, PATCH, and DELETE operations needs more context about authentication, error handling, response formats, and when to use it versus specialized sibling tools. The single sentence doesn't provide adequate guidance for safe and effective 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 description adds no parameter-specific information beyond what's already in the schema. Since schema description coverage is 100%, all parameters are documented in the schema itself. The description doesn't provide additional context about parameter usage, relationships between parameters, or examples beyond what the schema already covers.
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's purpose: 'Makes a direct REST API call to Salesforce.' This specifies the verb ('makes'), resource ('REST API call'), and target system ('Salesforce'). However, it doesn't explicitly differentiate this from sibling tools like apex_execute or tooling_execute, which also make API calls but to different Salesforce APIs.
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. With siblings like create_record, update_record, run_soql_query, and get_record that handle specific operations, there's no indication of when a direct REST call is preferred over these higher-level tools. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_soql_queryC
Executes a SOQL query against Salesforce
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The SOQL query to execute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but provides minimal information. It doesn't mention whether this is a read-only operation (likely, but not stated), what permissions are required, whether there are query limits or performance considerations, what happens with malformed queries, or what the return format looks like. For a query execution tool with zero annotation coverage, 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 maximally concise with a single sentence that directly states the tool's function. There's zero wasted language, no redundancy, and the core purpose is communicated immediately without unnecessary elaboration.
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 query execution tool with no annotations and no output schema, the description is inadequate. It doesn't explain what SOQL is (versus SOSL), what the expected return format is, whether there are limitations on query complexity or result size, what authentication is required, or how this differs from other Salesforce query methods. Given the complexity of Salesforce data access and the presence of multiple sibling tools, more context 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?
The schema description coverage is 100% with the single parameter 'query' well-documented in the schema. The description doesn't add any parameter information beyond what the schema already provides (no examples of valid SOQL syntax, no constraints on query complexity, no field/object requirements). With complete schema coverage, the baseline score of 3 is appropriate.
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 ('Executes') and target resource ('SOQL query against Salesforce'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'run_sosl_search' which also executes queries against Salesforce, or from 'restful' which might also execute queries, so it doesn't achieve full sibling differentiation.
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 about when to use this tool versus alternatives. With multiple sibling tools that interact with Salesforce data (create_record, delete_record, get_record, update_record, run_sosl_search, apex_execute, tooling_execute), there's no indication whether SOQL is preferred for certain query types, whether it has different performance characteristics, or what distinguishes it from SOSL searches.
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
| Name | Required | Description | Default |
|---|---|---|---|
| search | Yes | The SOSL search to execute (e.g., 'FIND {John Smith} IN ALL FIELDS') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('executes') but doesn't mention critical details like authentication requirements, rate limits, error handling, or what the output looks like (e.g., search results format). This leaves significant gaps for a tool that performs searches.
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 a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly.
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 lack of annotations and output schema, the description is incomplete for a search tool. It doesn't explain what the tool returns (e.g., search results, error messages) or behavioral aspects like permissions or limits, which are crucial for an agent to use it effectively in Salesforce contexts.
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 input schema has 100% description coverage, with the 'search' parameter well-documented in the schema itself. The description doesn't add any extra meaning about parameters beyond what's in the schema, so it meets the baseline of 3 for high schema coverage without compensating value.
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 resource ('SOSL search against Salesforce'), making the purpose understandable. However, it doesn't differentiate this tool from its sibling 'run_soql_query', which also executes searches in Salesforce, leaving some ambiguity about when to use SOSL versus SOQL.
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. With sibling tools like 'run_soql_query' and 'restful' available, the description lacks any context about SOSL's specific use cases, prerequisites, or comparisons to other search methods, leaving the agent without usage direction.
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
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The Tooling API endpoint to call (e.g., 'sobjects/ApexClass') | |
| method | No | The HTTP method (default: 'GET') | GET |
| data | No | Data for POST/PATCH requests |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the action without disclosing behavioral traits like authentication needs, rate limits, error handling, or what the execution entails (e.g., side effects, response format). It mentions 'Tooling API' but doesn't explain its characteristics or constraints.
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 a single, efficient sentence with zero waste, clearly front-loaded as 'Executes a Tooling API request'. It is appropriately sized for the tool's complexity and doesn't include unnecessary details.
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 (3 parameters, no output schema, and no annotations), the description is incomplete. It doesn't explain what the Tooling API is, what the output might look like, or provide context for usage, leaving significant gaps for an AI agent to understand and invoke the tool correctly.
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 100%, so the schema fully documents parameters like 'action', 'method', and 'data'. The description adds no additional meaning beyond what the schema provides, such as examples of common actions or data formats, but the high coverage justifies a baseline score of 3.
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 'Executes a Tooling API request' states a general purpose but lacks specificity about what the Tooling API is or what resources it operates on. It distinguishes from siblings like 'apex_execute' or 'restful' by mentioning 'Tooling API', but doesn't clarify the verb beyond 'executes' or detail the scope of operations.
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 'apex_execute' or 'restful', which might handle similar API requests. The description implies a generic API execution but doesn't specify contexts, prerequisites, or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_recordC
Updates an existing record
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | The name of the Salesforce object (e.g., 'Account', 'Contact') | |
| record_id | Yes | The ID of the record to update | |
| data | Yes | The updated data for the record |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is an update operation (implying mutation), but doesn't address permissions required, whether changes are reversible, error conditions, or side effects. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
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 extremely concise at just three words, with zero wasted language. It's front-loaded with the core action, though this brevity comes at the cost of completeness.
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 mutation tool with 3 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what constitutes a 'record', what system it operates on, what happens on success/failure, or how it differs from sibling tools. The context signals indicate complexity that isn't addressed.
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 100%, so all parameters are documented in the schema itself. The description adds no additional meaning about parameters beyond what's already in the schema (e.g., it doesn't clarify the structure of 'data' or provide examples). Baseline 3 is appropriate when the schema does the heavy lifting.
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 'Updates an existing record' clearly states the verb (update) and resource (record), but it's generic and doesn't distinguish this tool from similar operations like 'create_record' or 'delete_record'. It lacks specificity about what kind of record or system is involved.
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 'create_record' or 'delete_record'. The description doesn't mention prerequisites (e.g., needing an existing record ID) or contextual factors that would help an agent choose appropriately among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
10 tool updates
- First observed
apex_execute - First observed
create_record - First observed
delete_record - First observed
get_object_fields - First observed
get_record - First observed
restful - First observed
run_soql_query - First observed
run_sosl_search - First observed
tooling_execute - First observed
update_record
TDQS
Most tools have clear distinct purposes, but there is some functional overlap that could cause confusion. For example, apex_execute, restful, and tooling_execute all involve making API calls with different endpoints, which might be ambiguous without careful reading of descriptions. The CRUD operations (create_record, get_record, update_record, delete_record) are well-differentiated from query/search tools (run_soql_query, run_sosl_search), but the multiple execution methods create some redundancy.
Tool names follow a mostly consistent verb_noun pattern with clear actions like create_record, delete_record, get_record, and update_record. However, there are minor deviations such as apex_execute and tooling_execute using 'execute' instead of a more specific verb, and restful being a noun rather than a verb_noun combination. Overall, the naming is readable and predictable with only slight inconsistencies.
With 10 tools, the count is well-scoped for a Salesforce integration server. It covers essential operations like CRUD, queries, searches, and API executions without being overwhelming. Each tool appears to serve a distinct purpose in the Salesforce domain, making the set manageable and comprehensive for typical agent tasks.
The tool set provides strong coverage of core Salesforce operations, including record management (create, read, update, delete), data querying (SOQL, SOSL), and API interactions (REST, Apex, Tooling). A minor gap is the lack of tools for metadata operations beyond get_object_fields, such as listing objects or managing schema changes, but agents can likely work around this using existing tools like restful or tooling_execute.
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
MCP server for Support & Service Management
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server implementation that integrates Claude with Salesforce, enabling natural language interactions with Salesforce data and metadata.855MIT
- AlicenseNot gradedqualityFmaintenanceMCP Server for Nutanix Prism Central14MIT
- FlicenseNot gradedqualityDmaintenanceThis MCP server provides tools to interact with the Salesforce Agentforce API, allowing authentication, session creation, and message exchange with Salesforce agents.10-
- GPL 3.0
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/leilaabdel/MCP-Salesforce'
If you have feedback or need assistance with the MCP directory API, please join our Discord server