Salesforce TypeScript Connector
About
Interact with Salesforce data using SOQL queries, SOSL searches, and CRUD operations via a TypeScript MCP server.
Details
- Author
- steffensbola
- Categories
- Cloud Service, Other, Database, API
Jump to
Setup
Install Salesforce TypeScript Connector in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/steffensbola/salesforce-mcp-ts
Follow the installation instructions in the repository README, then restart your MCP client.
Interact with Salesforce data using SOQL queries, SOSL searches, and CRUD operations via a TypeScript MCP server.
A TypeScript implementation of a Model Context Protocol (MCP) server for Salesforce integration, allowing LLMs to interact with Salesforce data through SOQL queries, SOSL searches, and CRUD operations.
- π Simplified Password Authentication: Secure OAuth 2.0 Resource Owner Password Credentials Flow
- π SOQL & SOSL: Execute queries and searches against Salesforce
- π Metadata Access: Retrieve object fields, labels, and types
- βοΈ CRUD Operations: Create, read, update, and delete records
- π οΈ Tooling API: Execute Tooling API requests
- β‘ Apex REST: Execute Apex REST requests
- π REST API: Make direct REST API calls to Salesforce
- π³ Docker Ready: No hardcoded values, fully configurable via environment variables
- π Token Refresh: Automatic token refresh for long-running sessions
- authenticate_password- Authenticate using username/password with OAuth
- run_soql_query- Execute SOQL queries
- run_sosl_search- Execute SOSL searches
- get_object_fields- Get metadata for Salesforce objects
- get_record- Retrieve specific records by ID
- create_record- Create new records
- update_record- Update existing records
- delete_record- Delete records
- tooling_execute- Execute Tooling API requests
- apex_execute- Execute Apex REST requests
- restful- Make direct REST API calls
- Go to Setup β Apps β App Manager β New Connected App
- Fill in basic information (App Name, API Name, Contact Email)
- Enable OAuth Settings
- Set callback URL:http://localhost:8080/callback(required but not used)
- Select OAuth Scopes:
- Access your basic information (id, profile, email, address, phone)
- Perform requests on your behalf at any time (refresh_token, offline_access)
- Access and manage your data (api)
- Go to Setup β My Personal Information β Reset Security Token
- Check your email for the new security token
# Pull the image docker pull steffensbola/salesforce-mcp-ts:latest # Run with your credentials docker run -p 3000:3000 \ -e SALESFORCE_CLIENT_ID=your_consumer_key \ -e SALESFORCE_CLIENT_SECRET=your_consumer_secret \ -e SALESFORCE_USERNAME=your_username@domain.com \ -e SALESFORCE_PASSWORD=your_password \ -e SALESFORCE_SECURITY_TOKEN=your_security_token \ -e SALESFORCE_SANDBOX=true \ steffensbola/salesforce-mcp-ts:latest
{ "servers": { "salesforce": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "SALESFORCE_CLIENT_ID=your_consumer_key", "-e", "SALESFORCE_CLIENT_SECRET=your_consumer_secret", "-e", "SALESFORCE_USERNAME=your_username@domain.com", "-e", "SALESFORCE_PASSWORD=your_password", "-e", "SALESFORCE_SECURITY_TOKEN=your_token", "-e", "SALESFORCE_SANDBOX=true", "steffensbola/salesforce-mcp-ts:latest" ] } } }
You can also use volumes to mount a config file instead of passing environment variables:
{ "servers": { "salesforce": { "command": "docker", "args": [ "run", "--rm", "-i", "-v", "${workspaceFolder}/.env:/app/.env", "steffensbola/salesforce-mcp-ts:latest" ] } } }
Add to yourclaude_desktop_config.json:
{ "mcpServers": { "salesforce": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "SALESFORCE_CLIENT_ID=your_consumer_key", "-e", "SALESFORCE_CLIENT_SECRET=your_consumer_secret", "-e", "SALESFORCE_USERNAME=your_username@domain.com", "-e", "SALESFORCE_PASSWORD=your_password", "-e", "SALESFORCE_SECURITY_TOKEN=your_token", "-e", "SALESFORCE_SANDBOX=true", "steffensbola/salesforce-mcp-ts:latest" ] } } }
The server requires the following environment variables:
- SALESFORCE_CLIENT_ID- Consumer Key from your Connected App
- SALESFORCE_CLIENT_SECRET- Consumer Secret from your Connected App
- SALESFORCE_USERNAME- Your Salesforce username
- SALESFORCE_PASSWORD- Your Salesforce password
- SALESFORCE_SECURITY_TOKEN- Your Salesforce security token
- SALESFORCE_SANDBOX- Set to"true"for sandbox,"false"for production (default:"false")
Alternative (Direct Token Authentication)
Instead of username/password, you can use:
- SALESFORCE_ACCESS_TOKEN- Direct access token
- SALESFORCE_INSTANCE_URL- Salesforce instance URL (e.g.,https://your-instance.my.salesforce.com)
The server also supports alternative variable names:
- SF_CONSUMER_KEY/SF_CONSUMER_SECRET
- SF_USERNAME/SF_PASSWORD/SF_SECURITY_TOKEN
- Create a.envfile with your environment variables:
SALESFORCE_CLIENT_ID=your_consumer_key SALESFORCE_CLIENT_SECRET=your_consumer_secret SALESFORCE_USERNAME=your_username@domain.com SALESFORCE_PASSWORD=your_password SALESFORCE_SECURITY_TOKEN=your_token SALESFORCE_SANDBOX=true DOCKER_HUB_USERNAME=steffensbola
Once connected, you can use the tools through your MCP client:
Please authenticate with Salesforce using my credentials
Run this SOQL query: SELECT Id, Name, Industry FROM Account WHERE Industry = 'Technology' LIMIT 10
Search for contacts named "John" using SOSL
Get all the fields for the Contact object
Create a new Account with Name "Test Company" and Industry "Technology"
- Verify credentials are correct
- Check Connected App OAuth scopes include "Access and manage your data (api)"
- Ensure security token is current (reset if needed)
- Verify sandbox setting matches your org type
- Ensure both CLIENT_ID and CLIENT_SECRET are provided
- Check that all required environment variables are set
- Verify Docker has access to pull the image
- Check internet connection
- Verify Salesforce service status
- Check firewall settings allow outbound HTTPS connections
For verbose logging, add the debug environment variable:
docker run -e DEBUG=true \ -e SALESFORCE_CLIENT_ID=... \ # ... other variables steffensbola/salesforce-mcp-ts:latest
SeeCONTRIBUTING.mdfor information about:
- Project architecture and development setup
- Running from source code
- Contributing guidelines and pull request process
MIT License - seeLICENSEfile for details.
- Salesforce Documentation
- Model Context Protocol
- Docker Hub Repository
Integrate with Salesforce to perform actions like testing connections and running queries.
Expose Salesforce APIs as tools for AI agents, enabling natural language interaction with Salesforce organizations.
Interact with Salesforce orgs securely and modularly using LLM-driven tools.
A read-only MCP server by CData that allows LLMs to query live Salesforce data. Requires the CData JDBC Driver for Salesforce.
A read-only MCP server for Cvent, enabling LLMs to query live Cvent data using the CData JDBC Driver.
A read-only MCP server for Highrise, enabling LLMs to query live data using the CData JDBC Driver.
Interact with Odoo instances using the XML-RPC API. Requires configuration via environment variables or config files.
A read-only MCP server for querying live data from Outreach.io using the CData JDBC Driver.
Skyvia MCP Endpoint is a no-code gateway that makes your business data accessible to AI assistants in real time.
Interact with the Appwrite API to manage databases, users, storage, and more. Requires configuration via environment variables.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





