salesforce-mcp
by uoparaji
README.md
# Salesforce MCP Server
A [Model Context Protocol](https://modelcontextprotocol.io/) server that connects AI assistants to Salesforce orgs. Enables querying, searching, creating, updating, and managing Salesforce data through natural language via any MCP-compatible client.
## Setup
### Prerequisites
- Node.js 18+
- A Salesforce org with API access
### Installation
```bash
npm install
```
### Configuration
Copy the example env file and fill in your Salesforce credentials:
```bash
cp .env.example .env
```
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `SF_USERNAME` | Yes | — | Salesforce username |
| `SF_PASSWORD` | Yes | — | Salesforce password |
| `SF_SECURITY_TOKEN` | No | `""` | Security token (appended to password) |
| `SF_LOGIN_URL` | No | `https://login.salesforce.com` | Login URL (use `https://test.salesforce.com` for sandboxes) |
### Build & Run
```bash
npm run build
npm start
```
## MCP Client Configuration
Add to your MCP client config (e.g. Claude Desktop `claude_desktop_config.json`):
```json
{
"mcpServers": {
"salesforce": {
"command": "node",
"args": ["/absolute/path/to/salesforce_mcp/dist/index.js"],
"env": {
"SF_USERNAME": "your_username",
"SF_PASSWORD": "your_password",
"SF_SECURITY_TOKEN": "your_token",
"SF_LOGIN_URL": "https://login.salesforce.com"
}
}
}
}
```
## Available Tools
### Query & Search
- **salesforce_query** — Execute a SOQL query (first batch, up to 2000 records)
- **salesforce_query_all** — SOQL query with automatic pagination (configurable max records)
- **salesforce_query_more** — Fetch next batch using `nextRecordsUrl`
- **salesforce_search** — Execute a SOSL search
### Object Metadata
- **salesforce_describe_object** — Get fields, relationships, and record types for an sObject
- **salesforce_list_objects** — List all sObjects in the org
### CRUD Operations
- **salesforce_get_record** — Get a record by ID
- **salesforce_create_record** — Create a new record
- **salesforce_update_record** — Update an existing record
- **salesforce_delete_record** — Delete a record by ID
### Reports & Dashboards
- **salesforce_list_reports** — List all reports
- **salesforce_run_report** — Execute a report by ID
- **salesforce_describe_report** — Get report metadata (columns, filters, groupings)
- **salesforce_list_dashboards** — List all dashboards
- **salesforce_get_dashboard** — Get dashboard component data and status
### Tooling API
- **salesforce_tooling_query** — Query Apex classes, triggers, flows, validation rules, etc.
- **salesforce_get_metadata_component** — Retrieve full source of a metadata component
- **salesforce_describe_tooling_object** — Get fields for a Tooling API sObject
### Apex Execution
- **salesforce_execute_apex** — Run anonymous Apex code
### Org Info & REST
- **salesforce_get_org_limits** — View API call limits, storage usage, etc.
- **salesforce_get_org_info** — Org edition, instance, API version, user info
- **salesforce_rest_api** — Generic REST API call for any endpoint
## License
MIT
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues