Salesforce MCP Server

Salesforce MCP Server

An MCP server implementation that integrates Claude with Salesforce, enabling natural language interactions with Salesforce data and metadata.

Category
Visit Server

Tools

salesforce_search_objects

Search for Salesforce standard and custom objects by name pattern. Examples: 'Account' will find Account, AccountHistory; 'Order' will find WorkOrder, ServiceOrder__c etc.

salesforce_describe_object

Get detailed schema metadata including all fields, relationships, and field properties of any Salesforce object. Examples: 'Account' shows all Account fields including custom fields; 'Case' shows all Case fields including relationships to Account, Contact etc.

salesforce_query_records

Query records from any Salesforce object using SOQL, including relationship queries. Examples: 1. Parent-to-child query (e.g., Account with Contacts): - objectName: "Account" - fields: ["Name", "(SELECT Id, FirstName, LastName FROM Contacts)"] 2. Child-to-parent query (e.g., Contact with Account details): - objectName: "Contact" - fields: ["FirstName", "LastName", "Account.Name", "Account.Industry"] 3. Multiple level query (e.g., Contact -> Account -> Owner): - objectName: "Contact" - fields: ["Name", "Account.Name", "Account.Owner.Name"] 4. Related object filtering: - objectName: "Contact" - fields: ["Name", "Account.Name"] - whereClause: "Account.Industry = 'Technology'" Note: When using relationship fields: - Use dot notation for parent relationships (e.g., "Account.Name") - Use subqueries in parentheses for child relationships (e.g., "(SELECT Id FROM Contacts)") - Custom relationship fields end in "__r" (e.g., "CustomObject__r.Name")

salesforce_dml_records

Perform data manipulation operations on Salesforce records: - insert: Create new records - update: Modify existing records (requires Id) - delete: Remove records (requires Id) - upsert: Insert or update based on external ID field Examples: Insert new Accounts, Update Case status, Delete old records, Upsert based on custom external ID

salesforce_manage_object

Create new custom objects or modify existing ones in Salesforce: - Create: New custom objects with fields, relationships, and settings - Update: Modify existing object settings, labels, sharing model Examples: Create Customer_Feedback__c object, Update object sharing settings Note: Changes affect metadata and require proper permissions

salesforce_manage_field

Create new custom fields or modify existing fields on any Salesforce object: - Field Types: Text, Number, Date, Lookup, Master-Detail, Picklist etc. - Properties: Required, Unique, External ID, Length, Scale etc. - Relationships: Create lookups and master-detail relationships Examples: Add Rating__c picklist to Account, Create Account lookup on Custom Object Note: Changes affect metadata and require proper permissions

salesforce_search_all

Search across multiple Salesforce objects using SOSL (Salesforce Object Search Language). Examples: 1. Basic search across all objects: { "searchTerm": "John", "objects": [ { "name": "Account", "fields": ["Name"], "limit": 10 }, { "name": "Contact", "fields": ["FirstName", "LastName", "Email"] } ] } 2. Advanced search with filters: { "searchTerm": "Cloud*", "searchIn": "NAME FIELDS", "objects": [ { "name": "Account", "fields": ["Name", "Industry"], "orderBy": "Name DESC", "where": "Industry = 'Technology'" } ], "withClauses": [ { "type": "NETWORK", "value": "ALL NETWORKS" }, { "type": "SNIPPET", "fields": ["Description"] } ] } Notes: - Use * and ? for wildcards in search terms - Each object can have its own WHERE, ORDER BY, and LIMIT clauses - Support for WITH clauses: DATA CATEGORY, DIVISION, METADATA, NETWORK, PRICEBOOKID, SNIPPET, SECURITY_ENFORCED - "updateable" and "viewable" options control record access filtering

salesforce_upload_report_xml

Upload XML to generate or update reports in Salesforce. Examples: 1. Create a new report: - reportName: "Monthly Sales Summary" - folderId: "00l5e000000XXXXX" (optional - uploads to user's private reports by default) - xmlContent: "<Report xmlns=..." - isDeveloperName: false 2. Update existing report: - reportId: "00O5e000000XXXXX" - xmlContent: "<Report xmlns=..." Note: XML must follow Salesforce report metadata format. For custom report types, ensure the report type exists in your org before uploading.

README

Salesforce MCP Server

An MCP (Model Context Protocol) server implementation that integrates Claude with Salesforce, enabling natural language interactions with your Salesforce data and metadata. This server allows Claude to query, modify, and manage your Salesforce objects and records using everyday language.

<a href="https://glama.ai/mcp/servers/n1rsv1aiee"> <img width="380" height="200" src="https://glama.ai/mcp/servers/n1rsv1aiee/badge" alt="Salesforce Server MCP server" /> </a>

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
  • Intuitive Error Handling: Clear feedback with Salesforce-specific error details

Installation

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

Setup

Salesforce Authentication

You can authenticate with Salesforce using one of two methods:

1. Username/Password Authentication

  1. Set up your Salesforce credentials
  2. Get your security token (Reset from Salesforce Settings)
  3. Configure the environment variables as shown in the configuration section

2. OAuth2 Authentication with Consumer Key/Secret

  1. Set up a Connected App in Salesforce
  2. Get the Consumer Key and Consumer Secret
  3. Configure the environment variables as shown in the configuration section

IDE Integration

Cursor IDE Setup

  1. Install the package globally:
npm install -g @surajadsul02/mcp-server-salesforce
  1. Configure the MCP server in Cursor IDE .cursor/mcp.json:
Using env Command
{
  "mcpServers": {
    "salesforce": {
      "command": "env",
      "args": [
        "SALESFORCE_USERNAME=your.actual.email@example.com",
        "SALESFORCE_PASSWORD=YourActualPassword123",
        "SALESFORCE_TOKEN=YourActualSecurityToken123",
        "SALESFORCE_INSTANCE_URL=https://login.salesforce.com",
        "npx",
        "-y",
        "@surajadsul02/mcp-server-salesforce"
      ]
    }
  }
}
For OAuth2 Authentication in Cursor
{
  "mcpServers": {
    "salesforce": {
      "command": "env",
      "args": [
        "SALESFORCE_USERNAME=your.actual.email@example.com",
        "SALESFORCE_PASSWORD=YourActualPassword123",
        "SALESFORCE_TOKEN=YourActualSecurityToken123",
        "SALESFORCE_INSTANCE_URL=https://login.salesforce.com",
        "SALESFORCE_CONSUMER_KEY=YourConsumerKey",
        "SALESFORCE_CONSUMER_SECRET=YourConsumerSecret",
        "npx",
        "-y",
        "@surajadsul02/mcp-server-salesforce"
      ]
    }
  }
}

Claude Desktop Setup

  1. Install the package globally (if not already installed):
npm install -g @surajadsul02/mcp-server-salesforce
  1. Add to your claude_desktop_config.json:
For Username/Password Authentication
{
  "mcpServers": {
    "salesforce": {
      "command": "npx",
      "args": ["-y", "@surajadsul02/mcp-server-salesforce"],
      "env": {
        "SALESFORCE_USERNAME": "your_username",
        "SALESFORCE_PASSWORD": "your_password",
        "SALESFORCE_TOKEN": "your_security_token",
        "SALESFORCE_INSTANCE_URL": "https://login.salesforce.com"
      }
    }
  }
}
For OAuth2 Authentication
{
  "mcpServers": {
    "salesforce": {
      "command": "npx",
      "args": ["-y", "@surajadsul02/mcp-server-salesforce"],
      "env": {
        "SALESFORCE_USERNAME": "your_username",
        "SALESFORCE_PASSWORD": "your_password",
        "SALESFORCE_CONSUMER_KEY": "your_consumer_key",
        "SALESFORCE_CONSUMER_SECRET": "your_consumer_secret",
        "SALESFORCE_INSTANCE_URL": "https://login.salesforce.com"
      }
    }
  }
}
  1. Configuration File Location:
    • macOS: ~/Library/Application Support/Claude Desktop/claude_desktop_config.json
    • Windows: %APPDATA%\Claude Desktop\claude_desktop_config.json
    • Linux: ~/.config/Claude Desktop/claude_desktop_config.json

Required Environment Variables

For Username/Password Authentication:

  • SALESFORCE_USERNAME: Your Salesforce username/email
  • SALESFORCE_PASSWORD: Your Salesforce password
  • SALESFORCE_TOKEN: Your Salesforce security token
  • SALESFORCE_INSTANCE_URL: Your Salesforce instance URL (Optional, default: https://login.salesforce.com)

For OAuth2 Authentication:

  • SALESFORCE_USERNAME: Your Salesforce username/email
  • SALESFORCE_PASSWORD: Your Salesforce password
  • SALESFORCE_CONSUMER_KEY: Your Connected App's consumer key
  • SALESFORCE_CONSUMER_SECRET: Your Connected App's consumer secret
  • SALESFORCE_INSTANCE_URL: Your Salesforce instance URL (Optional, default: https://login.salesforce.com)

Example Usage

Searching Objects

"Find all objects related to Accounts"
"Show me objects that handle customer service"
"What objects are available for order management?"

Getting Schema Information

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

Querying Records

"Get all Accounts created this month"
"Show me high-priority Cases with their related Contacts"
"Find all Opportunities over $100k"

Managing Custom Objects

"Create a Customer Feedback object"
"Add a Rating field to the Feedback object"
"Update sharing settings for the Service Request object"

Searching Across Objects

"Search for 'cloud' in Accounts and Opportunities"
"Find mentions of 'network issue' in Cases and Knowledge Articles"
"Search for customer name across all relevant objects"

Development

Building from source

# Clone the repository
git clone https://github.com/surajadsul02/mcp-server-salesforce.git

# Navigate to directory
cd mcp-server-salesforce

# Install dependencies
npm install

# Build the project
npm run build

Troubleshooting

  1. Authentication Errors

    • Verify your credentials are correct
    • For username/password auth: ensure security token is correct
    • For OAuth2: verify consumer key and secret
  2. Connection Issues

    • Check your Salesforce instance URL
    • Verify network connectivity
    • Ensure proper API access permissions
  3. Cursor IDE Integration

    • Restart Cursor IDE after configuration changes
    • Check Developer Tools (Help > Toggle Developer Tools) for error messages
    • Verify the package is installed globally
  4. Claude Desktop Integration

    • Verify configuration file location
    • Check file permissions
    • Restart Claude Desktop after configuration changes
    • Ensure environment variables are properly set

Contributing

Contributions are welcome! Feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Issues and Support

If you encounter any issues or need support, please file an issue on the GitHub repository.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured