Salesforce MCP server

Integrates with Salesforce CRM for natural language-driven data management, querying, and administration tasks.
Back to servers
Provider
Tapas Mukherjee
Release date
Jan 16, 2025
Language
TypeScript
Package
Stats
1.6K downloads
45 stars

The Salesforce MCP Server enables natural language interactions with your Salesforce data and metadata. It allows Claude to query, modify, and manage Salesforce objects and records using everyday language, providing an intuitive interface to your Salesforce environment.

Installation

Install the package globally using npm:

npm install -g @tsmztech/mcp-server-salesforce

Authentication Setup

You can connect to Salesforce using one of two authentication methods:

Username/Password Authentication

  1. Set up your Salesforce credentials
  2. Get your security token from Salesforce Settings

OAuth 2.0 Client Credentials Flow

  1. Create a Connected App in Salesforce
  2. Enable OAuth settings and select "Client Credentials Flow"
  3. Set appropriate scopes (typically "api" is sufficient)
  4. Save the Client ID and Client Secret
  5. Note your instance URL (e.g., https://your-domain.my.salesforce.com)

Configuration with Claude Desktop

Add the server to your claude_desktop_config.json:

For Username/Password Authentication

{
  "mcpServers": {
    "salesforce": {
      "command": "npx",
      "args": ["-y", "@tsmztech/mcp-server-salesforce"],
      "env": {
        "SALESFORCE_CONNECTION_TYPE": "User_Password",
        "SALESFORCE_USERNAME": "your_username",
        "SALESFORCE_PASSWORD": "your_password",
        "SALESFORCE_TOKEN": "your_security_token",
        "SALESFORCE_INSTANCE_URL": "org_url"        
      }
    }
  }
}

Note: SALESFORCE_INSTANCE_URL is optional with default value of https://login.salesforce.com

For OAuth 2.0 Client Credentials Flow

{
  "mcpServers": {
    "salesforce": {
      "command": "npx",
      "args": ["-y", "@tsmztech/mcp-server-salesforce"],
      "env": {
        "SALESFORCE_CONNECTION_TYPE": "OAuth_2.0_Client_Credentials",
        "SALESFORCE_CLIENT_ID": "your_client_id",
        "SALESFORCE_CLIENT_SECRET": "your_client_secret",
        "SALESFORCE_INSTANCE_URL": "https://your-domain.my.salesforce.com"
      }
    }
  }
}

For OAuth 2.0 Client Credentials Flow, the SALESFORCE_INSTANCE_URL must be your exact Salesforce instance URL.

Available Tools

Object Management

salesforce_search_objects

Search for standard and custom objects by partial name matches.

Example prompts:

"Find all objects related to Accounts"
"Show me objects that handle customer service"

salesforce_describe_object

Get detailed object schema information including fields, relationships, and picklist values.

Example prompts:

"What fields are available in the Account object?"
"Show me the picklist values for Case Status"

salesforce_manage_object

Create and modify custom objects.

Example prompt:

"Create a Customer Feedback object"

salesforce_manage_field

Manage object fields including adding new custom fields and creating relationships.

Example prompt:

"Add a Rating picklist field to Account"
"Create a Revenue currency field on Account and grant access to Sales User and Marketing User profiles"

salesforce_manage_field_permissions

Manage Field Level Security permissions.

Example prompts:

"Grant System Administrator access to Custom_Field__c on Account"
"Give read-only access to Rating__c field for Sales User profile"

Data Operations

salesforce_query_records

Query records with relationship support.

Example prompts:

"Get all Accounts created this month"
"Show me high-priority Cases with their related Contacts"

salesforce_aggregate_query

Execute aggregate queries with GROUP BY.

Example prompts:

"Count opportunities by stage"
"Show me the total revenue by account"

salesforce_dml_records

Perform data operations (insert, update, delete, upsert).

Example prompt:

"Update status of multiple accounts"

salesforce_search_all

Search across multiple objects using SOSL.

Example prompts:

"Search for 'cloud' in Accounts and Opportunities"
"Find mentions of 'network issue' in Cases and Knowledge Articles"

Apex Code Management

salesforce_read_apex

Read Apex classes and view their source code.

Example prompts:

"Show me all Apex classes with 'Controller' in the name"
"Get the full code for the AccountService class"

salesforce_write_apex

Create and update Apex classes.

Example prompt:

"Create a new Apex utility class for handling date operations"

salesforce_read_apex_trigger

Read Apex triggers and view their source code.

Example prompts:

"List all triggers for the Account object"
"Show me the code for the ContactTrigger"

salesforce_write_apex_trigger

Create and update Apex triggers.

Example prompts:

"Create a new trigger for the Opportunity object"
"Update the Case trigger to handle after delete events"

salesforce_execute_anonymous

Execute anonymous Apex code without creating a permanent class.

Example prompts:

"Execute Apex code to calculate account metrics"
"Run a script to update related records"

Debugging

salesforce_manage_debug_logs

Manage debug logs for Salesforce users.

Example prompts:

"Enable debug logs for [email protected]"
"Retrieve recent logs for an admin user"

Usage Examples

Basic Object Exploration

"Find objects related to Account"
"Show me all fields in the Account object"

Complex Data Queries

"Get all Accounts with their related Contacts"
"Find accounts with more than 10 opportunities"

Data Manipulation

"Create a new Account named 'Acme Corp'"
"Update the status of opportunities closing this month"

Object and Field Management

"Create a Customer Feedback custom object"
"Add a Rating picklist field to the Feedback object with values 'Poor', 'Average', 'Good', 'Excellent'"

Apex Management

"Create a new Apex class called AccountUtility"
"Show me all Apex triggers for the Contact object"

How to add this MCP server to Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > MCP and click "Add new global MCP server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "cursor-rules-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "cursor-rules-mcp"
            ]
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explictly ask the agent to use the tool by mentioning the tool name and describing what the function does.

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later