Skip to main content
Glama
Salesforce MCP Server

Salesforce MCP Server

by jaworjar95

Salesforce MCP Server

A comprehensive Model Context Protocol (MCP) server that provides seamless Salesforce integration for AI development tools like Claude Desktop, Cline, and other MCP-compatible clients.

πŸš€ Features

17 Comprehensive Tools

πŸ” Query & Search Tools

  • execute-soql - Execute SOQL queries with auto-bulk switching and pagination

  • execute-sosl - Multi-object search with result aggregation

  • describe-sobject - SObject metadata with intelligent caching

⚑ Apex Development Tools

  • execute-apex - Anonymous Apex execution with debug log capture

  • run-apex-tests - Apex test execution with coverage reporting

  • get-apex-logs - Debug log retrieval with filtering

πŸ“Š Data Management Tools

  • create-record - Single/bulk record creation with auto-bulk switching

  • get-record - Record retrieval with field selection

  • update-record - Single/bulk record updates with validation

  • delete-record - Single/bulk record deletion

  • upsert-record - External ID-based upsert operations

πŸ”§ Metadata Tools (Component-Based)

  • list-metadata-types - Discover metadata types

  • deploy-metadata - Deploy individual metadata components (e.g., ApexClass, CustomObject) from files or JSON

  • deploy-bundle - Deploy a metadata bundle (e.g., LWC) from a directory path

  • retrieve-metadata - Retrieve individual metadata components, with an option to save to a file

  • check-deploy-status - Check the status of a deployment

πŸ”— Connection Tools

  • test-connection - Connection validation and health monitoring

Key Capabilities

  • πŸ”„ Auto-Bulk Switching - Intelligent API selection for optimal performance

  • πŸ” Dual Authentication - OAuth2 and Username/Password support

  • ⚑ Smart Caching - 1-hour TTL for SObject metadata

  • πŸ›‘οΈ Type Safety - Full TypeScript implementation with runtime validation

  • πŸ“ Comprehensive Logging - Detailed debugging and monitoring

  • πŸ” Raw Error Exposure - Preserve exact Salesforce errors for debugging

Related MCP server: Salesforce MCP Server

πŸš€ Installation

To use with Desktop APP, such as Claude Desktop, Cline, Cursor, and so on, add the MCP server config below.

On macOS / Linux systems:

{
  "mcp.servers": {
    "salesforce": {
      "command": "npx",
      "args": [
        "-y",
        "@jjar/salesforce-mcp-server"
      ],
      "env": {
        "SF_USERNAME": "your-username@company.com",
        "SF_PASSWORD": "your-password",
        "SF_SECURITY_TOKEN": "",
        "SF_LOGIN_URL": "https://login.salesforce.com"
      },
      "disabled": false,
      "alwaysAllow": [
        "test-connection",
        "execute-soql",
        "describe-sobject",
        "get-record",
        "get-apex-logs",
        "list-metadata-types"
      ]
    }
  }
}
{
  "mcp.servers": {
    "salesforce": {
      "command": "npx",
      "args": [
        "-y",
        "@jjar/salesforce-mcp-server"
      ],
      "env": {
        "SF_CLIENT_ID": "your-oauth2-client-id",
        "SF_CLIENT_SECRET": "your-oauth2-client-secret",
        "SF_REFRESH_TOKEN": "your-refresh-token",
        "SF_INSTANCE_URL": "https://yourorg.my.salesforce.com"
      },
      "disabled": false,
      "alwaysAllow": [
        "test-connection",
        "execute-soql",
        "describe-sobject",
        "get-record",
        "get-apex-logs",
        "list-metadata-types"
      ]
    }
  }
}

On Windows systems:

{
  "mcp.servers": {
    "salesforce": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@jjar/salesforce-mcp-server"
      ],
      "env": {
        "SF_USERNAME": "your-username@company.com",
        "SF_PASSWORD": "your-password",
        "SF_SECURITY_TOKEN": "",
        "SF_LOGIN_URL": "https://login.salesforce.com"
      },
      "disabled": false,
      "alwaysAllow": [
        "test-connection",
        "execute-soql",
        "describe-sobject",
        "get-record",
        "get-apex-logs",
        "list-metadata-types"
      ]
    }
  }
}
{
  "mcp.servers": {
    "salesforce": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@jjar/salesforce-mcp-server"
      ],
      "env": {
        "SF_CLIENT_ID": "your-oauth2-client-id",
        "SF_CLIENT_SECRET": "your-oauth2-client-secret",
        "SF_REFRESH_TOKEN": "your-refresh-token",
        "SF_INSTANCE_URL": "https://yourorg.my.salesforce.com"
      },
      "disabled": false,
      "alwaysAllow": [
        "test-connection",
        "execute-soql",
        "describe-sobject",
        "get-record",
        "get-apex-logs",
        "list-metadata-types"
      ]
    }
  }
}

Configuration File Locations

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json

  • macOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

  • Linux: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

⚠️ Important: After adding or modifying the MCP server configuration, you must restart VS Code for the changes to take effect.

  • Windows: %USERPROFILE%\.cursor\mcp.json

  • macOS: ~/.cursor/mcp.json

  • Linux: ~/.cursor/mcp.json

Tool Safety Levels

βœ… Safe for Auto-Approval (alwaysAllow)

  • test-connection - Connection validation (read-only)

  • execute-soql - SOQL queries (read-only)

  • describe-sobject - Metadata inspection (read-only)

  • get-record - Single record retrieval (read-only)

  • get-apex-logs - Debug log access (read-only)

  • list-metadata-types - Metadata type discovery (read-only)

⚠️ Requires Manual Approval

  • create-record, update-record, delete-record, upsert-record - Data modification

  • deploy-metadata - Metadata deployment

  • execute-apex, run-apex-tests - Code execution

  • execute-sosl - Search operations (can be resource-intensive)

  • retrieve-metadata - Metadata retrieval (can be large)

Authentication

Username/Password Authentication

  1. Obtain your security token from Salesforce Setup β†’ Personal Information β†’ Reset Security Token (only required if your IP is not trusted)

  2. Set environment variables as shown in the configuration section

  3. Use https://login.salesforce.com for production or https://test.salesforce.com for sandboxes

πŸ’‘ Security Token: Only add the security token if Salesforce requires it for your connection. If not leave SF_SECURITY_TOKEN empty.

OAuth2 Authentication

  1. Create a Connected App in Salesforce Setup

  2. Configure OAuth settings and obtain client credentials

  3. Generate a refresh token using the OAuth2 flow

  4. Set environment variables as shown in the configuration section

πŸ—οΈ Architecture

Core Components

  • Authentication Manager - Dual OAuth2/Username-Password support

  • Connection Manager - Singleton pattern with health monitoring

  • Tool Classes - Organized by functionality (Query, Apex, Data, Metadata)

  • Error Handler - Comprehensive error formatting with context

  • Cache Manager - TTL-based caching for performance optimization

Performance Features

  • Auto-Bulk Switching - Automatically uses Bulk API for large operations

  • Intelligent Caching - SObject metadata cached for 1 hour

  • Connection Reuse - Single connection across all operations

  • Polling Optimization - Efficient monitoring of long-running operations

πŸ§ͺ Testing

# Test individual tools
node tests/test-query-tools.js
node tests/test-data-tools.js
node tests/test-apex-tools.js
node tests/test-metadata-tools.js

🀝 Contributing

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

πŸ‘¨β€πŸ’» Author

JarosΕ‚aw Jaworski

πŸ€– Development Credits

Part of this implementation was developed with assistance from Claude Sonnet 4 using the Cline VS Code extension, demonstrating the power of AI-assisted development in creating comprehensive developer tools.

πŸ“„ License

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

Available Tools

17 tools
check-deploy-statusA

Check the status of a deployment

Inputs: deployId (required).

create-recordB

Create single or multiple records with auto-bulk switching

Inputs: sobjectType (required), recordData (required), options.

delete-recordA

Delete records by ID(s) with auto-bulk switching

Inputs: sobjectType (required), recordIds (required), options.

deploy-bundleC

Deploy a metadata bundle (e.g., LWC) from a directory path

Inputs: bundlePath (required), options.

deploy-metadataC

Deploy metadata components to Salesforce org

Inputs: components (required), options.

describe-sobjectA

Describe SObject metadata with 1-hour caching

Inputs: sobjectType (required), useCache.

execute-apexB

Execute anonymous Apex code with debug log capture

Inputs: apexCode (required), captureDebugLogs.

execute-soqlB

Execute SOQL query with auto-bulk switching for large result sets

Inputs: query (required), useBulk.

execute-soslB

Execute SOSL search with multi-object support

Inputs: searchQuery (required).

get-apex-logsB

Get debug logs with filtering and parsing options

Inputs: limit, userId, startTime, operation.

get-recordB

Retrieve a record by ID with optional field selection

Inputs: sobjectType (required), recordId (required), fields.

list-metadata-typesB

List available metadata types in the org for discovery

Inputs: apiVersion.

retrieve-metadataB

Retrieve metadata components from Salesforce org

Inputs: components (required), options.

run-apex-testsC

Run Apex tests with coverage and detailed results

Inputs: testClasses, testMethods, includeCoverage.

test-connectionA

Test Salesforce connection and return organization info

Inputs: no named parameters.

update-recordB

Update single or multiple records with auto-bulk switching

Inputs: sobjectType (required), recordData (required), options.

upsert-recordB

Upsert records using external ID with auto-bulk switching

Inputs: sobjectType (required), externalIdField (required), recordData (required), options.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 17 tools

    Disambiguation5/5

    Each tool targets a distinct Salesforce operation (record CRUD, queries, metadata, Apex, deployment, connection). Descriptions clearly differentiate between similar tools like deploy-bundle vs deploy-metadata.

    Naming Consistency5/5

    All tool names follow a consistent verb-noun pattern with hyphens (e.g., create-record, execute-soql, deploy-metadata). No mixing of conventions.

    Tool Count5/5

    17 tools cover the core Salesforce development workflow without being excessive. Each tool addresses a specific need and the count is well-proportioned for the domain.

    Completeness5/5

    The tool set covers record CRUD, SOQL/SOSL queries, Apex execution and testing, metadata operations, deployment, and connection verification. No obvious gaps for standard Salesforce development tasks.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Integrates Claude with Salesforce to enable natural language querying, modification, and management of Salesforce records and metadata. It supports comprehensive operations including object/field management, SOSL searches, and Apex code execution.
      2,615 npm
      1
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Integrates Claude with Salesforce for natural language interactions with Salesforce data and metadata, enabling querying, modifying, and managing objects and records.
      20
      20 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to interact with Salesforce orgs through natural language commands, supporting org management, SOQL queries, metadata operations, testing, and more.
      1
      MIT