← Back to directory
S

Salesforce MCP Server

Community
Integrate Claude with Salesforce for natural language data and metadata management
Category
Other
Stars
★ 165 Very popular
Transport
stdio (local process)
Runtime
Node.js 20+ · Docker
Credentials
API key / credential required
License
MIT
Last commit
Tools
15
48FMRS · D

This server is feature-rich and supports a wide range of Salesforce operations, but requires careful configuration of authentication and environment. It is a community-maintained project, not official, and is suitable for developers to use for natural language interaction with Salesforce, but caution is needed regarding security and compatibility.

Strongest · Documentation 15/20 Weakest · Security and permissions 4/20

Reliability
8/20
Security and permissions
4/20
Maintenance
7/20
Documentation
15/20
Setup experience
14/20
Why each score
Reliability 8/20
Based only on the supplied README and repo metadata: the tool set is coherent and invocation is documented (Node 20+/npx), including a known bun incompatibility with a workaround. However, no source code, CI workflow, committed tests, or MCP manifest was available to verify the initialize/tool-list handshake or actual tool behavior. Edge cases and error handling are only inferred from the README, so I deducted from the 10 anchor because execution evidence is absent.
Security and permissions 4/20
No real secrets or malware indicators found; credentials are passed via environment variables and examples use placeholders only. However, the default tool set exposes salesforce_dml_records (including delete/update/upsert) and salesforce_execute_anonymous (arbitrary Apex execution), with no confirmation, dry-run, or read-only mode described in the README. This matches the red line for irreversible delete/remote-command defaults without confirmation, capping security at 4. Least-privilege scoping is also not documented.
Maintenance 7/20
The repository is not archived, has an MIT license, and displays an OpenSSF Scorecard badge. However, the supplied material contains no release history, commit frequency, dependency updates, issue triage evidence, or security advisory channel; 14 open issues alone do not demonstrate maintenance quality. I gave a modest score for the license and non-archived status and deducted for missing evidence.
Documentation 15/20
The README is layered and usable: npm/Claude Desktop/Docker setup, four auth flows with env keys and JSON examples, a full tool catalog with example prompts, known limitations (bun, API version), and development/build commands. Deductions: no parameter-level schemas, no troubleshooting/rate-limit/cost notes, and the README is untrusted evidence that cannot be cross-checked against source, so full marks are not justified.
Setup experience 14/20
Setup is well documented: Node 20+ requirement, global npm, manual claude_desktop_config.json examples for CLI, user/password, OAuth client-credentials and access-token flows, plus Docker build/run commands and platform caveats. Steps are concrete and copy-pasteable. Static calibration caps setup at 15 without verifiable execution evidence (real CI/tests); no runnable test output or manifest was available, so I scored 14.

Static review · not runListed 2026-08-07

Read the FMRS scoring method →

Fit and risk

What it can accessRuns commands or codeUses the networkChanges third-party account dataConnects to a database

Best for

  • Developers and admins who want to interact with Salesforce using natural language.
  • Teams needing to bridge Claude with Salesforce for data operations or metadata management.
  • Enterprise environments that can run Node.js and support multiple authentication methods.

Not for

  • Does not support bun runtime; must use Node.js.
  • Not suitable for scenarios requiring a GUI or non-command-line interaction.
  • If security is critical, ensure proper authentication configuration to avoid using outdated default API versions.

Required permissions

  • Requires Salesforce account credentials: username/password + security token, OAuth client credentials, or access token.
  • Needs appropriate Salesforce permissions to perform read/write operations, such as creating objects, fields, Apex code, etc.
  • For Salesforce CLI authentication, a CLI-authenticated environment is required.

Risks and side effects

  • Misconfiguration could lead to data corruption or accidental modifications, e.g., when using DML tools.
  • If the API version is too old, new standard objects may not be accessible, limiting functionality.
  • Using direct access tokens may pose security risks if tokens are leaked.
  • Docker containers cannot use the CLI's OAuth login flow, which may cause authentication failures.

Setup

Before you start

Runtime:Node.js 20+ · Docker

SALESFORCE_CONNECTION_TYPE required Auth method: User_Password, OAuth_2.0_Client_Credentials, Salesforce_CLI, or Access_Token.
SALESFORCE_PASSWORD optionalsecret Salesforce login password; only needed for User_Password auth.
SALESFORCE_TOKEN optionalsecret Security token, resettable from Salesforce Settings; only needed for User_Password auth.
SALESFORCE_CLIENT_SECRET optionalsecret Connected App Client Secret; only needed for OAuth 2.0 Client Credentials flow.
SALESFORCE_ACCESS_TOKEN optionalsecret Access token provisioned by an external system; only needed for Access_Token auth.
Other optional settings (4)
SALESFORCE_USERNAME optional Salesforce login username; only needed for User_Password auth.
SALESFORCE_INSTANCE_URL optional Salesforce instance URL; optional for User_Password (defaults to https://login.salesforce.com), required for OAuth and Access_Token.
SALESFORCE_CLIENT_ID optional Connected App Client ID; only needed for OAuth 2.0 Client Credentials flow.
SALESFORCE_API_VERSION optional Optional API version pin (e.g. "62.0") for newer standard objects.
  1. Ensure Node.js 20+ (bun is not supported).
  2. Install globally via npm: npm install -g @tsmztech/mcp-server-salesforce.
  3. Configure claude_desktop_config.json with the appropriate environment variables for your chosen authentication method (username/password, OAuth, CLI, or access token).
  4. Alternatively, use Docker: clone the repo, build the image, run the container, and configure the MCP client.
claude_desktop_config.json
{"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"}}}}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "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"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add salesforce -e SALESFORCE_CONNECTION_TYPE=User_Password -e SALESFORCE_USERNAME=your_username -e SALESFORCE_PASSWORD=your_password -e SALESFORCE_TOKEN=your_security_token -e SALESFORCE_INSTANCE_URL=org_url -- npx -y @tsmztech/mcp-server-salesforce

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

The client's tool list should show the 15 tools including salesforce_search_objects; asking "Find all objects related to Accounts" and getting a real object list back proves the connection works.

Troubleshooting

  1. Ensure the server runs with Node.js, not bun, to avoid HTTP transport hanging.
  2. Check environment variables are correctly set, especially `SALESFORCE_INSTANCE_URL` which is required for OAuth.
  3. If encountering 'sObject type not supported' errors, set the `SALESFORCE_API_VERSION` environment variable, e.g., `62.0`.
  4. For Docker, ensure using environment variable authentication rather than CLI login.
  5. If using username/password authentication, confirm the security token is correct.

Things to try

Once connected, you can ask your AI assistant things like:

  • Find all objects related to Accounts
  • Count opportunities by stage
  • Add a Rating picklist field to Account and grant access to the Sales User and Marketing User profiles
  • Enable debug logs for [email protected] and retrieve recent logs

Tools 15

salesforce_search_objects read-only
Search for standard and custom objects by partial name matches.
salesforce_describe_object read-only
Get detailed object schema information including field definitions, relationships, and picklist values.
salesforce_query_records read-only
Query records with support for parent-child relationships and complex WHERE conditions.
salesforce_aggregate_query read-only
Execute aggregate queries with GROUP BY, supporting COUNT, SUM, AVG, MIN, MAX, and HAVING clauses.
salesforce_dml_records writes
Perform data operations: insert, update, delete, and upsert using external IDs.
salesforce_manage_object writes
Create and modify custom objects, including updating object properties and sharing settings.
salesforce_manage_field writes
Manage object fields: add custom fields, modify field properties, and create relationships, with automatic Field Level Security for System Administrator.
salesforce_manage_field_permissions writes
Manage Field Level Security (Field Permissions) by granting or revoking access for profiles, and bulk updating permissions.
Show 7 more tools
salesforce_search_all read-only
Search across multiple objects using SOSL, supporting multiple objects and field snippets.
salesforce_read_apex read-only
Read Apex classes: get full source code, list classes by name pattern, and view metadata, with wildcard support.
salesforce_write_apex writes
Create and update Apex classes, including specifying API versions.
salesforce_read_apex_trigger read-only
Read Apex triggers: get full source code, list triggers by name pattern, and view metadata, with wildcard support.
salesforce_write_apex_trigger writes
Create and update Apex triggers, including specifying API versions and event operations.
salesforce_execute_anonymous writes
Execute anonymous Apex code without creating a permanent class, with debug logs and results.
salesforce_manage_debug_logs writes
Manage debug logs: enable, disable, retrieve logs, and configure log levels (NONE to FINEST).

Use cases

Create and modify custom objects, fields, and field-level security using natural language.
Query and aggregate Salesforce records, including cross-object searches and complex filtering.
Manage Apex classes and triggers, including reading, creating, and updating.
Execute anonymous Apex code for data operations or batch processing.
Enable and retrieve debug logs for troubleshooting.

Supported clients

Claude Desktop

Listed from the project's documentation, not tested by this site.

Overview

This is an MCP (Model Context Protocol) server implementation that integrates Claude with Salesforce, enabling natural language interactions with your Salesforce data and metadata. It supports object and field management, smart object search, detailed schema information, flexible data queries, data manipulation, cross-object search, Apex code management, and intuitive error handling. The server supports multiple authentication methods including username/password, OAuth 2.0 client credentials flow, Salesforce CLI, and direct access token, and can be run in Docker containers.

Similar servers

Telegram MCP server powered by Telethon to let MCP clients read chats, manage groups, and send/modify messages, media, contacts, and settings.

★ 1.8k · Tools 76 Compare with this →

Source revision 83ac9b9e6058 Data synced 2026-10-12 Read the FMRS scoring method