https://github.com/lciesielski/mcp-salesforce-example
https://github.com/lciesielski/mcp-salesforce-example
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/lciesielski/mcp-salesforce-example
- Owner: lciesielski
- License: mit
- Created: 2025-03-29T19:55:47.000Z (about 1 month ago)
- Default Branch: master
- Last Pushed: 2025-03-29T23:33:37.000Z (about 1 month ago)
- Last Synced: 2025-03-30T00:24:06.432Z (about 1 month ago)
- Language: JavaScript
- Size: 15.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-mcp-zh - lciesielski/mcp-salesforce
- awesome-mcp-servers - Salesforce MCP Integrator - Integrates with Salesforce via the Model Context Protocol (MCP) to send emails and deploy Apex code (Table of Contents / Workflow Automation)
- awesome-mcp-servers - Salesforce MCP Integrator - Integrates with Salesforce via the Model Context Protocol (MCP) to send emails and deploy Apex code (Table of Contents / Workflow Automation)
README
# Salesforce MCP Sample Integration
This project provides a basic example of integrating with Salesforce using the Model Context Protocol (MCP). It allows interaction with Salesforce features like sending emails and deploying Apex code through MCP tools.
## Prerequisites
* Node.js and npm (or yarn) installed.
* A Salesforce org where you can create a Connected App.## Setup
1. **Install Dependencies:**
```bash
npm install
# or
yarn install
```2. **Configure Salesforce Credentials:**
* You MUST create a `credentials.js` file inside a `utils` folder (`./utils/credentials.js`).
* This file needs to export a function `getSalesforceCredentials()` which returns your Salesforce connection details necessary for JWT Bearer Flow authentication.
* **Important:** Ensure you have a [Connected App configured in Salesforce](https://help.salesforce.com/s/articleView?id=sf.connected_app_create_api_integration.htm&type=5) for JWT authentication, allowing the appropriate scopes and pre-authorizing the relevant user profile.**`utils/credentials.js` Example:**
```javascript
import fs from 'fs';
import path from 'path';
// You might load these from environment variables, a config file, etc.export function getSalesforceCredentials() {
// --- IMPLEMENT YOUR LOGIC HERE to securely load credentials ---
const loginUrl = "YOUR_SALESFORCE_LOGIN_URL"; // e.g., https://login.salesforce.com or https://yourdomain.my.salesforce.com
const username = "YOUR_SALESFORCE_USERNAME";
const clientId = "YOUR_CONNECTED_APP_CONSUMER_KEY";
// Load your private key used to sign the JWT assertion
// Ensure the key is formatted correctly, including BEGIN/END lines.
const privateKey = fs.readFileSync(path.resolve(__dirname, 'path/to/your/server.key'), 'utf8');
// Example: const privateKey = process.env.SF_PRIVATE_KEY;if (!loginUrl || !username || !clientId || !privateKey) {
throw new Error("Missing required Salesforce credentials in utils/credentials.js");
}return {
loginUrl,
username,
clientId,
privateKey
};
}
```3. **Configuration File:**
* The repository includes a sample `claude_desktop_config.json` file that can be used as a template for configuring your MCP server.
* Update the paths and credentials in this file according to your environment setup.## Running the Server
```bash
node server.js
```## Demo
https://github.com/user-attachments/assets/08c8015a-bc57-4c5e-9f3d-4a9d9d310f4c
[Video in higher quality](https://www.youtube.com/watch?v=T883nXqatZ4).