Salesforce MCP Server for Heroku
A Model Context Protocol (MCP) server that enables AI agents to interact with Salesforce CRM data.
Features
- SOQL Queries - Execute any SOQL query against your Salesforce org
- Object Metadata - Discover fields and relationships for any object
- Record Management - Create, update, and delete records
- Heroku Native - Designed for Heroku deployment with MCP process support
Available Tools
| Tool | Description |
|---|---|
query | Execute SOQL queries |
describe_object | Get object metadata (fields, types, relationships) |
create | Create new records |
update | Update existing records |
delete | Delete records |
Deployment
One-Click Deploy
Click the "Deploy to Heroku" button above, then configure your Salesforce credentials.
Manual Deploy
git clone https://github.com/dsouza-anush/mcp-salesforce
cd mcp-salesforce
heroku create my-salesforce-mcp
git push heroku main
Configure Credentials
heroku config:set SF_USERNAME=your-username@example.com
heroku config:set SF_PASSWORD=your-password
heroku config:set SF_SECURITY_TOKEN=your-security-token
heroku config:set SF_LOGIN_URL=https://login.salesforce.com
For sandbox orgs, use https://test.salesforce.com as the login URL.
Register with Heroku AI
After deployment, attach your Heroku AI model:
heroku addons:attach your-main-app::INFERENCE -a my-salesforce-mcp
The mcp-salesforce process is now available via /v1/agents/heroku.
Usage Example
from openai import OpenAI
client = OpenAI(
base_url=os.getenv("INFERENCE_URL") + "/v1",
api_key=os.getenv("INFERENCE_KEY")
)
response = client.chat.completions.create(
model=os.getenv("INFERENCE_MODEL_ID"),
messages=[
{"role": "user", "content": "Find all opportunities closing this quarter"}
],
extra_body={
"heroku": {
"mcp_servers": ["mcp-salesforce"]
}
}
)
Environment Variables
| Variable | Description | Required |
|---|---|---|
SF_LOGIN_URL | Salesforce login URL | No (defaults to production) |
SF_USERNAME | Salesforce username | Yes |
SF_PASSWORD | Salesforce password | Yes |
SF_SECURITY_TOKEN | Security token (if required) | No |
API_KEY | API key for web endpoint | No |
License
MIT