Salesforce MCP Server

$uv run python -m app.server
README.md

A TRD-compliant Salesforce CRM integration implemented as an MCP server.

Salesforce MCP Server

A TRD-compliant Salesforce CRM integration implemented as an MCP (Model Context Protocol) server.
It exposes Salesforce Lead operations as safe, deterministic tools for AI agents and workflows.

Features

  • OAuth 2.0 (refresh-token flow)
  • Lead CRUD operations
  • Lead conversion via SOAP
  • Idempotent lead sync
  • Safe handling of disqualified leads
  • Full audit logging (TRD requirement)
  • Windows + PowerShell friendly

Environment Variables

Create a .env file:

SF_CLIENT_ID=your_client_id
SF_CLIENT_SECRET=your_client_secret
SF_REFRESH_TOKEN=your_refresh_token
SF_INSTANCE_URL=https://your-org.my.salesforce.com
SF_TOKEN_URL=https://login.salesforce.com/services/oauth2/token
SF_API_VERSION=v59.0

Run (PowerShell)

uv run python -m app.server

MCP Tools

  • list_leads
  • salesforce_get_lead
  • salesforce_create_lead
  • salesforce_update_lead
  • salesforce_delete_lead
  • salesforce_update_lead_status
  • salesforce_sync_lead

Audit Logging

All tool calls are logged with:

  • tool name
  • inputs (sanitized)
  • result & status
  • timestamp
  • correlation ID

Logs are written to: logs/audit.log

TRD Compliance

  • OAuth refresh token flow
  • Deterministic MCP tools
  • Idempotent operations
  • Safe lead conversion
  • Full audit logging

Tools (7)

list_leadsList Salesforce leads.
salesforce_get_leadGet a specific Salesforce lead.
salesforce_create_leadCreate a new Salesforce lead.
salesforce_update_leadUpdate a Salesforce lead.
salesforce_delete_leadDelete a Salesforce lead.
salesforce_update_lead_statusUpdate status of a Salesforce lead.
salesforce_sync_leadSync Salesforce lead idempotently.

Environment Variables

SF_CLIENT_IDrequiredSalesforce OAuth client ID
SF_CLIENT_SECRETrequiredSalesforce OAuth client secret
SF_REFRESH_TOKENrequiredSalesforce refresh token
SF_INSTANCE_URLrequiredSalesforce instance URL
SF_TOKEN_URLrequiredSalesforce token URL
SF_API_VERSIONrequiredSalesforce API version

Configuration

claude_desktop_config.json
{
  "mcpServers": {
    "salesforce-mcp": {
      "command": "uv",
      "args": ["run", "python", "-m", "app.server"],
      "env": {
        "SF_CLIENT_ID": "your_client_id",
        "SF_CLIENT_SECRET": "your_client_secret",
        "SF_REFRESH_TOKEN": "your_refresh_token",
        "SF_INSTANCE_URL": "https://your-org.my.salesforce.com",
        "SF_TOKEN_URL": "https://login.salesforce.com/services/oauth2/token",
        "SF_API_VERSION": "v59.0"
      }
    }
  }
}

Try it

List all Salesforce leads.
Create a new Salesforce lead for John Doe with email john@example.com.
Get details of Salesforce lead ID 00Q123.
Update Salesforce lead ID 00Q123 status to Qualified.
Sync the lead data for ID 00Q456 idempotently.

Frequently Asked Questions

How do I install Salesforce MCP Server?

Install Salesforce MCP Server by running: uv run python -m app.server

What MCP clients work with Salesforce MCP Server?

Salesforce MCP Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Use Salesforce MCP Server with Conare

Manage MCP servers visually, upload persistent context, and never start from zero with Claude Code & Codex.

Try Free