Salesforce MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PATH | Yes | PATH must include /opt/homebrew/bin so that 'sf' command is found. Example: /opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin | |
| SALESFORCE_READONLY | No | Set to 'true' to block all writes (read-only). Default is unset (false). | |
| SALESFORCE_NO_DELETE | No | Set to 'true' to block delete operations (create/update allowed). Default is unset (false). | |
| SALESFORCE_SF_CLI_USERNAME | Yes | SF CLI에 로그인된 이메일 (예: jay@channel.io) |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| salesforce_queryA | Execute a SOQL (Salesforce Object Query Language) query to retrieve records from Salesforce. SOQL is similar to SQL. Example queries:
Args:
Returns: JSON: { totalSize, done, records[], nextRecordsUrl? } Markdown: Formatted table of results Error: Returns descriptive error if query syntax is invalid or fields don't exist. |
| salesforce_searchA | Search across multiple Salesforce objects using SOSL (Salesforce Object Search Language). Use SOSL when you want to search across multiple object types at once or do full-text search. Example SOSL queries:
Args:
Returns: JSON: { searchRecords: [...] } Markdown: Formatted results grouped by object type |
| salesforce_metadata_queryA | Execute a SOQL query using the Salesforce Tooling API to access metadata objects not available via standard SOQL. Use for: ValidationRule, Flow/FlowVersionView, ApexClass/ApexTrigger, WorkflowRule, FieldDefinition. Examples:
Note: Queries with Metadata or FullName fields must return exactly 1 row (use WHERE Id = '...') |
| salesforce_get_recordA | Retrieve a single Salesforce record by its ID. Args:
Returns: The full record with all requested fields. Examples:
|
| salesforce_create_recordA | Create a new record in Salesforce. Args:
Returns: { id: string, success: boolean } - The new record ID on success. Common required fields:
Examples:
|
| salesforce_update_recordA | Update fields on an existing Salesforce record. Args:
Returns: Confirmation message on success. Notes:
Examples:
|
| salesforce_delete_recordA | Permanently delete a Salesforce record. This action cannot be undone (record goes to Recycle Bin). Args:
Returns: Confirmation message on success. Warning: This operation moves the record to the Recycle Bin. It can be restored within 15 days. |
| salesforce_get_limitsA | Check your Salesforce org's current API usage and remaining limits. Returns: Key limits including:
Use this to monitor API consumption before running large batch operations. |
| salesforce_describe_objectA | Get metadata for a Salesforce object: field names, types, labels, and whether fields are required/editable. Use this to discover what fields are available before writing SOQL queries or creating/updating records. Args:
Returns: Object metadata including:
|
| salesforce_list_objectsA | List all available Salesforce objects (standard and custom) in the org. Use this to discover what objects exist before querying or manipulating data. Args:
Returns: List of objects with their names, labels, and CRUD capabilities. |
| salesforce_deploy_metadataA | Deploy a metadata component (Flow, ApexClass, ValidationRule, etc.) to the Salesforce org via the SF CLI. Use this to create OR update declarative metadata. Salesforce deploy is upsert-style: if 'api_name' already exists in the org, this overwrites it. Typical workflow for creating a new Flow:
Supported metadata types: Flow, ApexClass, ApexTrigger, ValidationRule, PermissionSet, Layout, CustomObject Args:
Blocked entirely when SALESFORCE_READONLY=true (including dry-runs). Requires SALESFORCE_SF_CLI_USERNAME and the Salesforce user to have metadata deploy permissions (e.g. 'Customize Application' or 'Modify Metadata Through Metadata API Functions'). Returns: Deploy status with per-component successes and failures (with error messages). |
| salesforce_retrieve_metadataA | Retrieve a metadata component (Flow, ApexClass, ValidationRule, etc.) from the Salesforce org as XML via SF CLI. Use this to:
Supported metadata types: Flow, ApexClass, ApexTrigger, ValidationRule, PermissionSet, Layout, CustomObject Args:
Requires SALESFORCE_SF_CLI_USERNAME. This tool is read-only — allowed even under SALESFORCE_READONLY. Returns: The raw *-meta.xml content (and .cls/.trigger body for Apex). |
| salesforce_list_sandboxesA | List all sandboxes registered under the production org via Tooling API SandboxInfo. Shows both existing sandboxes and in-progress creations. For status of an in-progress creation, also check SandboxProcess records (use salesforce_metadata_query). Args:
Returns:
Note: This tool must be run against the PRODUCTION org (sandboxes live under prod). |
| salesforce_create_sandboxA | Create a new sandbox via Tooling API SandboxInfo. Requires Manage Sandboxes permission. Creation is asynchronous and can take minutes (Developer) to hours (Full). After creation, a SandboxProcess record tracks progress — use salesforce_list_sandboxes with include_in_progress=true to monitor. Args:
Notes:
Caller must be in owner or deployer allowlist. |
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 14 tools
Each tool has a distinct purpose: CRUD operations are separate from queries, metadata operations are distinct from data operations, and sandbox management tools are unique. No overlapping functionality.
All tools start with 'salesforce_' and follow a verb_noun pattern, though a few (query, search) lack a noun after the verb, but overall the pattern is predictable and consistent.
14 tools cover a well-scoped set of Salesforce operations: CRUD, query, search, metadata, and sandbox management. Not excessive and each tool serves a clear purpose.
The surface covers essential data and metadata operations, including CRUD, query, search, deploy/retrieve metadata, and sandbox management. Minor gaps exist (e.g., bulk operations, reports), but core workflows are complete.