MCP Server for Interacting with Salesforce Orgs
Report bugs and issues here.
For feature requests and other related topics, start a Discussion here.
For complete documentation about the Salesforce DX MCP Server, see this section in the Salesforce DX Developer Guide. The docs include:
- Comprehensive overview, including details about the security features.
- Quick start guide.
- Multiple examples of configuring the server in your MCP client.
- Sample prompts for invoking the core DX MCP tools.
The Salesforce DX MCP Server is a specialized Model Context Protocol (MCP) implementation designed to facilitate seamless interaction between large language models (LLMs) and Salesforce orgs. This MCP server provides a robust set of tools and capabilities that enable LLMs to read, manage, and operate Salesforce resources securely.
Note
Salesforce DX MCP Server is a pilot or beta service that is subject to the Beta Services Terms at Agreements - Salesforce.com or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the Product Terms Directory. Use of this pilot or beta service is at the Customer's sole discretion.
Configure the Salesforce DX MCP Server for your MCP client by updating its associated MCP JSON file; each client is slightly different, so check your MCP client documentation for details.
Here's an example for VS Code with Copilot in which you create and update a .vscode/mcp.json
file in your project:
{
"servers": {
"Salesforce DX": {
"command": "npx",
"args": ["-y", "@salesforce/mcp",
"--orgs", "DEFAULT_TARGET_ORG",
"--toolsets", "orgs,metadata,data,users",
"--tools", "run_apex_test",
"--allow-non-ga-tools"]
}
}
}
The args
format shown in the preceding example is the same for all MCP clients; it's how you customize the DX MCP Server for your particular environment. Notes:
- The
"-y", "@salesforce/mcp"
part tellsnpx
to automatically install the@salesforce/mcp
package instead of asking permission. Don't change this. - See the Reference sections below for the possible flags you can pass the
args
option, and possible values you can pass to the--orgs
,--toolsets
, and--tools
flags. - When writing the
args
option, surround both the flag names and their values in double quotes, and separate all flags and values with commas. Some flags are Boolean and don't take a value. - The preceding example shows three flags that take a string value (
--orgs
,--toolsets
, and--tools
) and one Boolean flag (--allow-non-ga-tools
). This configuration starts a DX MCP Server that enables all the MCP tools in theorgs
,metadata
,data
, andusers
toolsets and a specific tool calledrun_apex_tests
. It also enables tools in these configured toolsets that aren't yet generally available.
Reference: Available Flags for the `args` Option
These are the flags that you can pass to the args
option.
Flag Name | Description | Required? | Notes |
---|---|---|---|
--orgs |
One or more orgs that you've locally authorized. | Yes | You must specify at least one org. See Configure Orgs for the values you can pass to this flag. |
--toolsets |
Sets of tools, based on functionality, that you want to enable. | No | Set to "all" to enable every tool in every toolset. See Configure Toolsets for the values you can pass to this flag. |
--tools |
Individual tool names that you want to enable. | No | You can use this flag in combination with the --toolsets flag. For example, you can enable all tools in one toolset, and just one tool in a different toolset. |
--no-telemetry |
Boolean flag to disable telemetry, the automatic collection of data for monitoring and analysis. | No | Telemetry is enabled by default, so specify this flag to disable it. |
--debug |
Boolean flag that requests that the DX MCP Server print debug logs. | No | Debug mode is disabled by default. NOTE: Not all MCP clients expose MCP logs, so this flag might not work for all IDEs. |
--allow-non-ga-tools |
Boolean flag to allow the DX MCP Server to use both the generally available (GA) and NON-GA tools that are in the toolsets or tools you specify. | No | By default, the DX MCP server uses only the tools marked GA. |
--dynamic-tools |
(experimental) Boolean flag that enables dynamic tool discovery and loading. When specified, the DX MCP server starts with a minimal set of core tools and loads new tools as needed. | No | This flag is useful for reducing the initial context size and improving LLM performance. Dynamic tool discovery is disabled by default. NOTE: This feature works in VSCode and Cline but may not work in other environments. |
Reference: Configure Orgs
The Salesforce MCP tools require an org, and so you must include the required --orgs
flag to specify at least one authorized org when you configure the MCP server. Separate multiple values with commas.
You must explicitly authorize the orgs on your computer before the MCP server can access them. Use the org login web
Salesforce CLI command or the VS Code SFDX: Authorize an Org command from the command palette.
These are the available values for the --orgs
flag:
--orgs Value | Description |
---|---|
DEFAULT_TARGET_ORG |
Allow access to your default org. If you've set a local default org in your DX project, the MCP server uses it. If not, the server uses a globally-set default org. |
DEFAULT_TARGET_DEV_HUB |
Allow access to your default Dev Hub org. If you've set a local default Dev Hub org in your DX project, the MCP server uses it. If not, the server uses a globally-set default Dev Hub org. |
ALLOW_ALL_ORGS |
Allow access to all authorized orgs. Use this value with caution. |
<username or alias> |
Allow access to a specific org by specifying its username or alias. |
Reference: Configure Toolsets and Tools
The Salesforce DX MCP Server supports toolsets - a way to selectively enable different groups of MCP tools based on your needs. This allows you to run the MCP server with only the tools you require, which in turn reduces the context.
Use the --toolsets
flag to specify the toolsets when you configure the Salesforce DX MCP Server. Separate multiple toolsets with commas.
These are the available toolsets.
Toolset | Description |
---|---|
all |
Enables all available tools from all toolsets. Use caution, this will load over 60 tools. |
orgs |
Tools to manage your authorized orgs. |
data |
Tools to manage the data in your org, such as listing all accounts. |
users |
Tools to manage org users, such as assigning a permission set. |
metadata |
Tools to deploy and retrieve metadata to and from your org and your DX project. |
testing |
Tools to test your code and features |
other |
Other useful tools, such as tools for static analysis of your code using Salesforce Code Analyzer. |
mobile |
Tools for mobile development and capabilities. |
mobile-core |
A subset of mobile tools focused on essential mobile capabilities. |
aura-experts |
Tools which provides Aura component analysis, blueprinting, and migration expertise. |
lwc-experts |
Tools to assist with LWC development, testing, optimization, and best practices. |
The Salesforce DX MCP Server also supports registering individual tools. This can be used in combination with toolsets to further fine-tune registered tools.
Use the --tools
flag to enable specific tools when you configure the Salesforce DX MCP Server. Separate multiple tools with commas. The --tools
flag is optional.
The following sections list all the tools that are included in a specific toolset. The tools marked NON-GA are not yet generally available, specify the --allow-non-ga-tools
flag to use them.
get_username
- Determines the appropriate username or alias for Salesforce operations, handling both default orgs and Dev Hubs.resume_tool_operation
- Resumes a long-running operation that wasn't completed by another tool.
list_all_orgs
- Lists all configured Salesforce orgs, with optional connection status checking.create_org_snapshot
- (NON-GA) Create a scratch org snapshot.create_scratch_org
- (NON-GA) Create a scratch org.delete_org
- (NON-GA) Delete a locally-authorized Salesforce scratch org or sandbox.org_open
- (NON-GA) Open an org in a browser.
NOTE: The tools marked NON-GA are not yet generally available, specify the --allow-non-ga-tools
flag to use them.
run_soql_query
- Runs a SOQL query against a Salesforce org.
assign_permission_set
- Assigns a permission set to the user or on behalf of another user.
deploy_metadata
- Deploys metadata from your DX project to an org.retrieve_metadata
- Retrieves metadata from your org to your DX project.
run_agent_test
- Executes agent tests in your org.run_apex_test
- Executes apex tests in your org.
create_mobile_lwc_app_review
- Provides TypeScript API documentation for Salesforce LWC App Review Service, offering expert guidance for implementing app review features in Lightning Web Components.create_mobile_lwc_ar_space_capture
- Provides TypeScript API documentation for Salesforce L WC AR Space Capture, offering expert guidance for implementing AR space capture features in Lightning Web Components.create_mobile_lwc_barcode_scanner
- Provides TypeScript API documentation for Salesforce LWC Barcode Scanner, offering expert guidance for implementing barcode scanning features in Lightning Web Components.create_mobile_lwc_biometrics
- Provides TypeScript API documentation for Salesforce LWC Biometrics Service, offering expert guidance for implementing biometric authentication features in Lightning Web Components.create_mobile_lwc_calendar
- Provides TypeScript API documentation for Salesforce LWC Calendar Service, offering expert guidance for implementing calendar integration features in Lightning Web Components.create_mobile_lwc_contacts
- Provides TypeScript API documentation for Salesforce LWC Contacts Service, offering expert guidance for implementing contacts management features in Lightning Web Components.create_mobile_lwc_document_scanner
- Provides TypeScript API documentation for Salesforce LWC Document Scanner, offering expert guidance for implementing document scanning features in Lightning Web Components.create_mobile_lwc_geofencing
- Provides TypeScript API documentation for Salesforce LWC Geofencing Service, offering expert guidance for implementing geofencing features in Lightning Web Components.create_mobile_lwc_location
- Provides TypeScript API documentation for Salesforce LWC Location Service, offering expert guidance for implementing location services in Lightning Web Components.create_mobile_lwc_nfc
- Provides TypeScript API documentation for Salesforce LWC NFC Service, offering expert guidance for implementing NFC features in Lightning Web Components.create_mobile_lwc_payments
- Provides TypeScript API documentation for Salesforce LWC Payments Service, offering expert guidance for implementing payment processing features in Lightning Web Components.get_mobile_lwc_offline_analysis
- Analyzes Lightning Web Components for mobile-specific issues and provides detailed recommendations for mobile offline compatibility and performance improvements.get_mobile_lwc_offline_guidance
- Provides structured review instructions to detect and remediate mobile offline code violations in Lightning Web Components for Salesforce Mobile Apps.
create_mobile_lwc_barcode_scanner
- Provides TypeScript API documentation for Salesforce LWC Barcode Scanner, offering expert guidance for implementing barcode scanning features in Lightning Web Components.create_mobile_lwc_biometrics
- Provides TypeScript API documentation for Salesforce LWC Biometrics Service, offering expert guidance for implementing biometric authentication features in Lightning Web Components.create_mobile_lwc_location
- Provides TypeScript API documentation for Salesforce LWC Location Service, offering expert guidance for implementing location services in Lightning Web Components.get_mobile_lwc_offline_analysis
- Analyzes Lightning Web Components for mobile-specific issues and provides detailed recommendations for mobile offline compatibility and performance improvements.get_mobile_lwc_offline_guidance
- Provides structured review instructions to detect and remediate mobile offline code violations in Lightning Web Components for Salesforce Mobile Apps.
-
create_aura_blueprint_draft
- (GA) Creates a comprehensive Product Requirements Document (PRD) blueprint for Aura component migration. Analyzes Aura component files and generates framework-agnostic specifications suitable for LWC migration, including business requirements, technical patterns, and migration guidelines. -
enhance_aura_blueprint_draft
- (GA) Enhances an existing draft PRD with expert analysis and unknown resolution. Takes a draft blueprint and applies specialized Aura expert knowledge to resolve dependencies, add technical insights, and improve the migration specifications for better LWC implementation guidance. -
transition_prd_to_lwc
- (GA) Provides migration bridge guidance for creating LWC components from Aura specifications. Takes the enhanced PRD and generates specific implementation guidance, platform service mappings, and step-by-step instructions for building the equivalent LWC component. -
orchestrate_aura_migration
- (GA) Orchestrates the complete Aura to LWC migration workflow. Provides end-to-end guidance for the entire migration process, from initial analysis through final implementation, including best practices, tooling recommendations, and quality assurance steps.
create_lwc_component
- (GA) Creates complete LWC components from PRD specifications with proper structure and best practicescreate_lwc_jest_tests
- (GA) Generates comprehensive Jest test suites for LWC components with coverage and mockingreview_lwc_jest_tests
- (GA) Reviews and validates Jest test implementations for LWC components
guide_lwc_accessibility
- (GA) Provides accessibility guidelines and testing instructions for LWC componentsguide_lwc_best_practices
- (GA) Offers LWC development best practices and coding standards guidanceguide_lwc_development
- (GA) Comprehensive LWC development workflow and implementation guidelinesguide_lwc_rtl_support
- (GA) Right-to-Left internationalization support and RTL development guidanceguide_lwc_slds2_uplift_linter_fixes
- (GA) Analyzes the given LWC code along with the slds-linter output to fix issues using the SLDS2 knowledgeguide_lwc_security
- (GA) Comprehensive security analysis in accordance with Product Security Guidelines and Lightning Web Security Guidelines
orchestrate_lwc_component_creation
- (GA) Step-by-step component creation workflow guidanceorchestrate_lwc_component_optimization
- (GA) Performance optimization and best practices for LWC componentsorchestrate_lwc_component_testing
- (GA) Comprehensive testing workflow and test generation guidanceorchestrate_lwc_slds2_uplift
- (GA) Migration guidance for upgrading to SLDS2 design system
explore_lds_uiapi
- (GA) Explores and documents Lightning Design System UI API capabilitiesguide_lds_data_consistency
- (GA) Data consistency patterns and best practices for LDS componentsguide_lds_development
- (GA) LDS development guidelines and component integrationguide_lds_referential_integrity
- (GA) Referential integrity patterns for LDS data managementorchestrate_lds_data_requirements
- (GA) Step-by-step guidance for analyzing and clarifying LDS data requirements to produce PRD-ready specifications.
verify_aura_migration_completeness
- (GA) Aura to LWC migration completeness checklist and validationguide_figma_to_lwc_conversion
- (GA) Converts Figma designs to LWC component specificationsrun_lwc_accessibility_jest_tests
- (GA) Accessibility testing utilities and Jest integration for LWC components
run_code_analyzer
- (NON-GA) Performs a static analysis of your code using Salesforce Code Analyzer. Includes validating that the code conforms to best practices, checking for security vulnerabilities, and identifying possible performance issues.describe_code_analyzer_rule
- (NON-GA) Gets the description of a Salesforce Code Analyzer rule, including the engine it belongs to, its severity, and associated tags.