salesforce-api-connector-mcp
A Model Context Protocol service providing comprehensive interaction capabilities with the Salesforce platform via its comprehensive RESTful interface, enabling programmatic manipulation of records and execution of complex data retrieval operations. It incorporates robust, secure credential handling mechanisms to guarantee authenticated access to Salesforce assets.
Author

kablewy
Quick Info
Actions
Tags
Salesforce MCP Server Implementation
This package serves as a dedicated Model Context Protocol (MCP) endpoint, engineered to interface with the Salesforce ecosystem utilizing the powerful jsforce library for REST API communication.
Automated Installation via Smithery
Deploy the Salesforce Server component to your Claude Desktop environment seamlessly using Smithery:
bash npx -y @smithery/cli install salesforce-mcp-server --client claude
Core Capabilities
- Execution of structured SOQL (Salesforce Object Query Language) requests.
- Retrieval and introspection of object schema definitions (metadata).
- Full lifecycle management for data entities: Insertion (Create), Modification (Update), and Erasure (Delete).
- Secure management of user authentication tokens and session state.
- Provision of timely, up-to-the-second data synchronization.
Initial Configuration Steps
- Obtain a local copy of the source repository.
- Duplicate the provided
.env.examplefile, renaming it to.env, and populate it with valid Salesforce API access parameters. - Install necessary node dependencies:
npm install - Compile the source code:
npm run build - Initiate the server process:
npm start
Operational Functions
The service exposes the following RPC endpoints for data manipulation:
query
For running custom SOQL retrieval commands against your designated Salesforce tenant:
{ "name": "query", "parameters": { "query": "SELECT Id, Name FROM Account LIMIT 5" } }
describe-object
To ascertain the structural blueprint (fields, types, etc.) of a specified Salesforce entity:
{ "name": "describe-object", "parameters": { "objectName": "Account" } }
create
To provision a brand new record within a specified object type:
{ "name": "create", "parameters": { "objectName": "Contact", "data": { "FirstName": "John", "LastName": "Doe", "Email": "john.doe@example.com" } } }
update
To modify the attributes of an existing record identified by its unique identifier:
{ "name": "update", "parameters": { "objectName": "Contact", "data": { "Id": "003XXXXXXXXXXXXXXX", "Email": "new.email@example.com" } } }
delete
To permanently eliminate a data record identified by its primary key:
{ "name": "delete", "parameters": { "objectName": "Contact", "id": "003XXXXXXXXXXXXXXX" } }
Running Evaluation Suites
The integrated evaluation package utilizes an MCP client to execute scripts located in src/evals/evals.ts against the tool definitions in src/tools.ts. Recompilation between test runs is unnecessary. Environment variables can be injected by prefixing the execution command. Comprehensive documentation for running evaluations is available here.
bash OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/tools.ts
Security Directives
Adherence to these security protocols is mandatory:
- Treat the .env configuration file as highly sensitive; never commit it to version control.
- Leverage Salesforce's native IP filtering capabilities where feasible.
- Establish a regular cadence for updating the security token associated with the integration user.
- Explore and integrate supplemental authentication layers for the MCP intermediary service.
Collaborative Development
We welcome external contributions! Please submit Pull Requests detailing any enhancements or fixes.
Salesforce MCP Server
A Model Context Protocol server implementation for interacting with Salesforce through its REST API using jsforce.
Installing via Smithery
To install Salesforce Server for Claude Desktop automatically via Smithery:
bash npx -y @smithery/cli install salesforce-mcp-server --client claude
Features
- Execute SOQL queries
- Retrieve object metadata
- Create, update, and delete records
- Secure authentication handling
- Real-time data access
Setup
- Clone the repository
- Copy
.env.exampleto.envand fill in your Salesforce credentials - Install dependencies:
npm install - Build:
npm run build - Start:
npm start
Usage
The server exposes several functions:
query
Execute SOQL queries against your Salesforce instance:
{ "name": "query", "parameters": { "query": "SELECT Id, Name FROM Account LIMIT 5" } }
describe-object
Get metadata about a Salesforce object:
{ "name": "describe-object", "parameters": { "objectName": "Account" } }
create
Create a new record:
{ "name": "create", "parameters": { "objectName": "Contact", "data": { "FirstName": "John", "LastName": "Doe", "Email": "john.doe@example.com" } } }
update
Update an existing record:
{ "name": "update", "parameters": { "objectName": "Contact", "data": { "Id": "003XXXXXXXXXXXXXXX", "Email": "new.email@example.com" } } }
delete
Delete a record:
{ "name": "delete", "parameters": { "objectName": "Contact", "id": "003XXXXXXXXXXXXXXX" } }
Security
Make sure to:
- Keep your .env file secure and never commit it
- Use IP restrictions in Salesforce when possible
- Regularly rotate your security token
- Consider implementing additional authentication for the MCP server
Contributing
Contributions are welcome! Please submit PRs with improvements.
License
MIT License
MIT License
Copyright (c) 2024 Kablewy,LLC
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

