simple-salesforce-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SALESFORCE_API_VERSION | No | Salesforce REST API version. Defaults to 62.0. | 62.0 |
| HARRIET_FILE_OUTBOX_DIR | No | If set, downloaded files are streamed to this outbox directory for hosted sandbox delivery. | |
| SALESFORCE_ACCESS_TOKEN | No | Salesforce access token. Used for authentication when the Salesforce CLI auth store is not available. Required if not using CLI auth store. | |
| SALESFORCE_DOWNLOAD_DIR | No | Directory to save downloaded files when not using hosted sandbox. Defaults to <tmp>/simple-salesforce-mcp. | <tmp>/simple-salesforce-mcp |
| SALESFORCE_INSTANCE_URL | No | Salesforce instance URL, e.g. https://yourorg.my.salesforce.com. Required if not using CLI auth store. | |
| SALESFORCE_MAX_DOWNLOAD_BYTES | No | Maximum allowed download size in bytes. Defaults to 500 MB. | 500 MB |
| HARRIET_FILE_OUTBOX_TTL_SECONDS | No | TTL in seconds for hosted file download links. Defaults to 120. | 120 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| run_soql_queryA | Run a raw SOQL query against the Salesforce org. Read-only — SOQL cannot modify data. Use this as the escape hatch for anything the other tools don't cover: filtering, joins via relationship fields, aggregates, ORDER BY. Always include a LIMIT for exploratory queries. If a field or object name errors, check the exact API names with describe_object. |
| search_recordsA | Full-text search across Salesforce records (name, email, phone, and other searchable fields). Good for 'find the record for X' when you don't know the object or Id. For precise filtering use run_soql_query instead. |
| get_recordA | Fetch a single Salesforce record by Id. |
| create_recordA | Create a new Salesforce record. Use describe_object first to find the required fields and valid picklist values. |
| update_recordA | Update fields on an existing Salesforce record. Requires confirm=true: first present the exact change to the user and get their approval. |
| delete_recordA | Permanently delete a Salesforce record. Requires confirm=true: first present the deletion to the user and get their approval. |
| describe_objectA | Get a Salesforce object's fields: API names, types, required flags, and picklist values. Use before writing SOQL or creating/updating records. |
| list_objectsA | List the org's Salesforce objects (API name and label). System noise (Share/History/Feed/ChangeEvent tables, non-queryable objects) is excluded by default. |
| get_org_infoA | Current Salesforce user, org id/name/type, instance URL, and API version in use. Call this first to establish context. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool targets a distinct operation: SOQL query, full-text search, record CRUD by Id, object metadata, and org context. The descriptions explicitly contrast run_soql_query with search_records, and get_record with run_soql_query, leaving no ambiguity.
All tool names follow a clear verb_noun pattern in snake_case: run_soql_query, search_records, get_record, create_record, update_record, delete_record, describe_object, list_objects, get_org_info. The naming is perfectly uniform and predictable.
Nine tools is a well-scoped size for a Salesforce MCP server, covering query, search, CRUD, schema introspection, and org context. Every tool has a clear purpose with no redundant or filler tools.
The set provides complete CRUD lifecycle coverage (create, get, update, delete), plus two read/search mechanisms, object metadata discovery, and org context. It covers the full range of common Salesforce interactions an agent would need, with no glaring dead ends.