← Salesforce MCP Server

Salesforce MCP Server 1.6.6

npm · @advanced-communities/salesforce-mcp-server · current release

41
Tools
1
Resources
4
Templates
5
Prompts

Observation

Observed 2026-08-14T06:04:03.077Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.

Server capabilities
{
  "logging": {},
  "tools": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  },
  "completions": {},
  "prompts": {
    "listChanged": true
  }
}

Tools 41

ToolCategoryAnnotationsRisk
apex_get_logFetch the specified log or given number of most recent logs from the org.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Username or alias of the target org. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "logId": {
          "description": "ID of the specific log to display. Execute the apex_get_logs tool before to get the ids.",
          "type": "string"
        },
        "recentLogsNumber": {
          "description": "Number of the most recent logs to display.",
          "type": "number"
        }
      }
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
Read only · Non-destructive
apex_log_listFetch the list of apex debug logs returning the logs with their IDs.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Username or alias of the target org. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        }
      }
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
Read only · Non-destructive
assign_permission_setAssign a permission set to one or more org users. To specify an alias for the --target-org or --on-behalf-of flags, use the CLI username alias, such as the one you set with the 'alias set' command. Don't use the value of the Alias field of the User Salesforce object for the org user. To assign multiple permission sets, specify multiple names in the permissionSetNames array. Enclose names that contain spaces in the array elements. The same syntax applies to onBehalfOf array for specifying multiple users.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Username or alias of the target org. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "permissionSetNames": {
          "minItems": 1,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Permission set names to assign"
        },
        "onBehalfOf": {
          "description": "Username or alias to assign the permission set to. If not specified, assigns to the original admin user.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "permissionSetNames"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
assign_permission_set_licenseAssign a permission set license to one or more org users. To specify an alias for the --target-org or --on-behalf-of flags, use the CLI username alias, such as the one you set with the 'alias set' command. Don't use the value of the Alias field of the User Salesforce object for the org user. To assign multiple permission set licenses, specify multiple names in the licenseNames array. Enclose names that contain spaces in the array elements. The same syntax applies to onBehalfOf array for specifying multiple users.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Username or alias of the target org. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "licenseNames": {
          "minItems": 1,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Permission set license names to assign"
        },
        "onBehalfOf": {
          "description": "Username or alias to assign the permission set license to. If not specified, assigns to the original admin user.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "licenseNames"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
clear_default_orgClear the default target org from the Salesforce CLI configuration. After clearing, all tools will require an explicit targetOrg parameter until a new default is set.
Input schema
{
  "type": "object",
  "properties": {}
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": true,
  "openWorldHint": true
}
Writes · Destructive
create_recordCreate a new record in a Salesforce org using the REST API. Returns the ID of the created record on success. Input must be a JSON object with keys: sObject (string), recordJson (string), and optionally targetOrg (string).
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Username or alias of the target org. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "sObject": {
          "type": "string",
          "description": "API name of the Salesforce object to create a record for (e.g., 'Account', 'Contact', 'CustomObject__c'). Execute the sobject_list tool first to get the correct API name of the SOjbect."
        },
        "recordJson": {
          "type": "string",
          "description": "JSON string containing the field values for the new record. Example: '{\"Name\": \"Acme Corp\", \"Type\": \"Customer\"}'. Execute the sobject_describe tool first to get the correct field API names and relationships."
        }
      },
      "required": [
        "sObject",
        "recordJson"
      ]
    }
  }
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
delete_recordDelete a record from a Salesforce org using the REST API. Permanently removes the specified record. Input must be a JSON object with keys: sObject (string), recordId (string), and optionally targetOrg (string).
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Username or alias of the target org. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "sObject": {
          "type": "string",
          "description": "API name of the Salesforce object (e.g., 'Account', 'Contact', 'CustomObject__c'). Execute the sobject_list tool first to get the correct API name of the SObject."
        },
        "recordId": {
          "type": "string",
          "description": "Salesforce record ID to delete (15 or 18 character ID)"
        }
      },
      "required": [
        "sObject",
        "recordId"
      ]
    }
  }
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
deploy_startDeploy metadata to Salesforce org with test execution options.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Target org username or alias. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "dryRun": {
          "type": "boolean",
          "description": "Validate only, don't save changes."
        },
        "manifest": {
          "description": "Package.xml manifest path. Excludes --metadata and --source-dir.",
          "type": "string"
        },
        "metadata": {
          "description": "Component names to deploy. Supports wildcards with quotes.",
          "type": "string"
        },
        "metadataDirectory": {
          "description": "Metadata directory or zip file to deploy.",
          "type": "string"
        },
        "singlePackage": {
          "description": "Metadata zip contains single package structure.",
          "type": "boolean"
        },
        "sourceDirectory": {
          "description": "Local source path to deploy - can be a directory OR a specific file path (e.g., 'force-app/main' or 'force-app/main/default/classes/MyClass.cls'). For single file deployment, provide the exact file path. If you specify this flag, don't specify --metadata or --manifest.",
          "type": "string"
        },
        "tests": {
          "description": "Tests for RunSpecifiedTests level. Quote names with spaces. Separate multiple with spaces or repeat flag.",
          "type": "string"
        },
        "testLevel": {
          "description": "Test level: NoTestRun (dev only), RunSpecifiedTests (75% coverage), RunLocalTests (default prod), RunAllTestsInOrg.",
          "type": "string"
        }
      },
      "required": [
        "dryRun"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
display_userDisplay information about a Salesforce user. Output includes the profile name, org ID, access token, instance URL, login URL, and alias if applicable. The displayed alias is local and different from the Alias field of the User sObject record of the new user, which you set in the Setup UI.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Username or alias of the target org. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        }
      }
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
Read only · Non-destructive
execute_anonymous_apexExecute Apex code in a Salesforce Org. This command allows you to run Apex code directly against a specified Salesforce Org. The code is executed in the context of the Org, and the results are returned in JSON format. You can use this command to test Apex code snippets, run batch jobs, or perform other Apex-related tasks. You can review the debug logs of the execution to see the results of the code execution.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Target Salesforce Org Alias to execute the code against. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "code": {
          "type": "string",
          "minLength": 1,
          "description": "Apex code to execute"
        }
      },
      "required": [
        "code"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
generate_classGenerates the Apex *.cls file and associated metadata file. These files must contained in a parent directory called "classes" in your package directory. Either run this command existing directory of this name, or use the --output-dir flag to generate one or point to an existing one.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the generated Apex class. The name can be up to 40 characters and must start with a letter."
        },
        "outputDir": {
          "description": "Directory for saving the created files. The location can be an absolute path or relative to the current working directory. The default is the current directory.",
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
generate_componentGenerate Lightning Web Components (LWC) or Aura components with customizable templates and output directories
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the generated Lightning Component. The name can be up to 40 characters and must start with a letter."
        },
        "template": {
          "description": "Template to use for file creation. Supplied parameter values or default values are filled into a copy of the template. Permissible values are: default, analyticsDashboard, analyticsDashboardWithStep. Default value: default",
          "type": "string"
        },
        "outputDirectory": {
          "description": "Directory for saving the created files. The location can be an absolute path or relative to the current working directory. The default is the current directory. Default value: .",
          "type": "string"
        },
        "type": {
          "description": "Type of the component bundle. Permissible values are: aura, lwc (lightning web component). Default value: aura",
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
generate_frontdoor_urlGenerate an authenticated Salesforce frontdoor URL that allows seamless browser login without re-entering credentials. The URL uses the format: {instanceUrl}/secur/frontdoor.jsp?sid={accessToken}&retURL={retURL}. This is useful for programmatic browser automation tools such as the Playwright MCP and Chrome DevTools MCP that need to open an authenticated Salesforce session.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Username or alias of the target org. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "retURL": {
          "description": "Relative URL to redirect to after login (e.g. '/lightning/page/home'). Defaults to '/'.",
          "type": "string"
        }
      }
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": false,
  "openWorldHint": true
}
Read only · Non-destructive
generate_triggerGenerates the Apex trigger *.trigger file and associated metadata file. These files must be contained in a parent directory called "triggers" in your package directory. Either run this command from an existing directory of this name, or use the --output-dir flag to generate one or point to an existing one. If you don't specify the --sobject flag, the .trigger file contains the generic placeholder SOBJECT; replace it with the Salesforce object you want to generate a trigger for. If you don't specify --event, "before insert" is used.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the generated Apex trigger. The name can be up to 40 characters and must start with a letter."
        },
        "sObjectName": {
          "description": "Salesforce object to generate a trigger on.",
          "type": "string"
        },
        "outputDir": {
          "description": "Directory for saving the created files. The location can be an absolute path or relative to the current working directory. The default is the current directory.",
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
get_apex_code_coverageGet code coverage information for a Salesforce Org. This command allows you to retrieve org-wide coverage percentage or coverage details from a specific test run. Use this to monitor and ensure your code meets the 75% coverage requirement.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Target Salesforce Org Alias to get coverage from. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "coverageType": {
          "default": "org-wide",
          "description": "Type of coverage to retrieve: org-wide (overall org percentage) or from-tests (coverage from a specific test run)",
          "type": "string",
          "enum": [
            "org-wide",
            "from-tests"
          ]
        },
        "testRunId": {
          "description": "Test run ID (required when coverageType is 'from-tests')",
          "type": "string"
        }
      }
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
Read only · Non-destructive
get_apex_test_resultsRetrieve results from a previous asynchronous Apex test run. Use this command with a test run ID to get detailed test results including pass/fail status, error messages, stack traces, and optionally code coverage information.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Target Salesforce Org Alias where the tests were run. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "testRunId": {
          "type": "string",
          "description": "The test run ID returned from a previous asynchronous test execution"
        },
        "codeCoverage": {
          "default": true,
          "description": "Whether to include code coverage information in the results",
          "type": "boolean"
        }
      },
      "required": [
        "testRunId"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Output schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "targetOrg": {
      "type": "string"
    },
    "summary": {
      "type": "object",
      "properties": {
        "outcome": {
          "type": "string"
        },
        "testsRan": {
          "type": "number"
        },
        "orgId": {
          "type": "string"
        },
        "passing": {
          "type": "number"
        },
        "failing": {
          "type": "number"
        },
        "skipped": {
          "type": "number"
        },
        "passRate": {
          "type": "string"
        },
        "failRate": {
          "type": "string"
        },
        "skipRate": {
          "type": "string"
        },
        "testStartTime": {
          "type": "string"
        },
        "testExecutionTimeInMs": {
          "type": "number"
        },
        "testTotalTimeInMs": {
          "type": "number"
        },
        "testSetupTimeInMs": {
          "type": "number"
        },
        "commandTimeInMs": {
          "type": "number"
        },
        "hostname": {
          "type": "string"
        },
        "username": {
          "type": "string"
        },
        "testRunId": {
          "type": "string"
        },
        "userId": {
          "type": "string"
        },
        "testRunCoverage": {
          "type": "string"
        },
        "orgWideCoverage": {
          "type": "string"
        },
        "totalLines": {
          "type": "number"
        },
        "coveredLines": {
          "type": "number"
        }
      },
      "required": [
        "outcome",
        "testsRan",
        "orgId",
        "passing",
        "failing",
        "skipped",
        "passRate",
        "failRate",
        "skipRate",
        "testStartTime",
        "testExecutionTimeInMs",
        "testTotalTimeInMs",
        "commandTimeInMs",
        "hostname",
        "username",
        "testRunId",
        "userId"
      ],
      "additionalProperties": false
    },
    "tests": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "queueItemId": {
            "type": "string"
          },
          "stackTrace": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "asyncApexJobId": {
            "type": "string"
          },
          "methodName": {
            "type": "string"
          },
          "outcome": {
            "type": "string"
          },
          "apexLogId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "apexClass": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "namespacePrefix": {
                "type": "string"
              },
              "fullName": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name",
              "namespacePrefix",
              "fullName"
            ],
            "additionalProperties": false
          },
          "runTime": {
            "type": "number"
          },
          "testTimestamp": {
            "type": "string"
          },
          "fullName": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "queueItemId",
          "stackTrace",
          "message",
          "asyncApexJobId",
          "methodName",
          "outcome",
          "apexLogId",
          "apexClass",
          "runTime",
          "testTimestamp",
          "fullName"
        ],
        "additionalProperties": false
      }
    },
    "codecoverage": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "apexId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "ApexClass",
              "ApexTrigger"
            ]
          },
          "numLinesCovered": {
            "type": "number"
          },
          "numLinesUncovered": {
            "type": "number"
          },
          "percentage": {
            "type": "string"
          },
          "coveredLines": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "uncoveredLines": {
            "type": "array",
            "items": {
              "type": "number"
            }
          }
        },
        "required": [
          "apexId",
          "name",
          "type",
          "numLinesCovered",
          "numLinesUncovered",
          "percentage",
          "coveredLines",
          "uncoveredLines"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "targetOrg",
    "summary",
    "tests"
  ],
  "additionalProperties": false
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": false,
  "openWorldHint": true
}
Read only · Non-destructive
get_default_orgGet the current default target org configured in the Salesforce CLI. This returns the org alias or username that is used as the default when no targetOrg is specified in other tool calls.
Input schema
{
  "type": "object",
  "properties": {}
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
Read only · Non-destructive
get_server_permissionsGet current server permission settings
Input schema
{
  "type": "object",
  "properties": {}
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
Read only · Non-destructive
install_skillInstall the Salesforce MCP Server skill for Claude Code into the current working directory (.claude/skills/salesforce/SKILL.md). The skill provides domain-specific guidance on how to effectively use all 40 Salesforce tools, 5 prompts, and 5 resources together. Once installed, the skill persists across Claude Code sessions in this project and helps Claude choose the right tools, chain them into workflows, and avoid common Salesforce mistakes.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "force": {
          "description": "Overwrite existing skill file if it already exists. Default is false (skip if already installed).",
          "type": "boolean"
        }
      }
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
Writes · Non-destructive
list_code_analyzer_rulesList available code analysis rules with details. Use to determine rules for code-analyzer run command.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "workspace": {
          "description": "Files/folders for rule discovery. Supports glob patterns.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "target": {
          "description": "Specific files/folders to target within workspace. Supports glob patterns. Defaults to all workspace files.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "configFile": {
          "description": "Config file for rule discovery.",
          "type": "string"
        },
        "ruleSelector": {
          "description": "Filter rules by name, tag, category, or engine.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "view": {
          "description": "Display format: 'table' (concise) or 'detail' (full info). Default: 'table'.",
          "type": "string",
          "enum": [
            "detail",
            "table"
          ]
        }
      }
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
Read only · Non-destructive
list_connected_salesforce_orgsList connected Salesforce Orgs. This command retrieves a list of all Salesforce Orgs that are currently connected to the Salesforce CLI. The results are returned in JSON format, providing details about each Org, including its alias, username, and other metadata. Use this command to see which Salesforce Orgs you have access to and can interact with using the Salesforce CLI.
Input schema
{
  "type": "object",
  "properties": {}
}
Output schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "devHubOrgs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string"
          },
          "aliases": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "orgId": {
            "type": "string"
          },
          "instanceUrl": {
            "type": "string"
          },
          "isDevHub": {
            "type": "boolean"
          },
          "apiVersion": {
            "type": "string"
          }
        },
        "required": [
          "username"
        ],
        "additionalProperties": false
      }
    },
    "production": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string"
          },
          "aliases": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "orgId": {
            "type": "string"
          },
          "instanceUrl": {
            "type": "string"
          },
          "isDevHub": {
            "type": "boolean"
          },
          "apiVersion": {
            "type": "string"
          }
        },
        "required": [
          "username"
        ],
        "additionalProperties": false
      }
    },
    "sandboxes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string"
          },
          "aliases": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "orgId": {
            "type": "string"
          },
          "instanceUrl": {
            "type": "string"
          },
          "isDevHub": {
            "type": "boolean"
          },
          "apiVersion": {
            "type": "string"
          }
        },
        "required": [
          "username"
        ],
        "additionalProperties": false
      }
    },
    "scratchOrgs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string"
          },
          "aliases": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "orgId": {
            "type": "string"
          },
          "instanceUrl": {
            "type": "string"
          },
          "isDevHub": {
            "type": "boolean"
          },
          "apiVersion": {
            "type": "string"
          }
        },
        "required": [
          "username"
        ],
        "additionalProperties": false
      }
    },
    "totalOrgs": {
      "type": "number"
    },
    "permissionMessage": {
      "type": "string"
    }
  },
  "required": [
    "devHubOrgs",
    "production",
    "sandboxes",
    "scratchOrgs",
    "totalOrgs"
  ],
  "additionalProperties": false
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
Read only · Non-destructive
list_metadataList the metadata components and properties of a specified type. Use this command to identify individual components in your manifest file or if you want a high-level view of particular metadata types in your org. For example, you can use this command to return a list of names of all the CustomObject or Layout components in your org, then use this information in a retrieve command that returns a subset of these components. The username that you use to connect to the org must have the Modify All Data or Modify Metadata Through Metadata API Functions permission.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Username or alias of the target org. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "metadataType": {
          "type": "string",
          "description": "Metadata type to be retrieved, such as CustomObject; metadata type names are case-sensitive."
        },
        "folder": {
          "description": "Folder associated with the component; required for components that use folders; folder names are case-sensitive. Examples of metadata types that use folders are Dashboard, Document, EmailTemplate, and Report.",
          "type": "string"
        },
        "apiVersion": {
          "description": "API version to use; default is the most recent API version.",
          "type": "string"
        },
        "outputFile": {
          "description": "Pathname of the file in which to write the results.",
          "type": "string"
        }
      },
      "required": [
        "metadataType"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
Read only · Non-destructive
list_metadata_typesDisplay details about the metadata types that are enabled for your org. The information includes Apex classes and triggers, custom objects, custom fields on standard objects, tab sets that define an app, and many other metadata types. Use this information to identify the syntax needed for a <name> element in a manifest file (package.xml). The username that you use to connect to the org must have the Modify All Data or Modify Metadata Through Metadata API Functions permission.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Username or alias of the target org. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "apiVersion": {
          "description": "API version to use; default is the most recent API version.",
          "type": "string"
        },
        "outputFile": {
          "description": "Pathname of the file in which to write the results. Directing the output to a file makes it easier to extract relevant information for your package.xml manifest file.",
          "type": "string"
        }
      }
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
Read only · Non-destructive
login_into_orgAuthenticate and login to a Salesforce org via web browser. This command opens a browser window for OAuth authentication flow, allowing you to securely connect to a Salesforce org. After successful authentication, the org credentials are stored locally by the Salesforce CLI for future use. Use isProduction=true for production/developer orgs (login.salesforce.com) or isProduction=false for sandboxes/scratch orgs (test.salesforce.com). The alias parameter creates a convenient shorthand name for accessing this org in subsequent commands. IMPORTANT: This tool requires both 'alias' and 'isProduction' parameters to be provided before execution - do not proceed until all required parameters are supplied.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "alias": {
          "type": "string",
          "description": "An alias of the org to login"
        },
        "isProduction": {
          "type": "boolean",
          "description": "Indicates whether the org will be logged in via https://login.salesforce.com or https://test.salesforce.com URL."
        }
      },
      "required": [
        "alias",
        "isProduction"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
logoutLog out of a Salesforce org. Use targetOrg to logout of a specific org, or set all to true to logout of all orgs. The logout is performed with --no-prompt flag to avoid confirmation prompts. Be careful! If you log out of a scratch org without having access to its password, you can't access the scratch org again, either through the CLI or the Salesforce UI.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Username or alias of the target org to logout from. If not specified and 'all' is false, the command will fail.",
          "type": "string"
        },
        "all": {
          "description": "Logout from all authenticated orgs including Dev Hubs, sandboxes, DE orgs, and expired, deleted, and unknown-status scratch orgs.",
          "type": "boolean"
        }
      }
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
openOpen your Salesforce org in a browser. To open a specific page, specify the portion of the URL after 'https://mydomain.my.salesforce.com' as the path value. Use sourceFile to open ApexPage, FlexiPage, Flow, or Agent metadata from your local project in the associated Builder.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Username or alias of the target org. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "path": {
          "description": "Navigation URL path to open a specific page (e.g., 'lightning' for Lightning Experience, '/apex/YourPage' for Visualforce).",
          "type": "string"
        },
        "browser": {
          "description": "Browser where the org opens.",
          "type": "string",
          "enum": [
            "chrome",
            "edge",
            "firefox"
          ]
        },
        "privateMode": {
          "description": "Open the org in the default browser using private (incognito) mode.",
          "type": "boolean"
        },
        "sourceFile": {
          "description": "Path to ApexPage, FlexiPage, Flow, or Agent metadata to open in the associated Builder.",
          "type": "string"
        }
      }
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
Read only · Non-destructive
open_recordOpens a Salesforce record in a browser.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Username or alias of the target org. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "recordId": {
          "type": "string",
          "description": "Id of the Salesforce record to open"
        }
      },
      "required": [
        "recordId"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
Read only · Non-destructive
package_installInstall or upgrade a package version in a Salesforce org. Supports both package IDs (04t) and aliases with various configuration options.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Username or alias of the target org. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "packageId": {
          "type": "string",
          "description": "ID (starts with 04t) or alias of the package version to install."
        },
        "wait": {
          "default": 0,
          "description": "Number of minutes to wait for installation status.",
          "type": "number"
        },
        "installationKey": {
          "description": "Installation key for key-protected package (default: null).",
          "type": "string"
        },
        "publishWait": {
          "default": 0,
          "description": "Maximum number of minutes to wait for the Subscriber Package Version ID to become available in the target org before canceling the install request.",
          "type": "number"
        },
        "apexCompile": {
          "default": "all",
          "description": "Compile all Apex in the org and package, or only Apex in the package; unlocked packages only.",
          "type": "string",
          "enum": [
            "all",
            "package"
          ]
        },
        "securityType": {
          "default": "AdminsOnly",
          "description": "Security access type for the installed package.",
          "type": "string",
          "enum": [
            "AllUsers",
            "AdminsOnly"
          ]
        },
        "upgradeType": {
          "default": "Mixed",
          "description": "Upgrade type for the package installation; available only for unlocked packages. DeprecateOnly: Mark all removed components as deprecated. Mixed: Delete all removed components that can be safely deleted and deprecate the other components. Delete: Delete removed components, except for custom objects and custom fields, that don't have dependencies.",
          "type": "string",
          "enum": [
            "DeprecateOnly",
            "Mixed",
            "Delete"
          ]
        },
        "apiVersion": {
          "description": "Override the api version used for api requests made by this command",
          "type": "string"
        }
      },
      "required": [
        "packageId"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
package_uninstallUninstall a second-generation package from the target org. Specify the package ID (starts with 04t) or alias for the package to uninstall.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Username or alias of the target org. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "packageId": {
          "type": "string",
          "description": "ID (starts with 04t) or alias of the package version to uninstall."
        },
        "wait": {
          "default": 0,
          "description": "Number of minutes to wait for uninstall status.",
          "type": "number"
        },
        "apiVersion": {
          "description": "Override the api version used for api requests made by this command",
          "type": "string"
        }
      },
      "required": [
        "packageId"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
query_recordsQuery records from a SINGLE Salesforce object using structured field conditions. Use this for precise queries on ONE object with specific field criteria (e.g., Status = 'Open', Amount > 1000). NOT for text searches across multiple objects - use search_records for that. This executes SOQL queries with SELECT, WHERE, ORDER BY, and LIMIT clauses on a single SObject. The results are returned in JSON format. IMPORTANT: Always execute the `sobject_list` tool first to understand which objects are available in the org, and optionally execute `sobject_describe` for the specific SObject to understand its fields and structure before querying.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Target Salesforce Org to execute the query against. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "sObject": {
          "type": "string",
          "description": "Salesforce SObject to query from"
        },
        "selectClause": {
          "type": "string",
          "description": "SELECT clause content - can include fields, functions (COUNT, SUM, AVG, etc.), expressions, and aliases"
        },
        "where": {
          "description": "Optional WHERE clause for the query",
          "type": "string"
        },
        "limit": {
          "description": "Optional limit for the number of records returned",
          "type": "number"
        },
        "orderBy": {
          "description": "Optional ORDER BY clause for sorting results (e.g., 'Name ASC', 'CreatedDate DESC')",
          "type": "string"
        }
      },
      "required": [
        "sObject",
        "selectClause"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Output schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "targetOrg": {
      "type": "string"
    },
    "records": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    }
  },
  "required": [
    "targetOrg",
    "records"
  ],
  "additionalProperties": false
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
Read only · Non-destructive
query_records_to_fileQuery records from a Salesforce SObject and save to a file. This command allows you to execute a SOQL query against a specified Salesforce SObject in a given Org and save the results to a file. You can specify the SELECT clause (fields, functions like COUNT(), aggregations, etc.), an optional WHERE clause, and save the results in various formats. The results can be saved in CSV format by default, or in other formats if specified. IMPORTANT: Always execute the `sobject_list` tool first to understand which objects are available in the org, and optionally execute `sobject_describe` for the specific SObject to understand its fields and structure before querying.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Target Salesforce Org to execute the query against. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "sObject": {
          "type": "string",
          "description": "Salesforce SObject to query from"
        },
        "selectClause": {
          "type": "string",
          "description": "SELECT clause content - can include fields, functions (COUNT, SUM, AVG, etc.), expressions, and aliases"
        },
        "where": {
          "description": "Optional WHERE clause for the query",
          "type": "string"
        },
        "outputFileName": {
          "description": "Optional output file name to save the results",
          "type": "string"
        },
        "outputFileFormat": {
          "default": "csv",
          "description": "Optional output file format to save the results, default is csv",
          "type": "string",
          "enum": [
            "csv",
            "json"
          ]
        },
        "orderBy": {
          "description": "Optional ORDER BY clause for sorting results (e.g., 'Name ASC', 'CreatedDate DESC')",
          "type": "string"
        }
      },
      "required": [
        "sObject",
        "selectClause"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": false,
  "openWorldHint": true
}
Read only · Non-destructive
run_apex_testsRun Apex tests in a Salesforce Org. This command allows you to execute unit tests with various options including test level, specific classes, suites, and code coverage collection. Tests can be run synchronously or asynchronously. Use this to validate your Apex code and ensure proper test coverage.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Target Salesforce Org Alias to run tests against. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "testLevel": {
          "default": "RunLocalTests",
          "type": "string",
          "enum": [
            "RunLocalTests",
            "RunAllTestsInOrg",
            "RunSpecifiedTests"
          ],
          "description": "Test level - RunLocalTests (all except managed packages), RunAllTestsInOrg (all tests), or RunSpecifiedTests (specific tests only)"
        },
        "classNames": {
          "description": "Apex test class names to run; default is all classes. If you select --class-names, you can't specify --suite-names or --tests. For multiple classes, repeat the flag for each: --class-names Class1 --class-names Class2.",
          "type": "string"
        },
        "testSuites": {
          "description": "Apex test suite names to run. If you select --suite-names, you can't specify --class-names or --tests. For multiple suites, repeat the flag for each: --suite-names Class1 --suite-names Class2.",
          "type": "string"
        },
        "tests": {
          "description": "Apex test class names or IDs and, if applicable, test methods to run; default is all tests. If you specify --tests, you can't specify --class-names or --suite-names. For multiple tests, repeat the flag for each: --tests Test1 --tests Test2.",
          "type": "string"
        },
        "codeCoverage": {
          "default": true,
          "description": "Whether to collect code coverage information",
          "type": "boolean"
        },
        "synchronous": {
          "default": false,
          "description": "Whether to run tests synchronously (wait for completion) or asynchronously",
          "type": "boolean"
        }
      }
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
run_code_analyzerAnalyze code for quality and security issues. Run list_code_analyzer_rules first to select appropriate rules for ruleSelector parameter.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "workspace": {
          "description": "Files/folders to analyze. Supports glob patterns. Multiple values are summed. Defaults to current folder '.'",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "target": {
          "description": "Specific files/folders to target within workspace. Supports glob patterns. Defaults to all workspace files.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "ruleSelector": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Select rules by engine, severity, name, or tag. Use colons to combine (e.g., \"eslint:Security:3\"). Multiple selectors create union. Run with \"all\" to see available values."
        },
        "outputFile": {
          "description": "Save output to file. Format auto-detected from extension or defaults to JSON.",
          "type": "string"
        },
        "severity": {
          "description": "Exit with error on violations at/above this severity. Default: Low",
          "type": "string",
          "enum": [
            "High",
            "Medium",
            "Low"
          ]
        },
        "configFile": {
          "description": "Config file to customize rules/engines. Auto-detects code-analyzer.yml/yaml in current folder. Use 'code-analyzer config' to create.",
          "type": "string"
        }
      },
      "required": [
        "ruleSelector"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
scanner_runScan codebase with security and quality rules. Defaults to all rules if none specified.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "target": {
          "description": "Source location. Supports glob patterns. Default: '.'",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "category": {
          "description": "Rule categories to run.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "engine": {
          "description": "Engines to run.",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "eslint",
              "eslint-lwc",
              "eslint-typescript",
              "pmd",
              "pmd-appexchange",
              "retire-js",
              "sfge",
              "cpd"
            ]
          }
        },
        "eslintConfig": {
          "description": "ESLint config file. Cannot use with tsConfig.",
          "type": "string"
        },
        "pmdConfig": {
          "description": "PMD rule XML file.",
          "type": "string"
        },
        "tsConfig": {
          "description": "TypeScript config file. Cannot use with eslintConfig.",
          "type": "string"
        },
        "format": {
          "description": "Output format. Default: table",
          "type": "string",
          "enum": [
            "csv",
            "html",
            "json",
            "junit",
            "sarif",
            "table",
            "xml"
          ]
        },
        "outfile": {
          "description": "File to write output to.",
          "type": "string"
        },
        "severityThreshold": {
          "description": "Error on violations at/above this level: 1=high, 2=moderate, 3=low. Auto-enables normalize-severity.",
          "type": "number",
          "minimum": 1,
          "maximum": 3
        },
        "normalizeSeverity": {
          "description": "Include normalized severity (1=high, 2=moderate, 3=low). HTML format shows normalized only.",
          "type": "boolean"
        },
        "projectDir": {
          "description": "Root project directories for Graph Engine context. Must be paths, not globs.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "verbose": {
          "description": "Enable verbose output.",
          "type": "boolean"
        },
        "verboseViolations": {
          "description": "Include Retire-js vulnerability details (CVE, URLs).",
          "type": "boolean"
        }
      }
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
scanner_run_dfaRun Graph Engine for Apex data flow analysis. Detects complex security issues like SOQL/SQL injection.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "target": {
          "description": "Source location. Supports globs or methods with #-syntax. Default: '.'",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "projectDir": {
          "description": "Root project directories for Graph Engine context. Must be paths, not globs.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "category": {
          "description": "Rule categories to run.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "format": {
          "description": "Output format for console.",
          "type": "string",
          "enum": [
            "csv",
            "html",
            "json",
            "junit",
            "sarif",
            "table",
            "xml"
          ]
        },
        "outfile": {
          "description": "File to write output to.",
          "type": "string"
        },
        "severityThreshold": {
          "description": "Error on violations at/above this level: 1=high, 2=moderate, 3=low. Auto-enables normalize-severity.",
          "type": "number",
          "minimum": 1,
          "maximum": 3
        },
        "normalizeSeverity": {
          "description": "Include normalized severity (1=high, 2=moderate, 3=low). HTML format shows normalized only.",
          "type": "boolean"
        },
        "withPilot": {
          "description": "Enable pilot rules.",
          "type": "boolean"
        },
        "verbose": {
          "description": "Enable verbose output.",
          "type": "boolean"
        },
        "ruleThreadCount": {
          "description": "Concurrent DFA evaluation threads. Inherits SFGE_RULE_THREAD_COUNT if set.",
          "type": "number"
        },
        "ruleThreadTimeout": {
          "description": "Entry point evaluation timeout (ms). Inherits SFGE_RULE_THREAD_TIMEOUT if set.",
          "type": "number"
        },
        "ruleDisableWarningViolation": {
          "description": "Disable warnings (e.g., StripInaccessible READ). Inherits SFGE_RULE_DISABLE_WARNING_VIOLATION if set.",
          "type": "boolean"
        },
        "sfgeJvmArgs": {
          "description": "JVM arguments for Graph Engine. Space-separated.",
          "type": "string"
        },
        "pathExpLimit": {
          "description": "Path expansion limit. Use -1 for unlimited. Inherits SFGE_PATH_EXPANSION_LIMIT if set.",
          "type": "number"
        }
      }
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
schema_generate_tabGenerate metadata source files for a new custom tab on a custom object. Custom tabs display custom object data in Salesforce navigation.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "object": {
          "type": "string",
          "description": "API name of the custom object (e.g., MyObject__c)"
        },
        "directory": {
          "type": "string",
          "description": "Path to a 'tabs' directory that will contain the source files"
        },
        "icon": {
          "default": 1,
          "description": "Number from 1 to 100 that specifies the color scheme and icon for the custom tab",
          "type": "number",
          "minimum": 1,
          "maximum": 100
        }
      },
      "required": [
        "object",
        "directory"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true
}
Writes · Destructive
search_recordsSearch for text across multiple Salesforce objects simultaneously. USE THIS TOOL when searching for records that mention, contain, or reference specific text (like company names, keywords, phrases) across different objects. This is the PRIMARY tool for text-based searches across your org - it's much more efficient than running multiple SOQL queries. Perfect for finding all records mentioning a competitor, customer name, or any text across Accounts, Opportunities, Cases, Contacts, etc. SOSL (Salesforce Object Search Language) performs full-text search across all searchable fields.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Username or alias of the target org. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "query": {
          "description": "SOSL query to execute (e.g., \"FIND {Anna Jones} IN Name Fields RETURNING Contact (Name, Phone)\")",
          "type": "string"
        },
        "file": {
          "description": "Path to file that contains the SOSL query",
          "type": "string"
        },
        "resultFormat": {
          "default": "json",
          "description": "Format to display the results. 'csv' writes to disk, 'human' and 'json' display to terminal",
          "type": "string",
          "enum": [
            "human",
            "csv",
            "json"
          ]
        }
      }
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": false,
  "openWorldHint": true
}
Read only · Non-destructive
set_default_orgSet the default target org for the Salesforce CLI. Once set, all tools will use this org by default when no targetOrg is specified. The value persists across sessions.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "type": "string",
          "description": "Username or alias of the org to set as the default target org."
        }
      },
      "required": [
        "targetOrg"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": true,
  "openWorldHint": true
}
Writes · Destructive
sobject_describeDescribe a Salesforce SObject. This command retrieves detailed metadata about a specific Salesforce SObject, including its fields, relationships, and other properties. The results are returned in JSON format, providing a comprehensive view of the SObject's structure. Use this command to understand the schema of a specific SObject, which is especially useful when writing Apex code or SOQL queries that interact with that SObject. Always execute this tool before querying or manipulating records in the SObject to ensure you have the correct field names and types.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Target Salesforce Org Alias to execute the code against. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "sObjectName": {
          "type": "string",
          "description": "Name of the SObject to describe"
        }
      },
      "required": [
        "sObjectName"
      ]
    }
  },
  "required": [
    "input"
  ]
}
Output schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "targetOrg": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "label": {
      "type": "string"
    },
    "keyPrefix": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "custom": {
      "type": "boolean"
    },
    "queryable": {
      "type": "boolean"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "length": {
            "type": "number"
          },
          "nillable": {
            "type": "boolean"
          },
          "custom": {
            "type": "boolean"
          },
          "updateable": {
            "type": "boolean"
          },
          "createable": {
            "type": "boolean"
          },
          "referenceTo": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "relationshipName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "name",
          "label",
          "type",
          "length",
          "nillable",
          "custom",
          "updateable",
          "createable",
          "referenceTo",
          "relationshipName"
        ],
        "additionalProperties": false
      }
    },
    "childRelationships": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "childSObject": {
            "type": "string"
          },
          "field": {
            "type": "string"
          },
          "relationshipName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "childSObject",
          "field",
          "relationshipName"
        ],
        "additionalProperties": false
      }
    },
    "recordTypeInfos": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "recordTypeId": {
            "type": "string"
          },
          "active": {
            "type": "boolean"
          },
          "available": {
            "type": "boolean"
          },
          "defaultRecordTypeMapping": {
            "type": "boolean"
          },
          "developerName": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "recordTypeId",
          "active",
          "available",
          "defaultRecordTypeMapping",
          "developerName"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "targetOrg",
    "name",
    "label",
    "keyPrefix",
    "custom",
    "queryable",
    "fields",
    "childRelationships",
    "recordTypeInfos"
  ],
  "additionalProperties": false
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
Read only · Non-destructive
sobject_listList all standard and custom objects in a Salesforce Org. This command retrieves a list of all standard and custom objects available in the specified Salesforce Org. The results are returned in JSON format, providing details about each object, including its name, label, and other metadata. Use this command to explore the objects in your Salesforce Org and understand their structure and properties, especially if asked to work with specific objects in your Apex code or SOQL queries and you don't know their API names. Always execute this tool before writing Apex code or SOQL queries to ensure you have the correct object names.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Target Salesforce Org Alias to execute the code against. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        }
      }
    }
  },
  "required": [
    "input"
  ]
}
Output schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "targetOrg": {
      "type": "string"
    },
    "sobjects": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "targetOrg",
    "sobjects"
  ],
  "additionalProperties": false
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
Read only · Non-destructive
update_recordUpdate an existing record in a Salesforce org using the REST API. Updates specified fields on the record. Input must be a JSON object with keys: sObject (string), recordId (string), recordJson (string), and optionally targetOrg (string).
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "targetOrg": {
          "description": "Username or alias of the target org. If not provided, uses the default org from SF CLI configuration.",
          "type": "string"
        },
        "sObject": {
          "type": "string",
          "description": "API name of the Salesforce object (e.g., 'Account', 'Contact', 'CustomObject__c'). Execute the sobject_list tool first to get the correct API name of the SObject."
        },
        "recordId": {
          "type": "string",
          "description": "Salesforce record ID to update (15 or 18 character ID)"
        },
        "recordJson": {
          "type": "string",
          "description": "JSON string containing the field values to update. Example: '{\"BillingCity\": \"San Francisco\", \"Phone\": \"(555) 123-4567\"}'. Execute the sobject_describe tool first to get the correct field API names. Only include fields you want to update."
        }
      },
      "required": [
        "sObject",
        "recordId",
        "recordJson"
      ]
    }
  }
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": true,
  "openWorldHint": true
}
Writes · Destructive

Resources 1

Resource templates 4

Prompts 5

Let’s talk about MCP security.

Share your details and our security team will contact you.