development
location
documentation
public
salesforce
oauth
What is A Model Context Protocol (MCP) server that provides seamless integration with Salesforce using OAuth authentication.?
This server enables AI assistants like Claude to interact with any Salesforce organization through a secure, generic interface. It features seamless authentication, zero manual setup, OAuth-only authentication, universal Salesforce integration, smart installation learning, dynamic schema discovery, secure token storage, cross-platform home directory storage, full CRUD operations, schema inspection, context-aware suggestions, comprehensive backup system, time machine feature, and multi-format file support.
Documentation
MCP Salesforce Server
A Model Context Protocol (MCP) server that provides seamless integration with Salesforce using OAuth authentication. This server enables AI assistants like Claude to interact with any Salesforce organization through a secure, generic interface.
β¨ Features
π― Seamless Authentication - Claude automatically detects when authentication is needed and handles it transparently
π Zero Manual Setup - No need to run terminal commands or manual OAuth flows
Callback URL: http://localhost:8080/callback (will be auto-generated)
Selected OAuth Scopes:
Manage user data via APIs (api)
Perform requests at any time (refresh_token, offline_access)
After saving, copy the Consumer Key and Consumer Secret
Credential Configuration
Configure your credentials using the salesforce_setup tool when you first use the application:
Interactive Setup: Claude will prompt you for your Salesforce credentials
Client ID: Your Salesforce Connected App Consumer Key
Client Secret: Your Salesforce Connected App Consumer Secret
Instance URL: Your Salesforce organization URL (e.g., https://mycompany.salesforce.com)
The tool will validate your input and store credentials securely in ~/.mcp-salesforce.json with restricted permissions (600).
π File Locations:
Credentials: ~/.mcp-salesforce.json (contains OAuth tokens and credentials)
Cache: ~/.mcp-salesforce-cache/ (contains learned Salesforce schema and context)
Cross-Platform: Works on Windows, macOS, and Linux
Example interaction:
Claude: I need to set up your Salesforce credentials first. Please use the salesforce_setup tool with your credentials.
You: Use the salesforce_setup tool with clientId: "3MVG9...", clientSecret: "1234567890...", instanceUrl: "https://mycompany.salesforce.com"
Claude: β Salesforce credentials configured successfully! You can now use other Salesforce tools.
Claude Desktop Integration## π― NPX Configuration (Recommended)
Add this to your Claude Desktop MCP configuration (~/Library/Application Support/Claude/claude_desktop_config.json):
Here's a step-by-step walkthrough of the MCP Salesforce Server in action, showing a real-world use case of verifying and updating company address information:
Step 1: Address Verification Request
Claude checking if the Aionda GmbH account in Salesforce has the correct address by comparing it with their current website address
Step 2: Address Comparison Results
Claude identifying that the Salesforce address is outdated, showing detailed comparison between the current Salesforce data and the actual address from the company website
Step 3: Automated Address Update
Claude successfully updating the Salesforce account with the correct current address, showing exactly which fields were changed
Step 4: Verification in Salesforce
The updated account record in Salesforce showing the corrected address information is now accurate and up-to-date
π οΈ Available Tools# salesforce_learn
π§ Learns your complete Salesforce installation - Analyzes all objects, fields and customizations once and stores this information locally for intelligent assistance.
// One-time analysis of the Salesforce installation
{}
// Force complete re-analysis
{
"force_refresh": true,
"detailed_relationships": true
}
Why important?
Claude learns your Custom Objects like "TimeTracking__c", "Project__c", etc.
Recognizes all Custom Fields and their data types
Provides intelligent suggestions based on your specific configuration
Run once, then the AI benefits from it permanently
salesforce_installation_info
π Overview of your learned Salesforce installation - Shows available objects, Custom Fields and customizations.
// Complete overview of the installation
{}
// Details about a specific object
{
"object_name": "TimeTracking__c"
}
// Search for specific fields
{
"field_search": "email",
"show_custom_only": true
}
salesforce_query
Execute SOQL queries against any Salesforce object.
// Example: Get recent contacts
{
"query": "SELECT Id, FirstName, LastName, Email FROM Contact WHERE CreatedDate = THIS_MONTH ORDER BY CreatedDate DESC LIMIT 10"
}
π§ Smart Learning Integration:
Automatically warns when installation has not been learned yet
π§ Smart Context: Considers field permissions and data types from the learned installation.
salesforce_delete
Delete records (β οΈ permanent action).
// Example: Delete a record
{
"sobject": "Contact",
"id": "003XX000008b6cYAQ"
}
salesforce_describe
Get schema information for objects and fields.
// Example: Get Contact object schema
{
"sobject": "Contact"
}
// Or get list of all available objects
{} // Empty parameters
salesforce_backup
πΎ Comprehensive Backup System for Salesforce - Creates complete backups of all data and files with detailed recovery information.
// Create complete backup
{}
// Incremental backup since specific date
{
"backup_type": "incremental",
"since_date": "2025-01-01T00:00:00Z"
}
// Backup with specific options
{
"options": {
"include_files": true,
"include_attachments": true,
"include_documents": true,
"parallel_downloads": 10
}
}
What is backed up:
π All Object Data - All queryable objects with up to 20 fields per object
π Modern Files - ContentVersions with complete metadata
π Legacy Attachments - Classic attachments with correct file extensions
π Documents - Folder-based documents from the legacy system
ποΈ Schema Information - Complete object structures and relationships
π Backup Manifest - Detailed statistics and recovery information
Backup Structure:
salesforce-backup-2025-06-04T16-16-35-660Z/
βββ metadata/ # Schema and object definitions
βββ data/ # JSON data of all objects
βββ files/
β βββ content-versions/ # Modern files
β βββ attachments/ # Legacy attachments
β βββ documents/ # Legacy documents
βββ backup-manifest.json # Backup overview
salesforce_backup_list
π Show Available Backups - Overview of all local backups with statistics and metadata.
// List all available backups
{}
// Details about a specific backup
{
"backup_name": "salesforce-backup-2025-06-04T16-16-35-660Z"
}
salesforce_time_machine
β° Time Travel Through Salesforce Data - Analyzes data changes between different backup time points and enables targeted recovery.
// Compare current state with a backup
{
"backup_timestamp": "2025-06-04T16:16:35.660Z",
"object_name": "Account"
}
// Show all changes since a specific backup
{
"backup_timestamp": "2025-06-04T16:16:35.660Z",
"show_all_changes": true
}
// Detailed analysis for specific records
{
"backup_timestamp": "2025-06-04T16:16:35.660Z",
"object_name": "Contact",
"record_id": "003XX000008b6cYAQ"
}
Time Machine Features:
π Data Comparison - Shows differences between backup and current state
π Change History - Which fields were changed when
ποΈ Deleted Records - Finds records that were deleted since the backup
π Growth Analysis - Statistical evaluation of data development
π― Targeted Recovery - Precise identification of changes
salesforce_auth
Authenticate with Salesforce. Automatically detects if authentication is needed and handles OAuth flow.
// Example: Standard authentication (detects if needed)
{}
// Example: Force re-authentication even if tokens appear valid
{
"force": true
}
β¨ Key Features:
Automatic Detection: Claude automatically suggests this tool when authentication is needed
No Manual Setup: Eliminates the need to run npm run setup manually
Smart Authentication: Only authenticates when necessary, checks existing tokens first
Seamless Integration: Works transparently in the background
This tool is automatically suggested when:
You try to use Salesforce tools without authentication
Your tokens have expired
Authentication errors occur
First-time setup is needed
π§ Smart Learning System# Why is Learning Important?
Every Salesforce installation is unique with:
Custom Objects like "TimeTracking__c", "Project__c", "CustomerCare__c"
Custom Fields on standard objects
Specific Workflows and validation rules
Individual Data Structures
The AI's normal training model only knows standard Salesforce objects. Without knowledge of your specific installation, the AI cannot provide intelligent assistance.
How Does Learning Work?
One-time Analysis: salesforce_learn analyzes your complete installation
Local Documentation: All objects, fields and relationships are stored locally
Intelligent Support: Claude can then make precise suggestions and answer complex questions
Example Workflow:
You: "Are there any time tracking entries for July 2025?"
Without Learning:
β Claude: "I don't know any object called 'TimeTracking'"
With Learning:
β Claude: "I'm checking the 'TimeTracking__c' object for entries from July 2025..."
Automatically executes the correct SOQL query
When Should You Use Learning?
During initial setup - Once after installation
After major changes - When new Custom Objects are added
When having problems - When Claude doesn't find objects or fields
What is Learned?
All SObjects (Standard and Custom)
All Fields with data types and permissions
Relationships between objects
Picklist Values and validation rules
Required Fields for better validation
π‘ Learning runs only once and then makes all further interactions much more intelligent!
π‘ Usage Examples# π First Steps After Installation
Authentication: Claude automatically detects when authentication is needed
Start Learning:
You: "Learn my Salesforce installation"
Claude: Automatically uses the salesforce_learn tool
Explore Installation:
You: "Show me an overview of my Salesforce installation"
Claude: Uses salesforce_installation_info for a summary
π Intelligent Queries with Learned Installation
You: "Show me all projects from this year"
Claude: Automatically recognizes your "Project__c" Custom Object and creates:
SELECT Id, Name, StartDate__c, Status__c FROM Project__c WHERE CALENDAR_YEAR(CreatedDate) = 2025
You: "Are there any time tracking entries for July 2025?"
Claude: Finds your "TimeTracking__c" object and queries:
SELECT Id, Name, Month__c, Hours__c FROM TimeTracking__c WHERE Month__c = 'July 2025'
Query Examples
- - Get all accounts in the technology industry
SELECT Id, Name, Industry, Website FROM Account WHERE Industry = 'Technology'
- - Find contacts created this week
SELECT Id, Name, Email, CreatedDate FROM Contact WHERE CreatedDate = THIS_WEEK
- - Get opportunities closing this quarter
SELECT Id, Name, Amount, CloseDate FROM Opportunity WHERE CloseDate = THIS_QUARTER
Working with Custom Objects
The server automatically discovers custom objects:
π§ Error Analysis: "What was different before the problem?"
π Data Quality: Monitoring data integrity
π¨ Change Management: Control over critical changes
π‘ Business Intelligence: Trend analysis over time
π― Recommended Backup Workflow
1. Initial Setup:
You: "Learn my Salesforce installation"
β Claude analyzes your complete org
2. Regular Backups:
You: "Create a backup"
β Claude backs up all data and files
3. Monitoring:
You: "Show me all available backups"
β Claude lists backup history
4. Analysis:
You: "What has changed since the last backup?"
β Claude uses Time Machine for comparison
π‘ Pro Tip: Combine Learning + Backup + Time Machine for maximum Salesforce control!
π Security
Token Storage: Refresh tokens stored securely in cache/salesforce-tokens.json with restricted file permissions (600)
No Plaintext Secrets: Access tokens kept in memory only
Automatic Refresh: Tokens refreshed automatically before expiration
Secure Cleanup: Tokens removed from memory after use
Input Validation: All inputs validated and sanitized
Migration: File-based token storage with 600 permissions for secure credential management
π§ͺ Testing
npm test
# Test authentication
npm run setup -- --test
# Validate configuration
npm run setup -- --validate
π Troubleshooting# Authentication Issues
π― Automatic Authentication: Claude automatically detects authentication issues and suggests the salesforce_auth tool. No manual troubleshooting needed!
Common Scenarios:
First-time use: Claude will automatically suggest authentication when you first try to use Salesforce tools
Token expiration: When tokens expire, Claude detects this and prompts for re-authentication
Invalid credentials: Clear error messages guide you to fix configuration issues
Session expired: Automatic detection with friendly prompts to re-authenticate
Token Security
π Secure Token Storage: Authentication tokens are stored securely in the local file system with strict permissions.
Security Features:
File Permissions: Token files are created with 0600 permissions (readable/writable only by owner)
Location: Tokens stored in cache/salesforce-tokens.json (excluded from git)
Automatic Security: Permission verification and automatic fixing if needed
No Network Exposure: Tokens never leave your local machine
File-based Security: Secure token storage with strict file permissions for credential protection
Security Verification:
ls -la cache/salesforce-tokens.json\n\n# Should show: -rw------- (600 permissions)
# Run security test
node test-token-security.js
What this means:
Other users on your system cannot read your Salesforce tokens
Only your user account has access to the authentication data
Prevents unauthorized access to your Salesforce organization
Complies with security best practices for credential storage
Quick Fix in Claude Desktop
If you get authentication errors, simply tell Claude:
Authenticate with Salesforce
Or Claude will automatically suggest: Use the salesforce_auth tool to authenticate with Salesforce
β¨ No more manual terminal setup! Everything happens seamlessly through Claude Desktop.
Connection Issues
"Cannot connect to Salesforce": Verify your Instance URL
"Insufficient permissions": Check user permissions in Salesforce
"CORS errors": Ensure Connected App callback URL is correct
Common SOQL Errors
Field not found: Use API names, not field labels
Object not found: Check spelling and API name of objects
Syntax errors: Ensure proper SOQL syntax with single quotes