MCP_Salesforce
Provides tools to search, view, update, and create Salesforce records (accounts, contacts, opportunities, leads) and manage activities like tasks and recent activities.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP_Salesforce search for contacts at Acme Corp"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Salesforce Server
A Model Context Protocol (MCP) server for Salesforce integration, designed for sales, marketing, and C-suite teams to seamlessly search, view, and update Salesforce records through Claude.
Features
Search Functionality: Search across Accounts, Contacts, Opportunities, and Leads
Record Management: View detailed information and update records
Activity Management: Track recent activities and create new tasks
Global Search: Search across all Salesforce records simultaneously
Executive Dashboard: Access key metrics and data for decision-making
Related MCP server: Salesforce MCP Server
Prerequisites
Node.js 18.0.0 or higher
A Salesforce account with API access
Connected App configured in Salesforce (see setup instructions below)
Salesforce Setup
1. Create a Connected App
Log into your Salesforce org
Go to Setup → App Manager
Click New Connected App
Fill in the basic information:
Connected App Name: MCP Salesforce Integration
API Name: MCP_Salesforce_Integration
Contact Email: Your email address
Enable OAuth Settings:
Check Enable OAuth Settings
Callback URL:
https://login.salesforce.com/services/oauth2/successSelected OAuth Scopes: Add these scopes:
Access and manage your data (api)
Perform requests on your behalf at any time (refresh_token, offline_access)
Access your basic information (id, profile, email, address, phone)
Click Save
Wait for the Connected App to be created (may take 2-10 minutes)
2. Get Your Credentials
After creating the Connected App:
Go to Setup → App Manager
Find your Connected App and click View
Copy the Consumer Key (this is your
CLIENT_ID)Copy the Consumer Secret (this is your
CLIENT_SECRET)
3. Get Your Security Token
Go to your personal settings by clicking your profile picture → Settings
In the left sidebar, click Reset My Security Token
Click Reset Security Token
Check your email for the security token
4. Test Your Credentials
You can test your credentials using the Salesforce login:
Username: Your Salesforce username (usually your email)
Password: Your Salesforce password
Security Token: The token you received via email
Installation and Usage
Option 1: Using npx (Recommended)
Configure your Claude Desktop
mcp_settings.jsonfile:
{
"mcpServers": {
"MCP_Salesforce": {
"command": "npx",
"args": ["github:waaljair/MCP_Salesforce"],
"env": {
"SALESFORCE_LOGIN_URL": "https://login.salesforce.com",
"SALESFORCE_CLIENT_ID": "your_consumer_key_here",
"SALESFORCE_CLIENT_SECRET": "your_consumer_secret_here",
"SALESFORCE_USERNAME": "your_salesforce_username",
"SALESFORCE_PASSWORD": "your_salesforce_password",
"SALESFORCE_SECURITY_TOKEN": "your_security_token_here"
}
}
}
}Restart Claude Desktop
Option 2: Local Development
Clone the repository:
git clone https://github.com/waaljair/MCP_Salesforce.git
cd MCP_SalesforceInstall dependencies:
npm installBuild the project:
npm run buildConfigure your environment variables (create a
.envfile):
SALESFORCE_LOGIN_URL=https://login.salesforce.com
SALESFORCE_CLIENT_ID=your_consumer_key_here
SALESFORCE_CLIENT_SECRET=your_consumer_secret_here
SALESFORCE_USERNAME=your_salesforce_username
SALESFORCE_PASSWORD=your_salesforce_password
SALESFORCE_SECURITY_TOKEN=your_security_token_hereConfigure Claude Desktop to use the local server:
{
"mcpServers": {
"MCP_Salesforce": {
"command": "node",
"args": ["/path/to/MCP_Salesforce/dist/index.js"],
"env": {
"SALESFORCE_LOGIN_URL": "https://login.salesforce.com",
"SALESFORCE_CLIENT_ID": "your_consumer_key_here",
"SALESFORCE_CLIENT_SECRET": "your_consumer_secret_here",
"SALESFORCE_USERNAME": "your_salesforce_username",
"SALESFORCE_PASSWORD": "your_salesforce_password",
"SALESFORCE_SECURITY_TOKEN": "your_security_token_here"
}
}
}
}Available Tools
Search Tools
search_accounts- Search for accounts by name, industry, or other criteriasearch_contacts- Search for contacts by name, email, or other criteriasearch_opportunities- Search for opportunities by name, stage, or other criteriasearch_leads- Search for leads by name, company, or other criteriasearch_all_records- Global search across all Salesforce records
Detail Tools
get_account_details- Get detailed information about a specific accountget_contact_details- Get detailed information about a specific contactget_opportunity_details- Get detailed information about a specific opportunity
Update Tools
update_account- Update account informationupdate_contact- Update contact informationupdate_opportunity- Update opportunity information
Create Tools
create_account- Create new Salesforce accountscreate_contact- Create new Salesforce contactscreate_opportunity- Create new Salesforce opportunities
Activity Tools
get_recent_activities- Get recent activities for any recordcreate_task- Create new tasks in Salesforce
Usage Examples
For Sales Teams
"Search for all opportunities in the 'Negotiation' stage"
"Show me details for the Acme Corp account"
"Update the close date for opportunity XYZ to next month"
"Create a follow-up task for contact John Doe"
"Create a new opportunity for the Tech Solutions account"
"Create a new contact for the marketing director at Acme Corp"
For Marketing Teams
"Find all leads from the technology industry"
"Search for contacts at companies with 'Software' in their name"
"Show me recent activities for our key accounts"
"Create a new account for the prospect company we just met"
"Create a new contact for the lead that just signed up"
For C-Suite
"Search for all opportunities over $100,000"
"Find accounts in the financial services industry"
"Show me recent activities across all major accounts"
"Create a new strategic account for our enterprise prospect"
Environment Variables
Variable | Description | Required |
| Salesforce login URL (usually https://login.salesforce.com) | Yes |
| Connected App Consumer Key | Yes |
| Connected App Consumer Secret | Yes |
| Your Salesforce username | Yes |
| Your Salesforce password | Yes |
| Your Salesforce security token | Yes |
Troubleshooting
Common Issues
Authentication Failed
Verify your username and password are correct
Ensure your security token is current (regenerate if needed)
Check that your Connected App is properly configured
Permission Errors
Ensure your user has appropriate permissions for the records you're trying to access
Check that your Connected App has the correct OAuth scopes
Connection Issues
Verify the
SALESFORCE_LOGIN_URLis correctFor sandbox environments, use
https://test.salesforce.com
Getting Help
If you encounter issues:
Check the Claude Desktop logs for error messages
Verify all environment variables are set correctly
Test your Salesforce credentials in the Salesforce web interface
Ensure your Connected App is active and properly configured
Security Considerations
Never commit your Salesforce credentials to version control
Use environment variables for all sensitive configuration
Regularly rotate your security token
Monitor your Connected App usage in Salesforce
Contributing
Fork the repository
Create a feature branch
Make your changes
Submit a pull request
License
MIT License - see LICENSE file for details
Author
Jair Waal
Repository
Available Tools
16 toolscreate_accountC
Create a new Salesforce account
Inputs: name (required), type, phone, website, +9 more.
create_contactB
Create a new Salesforce contact
Inputs: lastName (required), email, phone, title, +9 more.
create_opportunityB
Create a new Salesforce opportunity
Inputs: name (required), accountId (required), closeDate (required), stageName (required), +6 more.
create_taskB
Create a new task in Salesforce
Inputs: subject (required), whoId, whatId, dueDate, +2 more.
get_account_detailsA
Get detailed information about a specific Salesforce account
Inputs: accountId (required).
get_contact_detailsA
Get detailed information about a specific Salesforce contact
Inputs: contactId (required).
get_opportunity_detailsB
Get detailed information about a specific Salesforce opportunity
Inputs: opportunityId (required).
get_recent_activitiesC
Get recent activities (tasks, events, calls) for an account or contact
Inputs: recordId (required), limit.
search_accountsA
Search for Salesforce accounts by name, industry, or other criteria
Inputs: query (required), limit.
search_all_recordsA
Search across all Salesforce records using SOSL (global search)
Inputs: query (required), limit.
search_contactsB
Search for Salesforce contacts by name, email, or other criteria
Inputs: query (required), limit.
search_leadsB
Search for Salesforce leads by name, company, or other criteria
Inputs: query (required), limit.
search_opportunitiesB
Search for Salesforce opportunities by name, stage, or other criteria
Inputs: query (required), limit.
update_accountB
Update a Salesforce account with new information
Inputs: updates (required), accountId (required).
update_contactB
Update a Salesforce contact with new information
Inputs: updates (required), contactId (required).
update_opportunityC
Update a Salesforce opportunity with new information
Inputs: updates (required), opportunityId (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 16 tools
Each tool clearly targets a distinct Salesforce object and action (search, get, update, create). The global search_all_records is distinct from object-specific searches by its SOSL nature. No two tools appear to overlap in purpose.
Tool names follow a consistent verb_noun pattern in snake_case (e.g., search_accounts, create_task). Minor deviations include get_recent_activities lacking the '_details' suffix used by other getters, and search_all_records being a slightly different phrase, but the overall convention is predictable.
Sixteen tools is slightly above the typical 3-15 range but justified for covering multiple CRM objects (Account, Contact, Opportunity, Lead, Task) with search, get, update, and create operations. The count is reasonable and not bloated.
Significant gaps exist: no delete operations for any object, Lead only has search (no get, update, or create), and Task only has create. This leaves agents unable to perform full lifecycle management, which is a notable deficiency for a Salesforce server.
Maintenance
Related MCP Connectors
Solk CRM for Claude: accounts, pipeline, visits, quotes, orders and tickets with your permissions.
Create contacts, move deals, send proposals and invoices, read your inbox, from Claude or ChatGPT.
Outbound sales rails for Claude: accounts, contacts, sequences and replies, sent from your mailbox.
Your SMB workspace in Claude or ChatGPT: tasks, notes, sales and Michèle's memory, via OAuth.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceIntegrates 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 npm1MIT
- AlicenseAqualityDmaintenanceIntegrates Claude with Salesforce for natural language interactions with Salesforce data and metadata, enabling querying, modifying, and managing objects and records.2020 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to interact with Salesforce for querying, modifying, and managing objects and records, with automatic integration setup for external services like WhatsApp, Slack, email, and webhooks.MIT
- AlicenseAqualityBmaintenanceConnects Salesforce CRM with Claude, enabling CRUD operations, SOQL/SOSL queries, metadata extraction, and sandbox management through natural language.14MIT