Salesforce MCP server

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

The Salesforce MCP server integrates Claude with Salesforce, enabling natural language interactions with your Salesforce data and metadata. This implementation allows Claude to query, modify, and manage Salesforce objects and records using everyday language, making it easier to work with your Salesforce environment.

Features

  • Object and Field Management: Create and modify custom objects and fields using natural language
  • Smart Object Search: Find Salesforce objects using partial name matches
  • Detailed Schema Information: Get comprehensive field and relationship details for any object
  • Flexible Data Queries: Query records with relationship support and complex filters
  • Data Manipulation: Insert, update, delete, and upsert records with ease
  • Cross-Object Search: Search across multiple objects using SOSL
  • Apex Code Management: Read, create, and update Apex classes and triggers
  • Intuitive Error Handling: Clear feedback with Salesforce-specific error details
  • Switchable Authentication: Supports multiple orgs with easy switching based on VS Code workspace configuration

Installation

To install the Salesforce MCP server globally:

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

Authentication Setup

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

Username/Password Authentication (Default)

  1. Set up your Salesforce credentials
  2. Get your security token (Reset 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) as it's required for authentication

Salesforce CLI Authentication (Recommended for local/dev)

  1. Install and authenticate Salesforce CLI (sf)
  2. Make sure your org is authenticated and accessible via sf org display --json in the root of your Salesforce project
  3. The server will automatically retrieve the access token and instance URL using the CLI

Usage with Claude Desktop

Add to your claude_desktop_config.json based on your preferred authentication method:

For Salesforce CLI Authentication:

{
  "mcpServers": {
    "salesforce": {
      "command": "npx",
      "args": ["-y", "@tsmztech/mcp-server-salesforce"],
      "env": {
        "SALESFORCE_CONNECTION_TYPE": "Salesforce_CLI"
      }
    }
  }
}

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"
      }
    }
  }
}

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"
      }
    }
  }
}

Available Tools

salesforce_search_objects

Search for standard and custom objects by partial name matches. For example:

"Find objects related to Account"
"Show me objects that handle customer service"

salesforce_describe_object

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

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

salesforce_query_records

Query records with relationship support and complex filters:

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

salesforce_aggregate_query

Execute aggregate queries with GROUP BY:

"Count opportunities by stage"
"Calculate average deal size by sales rep and quarter"

salesforce_dml_records

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

"Update status of multiple accounts"
"Create new contact records"

salesforce_manage_object

Create and modify custom objects:

"Create a Customer Feedback object"
"Update sharing settings for the Service Request object"

salesforce_manage_field

Manage object fields including adding new fields and modifying properties:

"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 (Field Permissions):

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

salesforce_search_all

Search across multiple objects using SOSL:

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

salesforce_read_apex

Read Apex classes and view their source code:

"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:

"Create a new Apex utility class for handling date operations"
"Update the LeadConverter class to add a new method"

salesforce_read_apex_trigger

Read Apex triggers and view their source code:

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

salesforce_write_apex_trigger

Create and update Apex triggers:

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

salesforce_execute_anonymous

Execute anonymous Apex code:

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

salesforce_manage_debug_logs

Manage debug logs for Salesforce users:

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

How to install this MCP server

For Claude Code

To add this MCP server to Claude Code, run this command in your terminal:

claude mcp add-json "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"}}'

See the official Claude Code MCP documentation for more details.

For 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 > Tools & Integrations and click "New MCP Server".

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

{
    "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"
            }
        }
    }
}

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 explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.

For Claude Desktop

To add this MCP server to Claude Desktop:

1. Find your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2. Add this to your configuration file:

{
    "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"
            }
        }
    }
}

3. Restart Claude Desktop for the changes to take effect

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