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 | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sunny980123/Salesforce-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server