Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.semwalajay83-sem/salesforce-metadata-mcp

NPM · SALESFORCE-METADATA-MCP · SCANNED AUG 3

The only Salesforce MCP with Agentforce, OmniStudio & DevOps Center tools — 222 total.

+22 this week 65 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security83
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known medium-severity CVE affects @hono/node-server 1.19.17, reached via @modelcontextprotocol/sdk > @hono/node-server. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (107 of 111), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability65
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 38003 tokens (~171/item across 222 items; 222 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
  • Stability check failed: the tool surface changed between 2.7.0 and 2.8.7: 0 tool removals, 1 breaking changes, 3 additions. See how to fix → Fail
Tool Coverage98
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 94% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · salesforce-metadata-mcp

# add to Claude Code
claude mcp add semwalajay83-sem-salesforce-metadata-mcp -- npx -y salesforce-metadata-mcp
# add to Codex CLI
codex mcp add semwalajay83-sem-salesforce-metadata-mcp -- npx -y salesforce-metadata-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "semwalajay83-sem-salesforce-metadata-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "salesforce-metadata-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add semwalajay83-sem-salesforce-metadata-mcp --command npx --arg -y --arg salesforce-metadata-mcp
# ~/.hermes/config.yaml
mcp_servers:
  semwalajay83-sem-salesforce-metadata-mcp:
    command: "npx"
    args: ["-y", "salesforce-metadata-mcp"]
// mcp.json
{
  "mcpServers": {
    "semwalajay83-sem-salesforce-metadata-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "salesforce-metadata-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +39
    • Known CVEs: unverified → fail security
    • Stability: unverified → fail security
    • Malware scan: unverified → pass security
    • Schema quality: unverified → excellent functional
    • MCP protocol: unverified → pass functional
    • Dependency health: unverified → partial functional
  • 1 Aug 26 −9
    • Known CVEs: fail → unverified security
    • Dependency health: partial → unverified functional
  • 31 Jul 26 +20
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 +7
    • Provenance: unverified → fail security
    • Install scripts: unverified → pass security
    • Security disclosure: unverified → fail functional
    • Dependency health: partial → unverified functional
    • Maintenance: unverified → pass functional
    • License: unverified → pass functional
    • Licence: MIT functional
  • 29 Jul 26 −16
    • Malware scan: pass → unverified security
    • Security disclosure: fail → unverified functional
    • Dependency health: unverified → partial functional
    • Package version: 2.7.0 → 2.8.0 functional
  • 28 Jul 26 −19
    • Tool coverage: 100 → unverified functional
    • First check of Schema quality: unverified functional
  • 27 Jul 26 43

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-frvp-7c67-39w9 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N yes
Dependencies 107 packages

107 packages in the resolved dependency tree · 107 deprecated · 39 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 222 exposed · ~38,003 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
sf_activate_flexcard ~76

Activates an OmniStudio FlexCard so it is visible on Lightning pages and Experience Cloud sites. Reads the existing FlexCard definition and redeploys it with isActive=true. The card must already exist (created with sf_create_flexcard).

NameTypeReqDescription
cardNamestringyesAPI name of the FlexCard to activate

No output schema declared.

No examples provided.

sf_activate_flow ~93

Activates a specific Flow version (or the latest version) via the Tooling API. Only one version of a flow can be active at a time — activating a new version automatically deactivates the previous active version. Use sf_list_flow_versions to discover available versions before activating.

NameTypeReqDescription
flowApiNamestringyesFlow API name
versionNumberintegerVersion number to activate (defaults to latest)

No output schema declared.

No examples provided.

sf_activate_integration_procedure ~57

Activates an Integration Procedure so it can be invoked from OmniScripts, FlexCards, and APIs. Identified by procedureName + subType.

NameTypeReqDescription
procedureNamestringyes
subTypestringyes

No output schema declared.

No examples provided.

sf_activate_omniscript ~72

Activates an OmniScript so it can be launched from FlexCards, Experience Cloud, or standalone pages. Identified by Type + SubType + Language.

NameTypeReqDescription
languagestring
subTypestringyesOmniScript sub-type
typestringyesOmniScript type

No output schema declared.

No examples provided.

sf_add_picklist_values ~92

Adds new picklist values to an existing Picklist or MultiselectPicklist field without removing existing values. Use when a user wants to add new options to a dropdown.

NameTypeReqDescription
objectFieldFullNamestringyesFull API name of the picklist field, e.g. 'Invoice__c.Status__c'
valuesarrayyesNew picklist values to add (existing values are preserved)

No output schema declared.

No examples provided.

sf_add_to_change_set ~97

Adds one or more metadata components to an existing Outbound Change Set by change set name. Supports all metadata types: CustomObject, CustomField, ApexClass, ApexTrigger, Flow, ValidationRule, PermissionSet, etc. Use after creating a change set to add the metadata you want to deploy.

NameTypeReqDescription
changeSetNamestringyesName of the existing outbound change set
componentsarrayyesComponents to add

No output schema declared.

No examples provided.

sf_assign_layout_to_record_type ~181

Assigns an existing page layout to a specific record type on an object by updating the Profile metadata. Controls which page layout users see when viewing records of a given record type. objectName: the API name of the object recordTypeName: developer name of the record type layoutName: full name of the page layout, e.g. 'Account Layout' profileNames: optional list of profile names to update (defaults to Admin profile)

NameTypeReqDescription
layoutNamestringyesFull name of the page layout, e.g. 'Account Layout'
objectNamestringyesObject API name, e.g. 'Account' or 'Case'
profileNamesarrayProfile names to assign this layout for (optional)
recordTypeNamestringyesDeveloper name of the record type, e.g. 'Enterprise'

No output schema declared.

No examples provided.

sf_assign_presence_status ~124

Grants access to a Presence Status for the specified Profiles and/or Permission Sets. Agents can only select presence statuses that are assigned to their profile or permission set. profiles: list of Profile names (e.g. ["Standard User", "Service Agent"]) permissionSets: list of Permission Set API names Either profiles or permissionSets must be provided (or both).

NameTypeReqDescription
permissionSetsarrayPermission Set API names to grant access
profilesarrayProfile API names to grant access
statusNamestringyesAPI name of the ServicePresenceStatus

No output schema declared.

No examples provided.

sf_assign_queue_member ~118

Adds a user to an existing Queue (GroupMember SObject) by username and queue DeveloperName. The queue must already exist (create via sf_create_queue). Users in queues can be assigned records and receive queue notification emails.

NameTypeReqDescription
queueDeveloperNamestringyesQueue developer name (DeveloperName field on Group), e.g. 'Support_Tier1'
rolesarrayRole API names to add to the queue (adds all users in the role)
usersarrayUsernames to add to the queue

No output schema declared.

No examples provided.

sf_assign_skill_to_agent ~164

Assigns a Skill to a Salesforce user (service agent) with a skill level rating. Creates a ServiceResource for the user if one does not already exist, then creates a ServiceResourceSkill record. skillName: the API name (DeveloperName) of the skill to assign username: the Salesforce username (e.g. [email protected]) or user ID skillLevel: proficiency level from 0 to 10 (default 5) ServiceResource is the Field Service / OmniChannel representation of a user as a workable resource.

NameTypeReqDescription
skillLevelnumberProficiency level 0 (novice) to 10 (expert)
skillNamestringyesSkill DeveloperName
usernamestringyesSalesforce username of the service agent

No output schema declared.

No examples provided.

sf_assign_territory_to_user ~129

Assigns a user to an Enterprise Territory Management territory via the UserTerritory2Association SObject. Users assigned to a territory get visibility into accounts in that territory. username or userId: identify the user territoryName: DeveloperName of the Territory2 to assign roleInTerritory: optional role — 'Salesperson', 'Manager', or 'BusinessUser'

NameTypeReqDescription
roleInTerritorystringUser role within the territory
territoryNamestringyesTerritory API name to assign user to
usernamestringyesSalesforce username to assign

No output schema declared.

No examples provided.

sf_bulk_delete_records ~95

Deletes multiple records by ID asynchronously using Salesforce Bulk API 2.0. Returns a job ID to track status. Use with caution — deleted records go to the Recycle Bin. objectApiName: Salesforce object API name ids: array of Salesforce record IDs to delete

NameTypeReqDescription
idsarrayyesSalesforce record IDs to delete
objectApiNamestringyesObject API name, e.g. 'Lead'

No output schema declared.

No examples provided.

sf_bulk_import_records ~153

Bulk imports records using the Salesforce Bulk API 2.0. Supports insert, upsert, update, and delete operations on large datasets (thousands to millions of records). Provide CSV data with a header row. For upsert, set externalIdField to the field used for matching. Polls until the job completes and returns success/failure counts.

NameTypeReqDescription
externalIdFieldstringExternal ID field for upsert operations, e.g. 'External_Id__c'
objectApiNamestringyesSObject API name, e.g. 'Account'
operationstringyesBulk operation type
recordsarrayyesArray of record objects with field API name to value mappings

No output schema declared.

No examples provided.

sf_bulk_insert_records ~139

Inserts multiple records of the same object type asynchronously using Salesforce Bulk API 2.0. More efficient than individual REST calls for large volumes. Returns a job ID to track status. objectApiName: Salesforce object API name records: array of record objects with field:value pairs externalIdField: if provided, performs an upsert on this external ID field instead of insert

NameTypeReqDescription
externalIdFieldstringExternal ID field for upsert (omit for insert)
objectApiNamestringyesObject API name, e.g. 'Contact'
recordsarrayyesArray of records to insert (field:value pairs)

No output schema declared.

No examples provided.

sf_bulk_update_records ~103

Updates multiple records of the same object type asynchronously using Salesforce Bulk API 2.0. Each record must include its Salesforce Id field. Returns a job ID to track status. objectApiName: Salesforce object API name records: array of records — each must include 'Id' plus fields to update

NameTypeReqDescription
objectApiNamestringyesObject API name, e.g. 'Contact'
recordsarrayyesArray of records with Id field required

No output schema declared.

No examples provided.

sf_check_code_coverage ~107

Retrieves Apex code coverage statistics from the org using the Tooling API. Shows which classes meet or fail the 75% coverage threshold required for deployment. Use after running Apex tests to assess coverage. className: optional filter to show only classes matching this name minCoverage: optional threshold — only return classes below this coverage percentage

NameTypeReqDescription
classNamestringFilter by Apex class name (partial match)
minCoverageintegerOnly show classes below this coverage %

No output schema declared.

No examples provided.

sf_check_deploy_status ~84

Checks the status of an in-progress or recently completed metadata deployment by async job ID. Returns the status (Pending, InProgress, Succeeded, Failed, Canceled), component successes, failures, and test results. Use with the deploy ID returned from sf_deploy_metadata.

NameTypeReqDescription
deployIdstringyesDeploy async job ID returned from sf_deploy_metadata

No output schema declared.

No examples provided.

sf_check_devops_commit_status ~60

Retrieves the commit and deployment status for a DevOps Center work item. Shows recent commits and their deployment outcomes. workItemId: DevOps Center work item ID

NameTypeReqDescription
workItemIdstringyesDevOps Center work item ID

No output schema declared.

No examples provided.

sf_checkout_devops_work_item ~78

Checks out a DevOps Center work item, moving it to 'In Progress' status. This signals that a developer is actively working on the changes for this work item. workItemId: DevOps Center work item ID to check out

NameTypeReqDescription
workItemIdstringyesDevOps Center work item ID to check out

No output schema declared.

No examples provided.

sf_commit_devops_work_item ~84

Commits changes for a DevOps Center work item by creating a commit record associated with the work item. Records the commit message for audit tracking. workItemId: DevOps Center work item ID message: commit message describing the changes

NameTypeReqDescription
messagestringyesCommit message
workItemIdstringyesDevOps Center work item ID

No output schema declared.

No examples provided.

sf_configure_change_data_capture ~96

Enables Change Data Capture (CDC) for the specified Salesforce objects via the Metadata API. CDC publishes change events to the /data/ChangeEvents channel when records are created, updated, deleted, or undeleted. Provide an array of object API names to enable CDC on. Standard and custom objects are supported.

NameTypeReqDescription
entitiesarrayyesObject API names to enable CDC on, e.g. ['Account', 'Contact']

No output schema declared.

No examples provided.

sf_create_agent ~433

Creates an Agentforce Agent (Einstein Copilot) shell in Salesforce. THIS IS STEP 1 OF A 5-STEP SEQUENCE — calling this tool alone produces a non-functional agent shell. You MUST continue calling tools in this exact order without stopping: (0) FIRST create the backing flows (sf_create_flow, flowType=AutoLaunchedFlow, status=Active) and/or Apex classes (sf_create_apex_class with @InvocableMethod) for each capability. (1) THIS TOOL — sf_create_agent. (2) sf_create_agent_action — one call per flow/apex. (3) sf_create_agent_topic — group actions into topics; pass all action API names in the 'actions' array. (4) sf_create_agent_planner — wire topics to the agent. DO NOT report completion to the user until sf_create_agent_planner succeeds. Do not ask the user for confirmation between steps — proceed through all steps autonomously.

NameTypeReqDescription
agentNamestringyesAgent API name — letters and numbers only, NO underscores (Salesforce rejects underscores in Bot developer names). Max 40 chars. e.g. 'SalesAgent', 'SupportBot'. Used in all subsequent calls (sf_crea…
companystringCompany name for the agent's context
descriptionstringAgent description
labelstringyesAgent display label shown to users, e.g. 'Sales Assistant'
personastringAgent persona/role description, e.g. 'A knowledgeable sales expert who helps close deals'. Deployed as the BotVersion <role>.
plannerNamestringAPI name of the GenAiPlannerBundle to attach this agent to. Normally omitted on the first call (the planner does not exist yet) — after sf_create_agent_planner succeeds, call this tool again with the…
tonestringCommunication tone for agent responses

No output schema declared.

No examples provided.

sf_create_agent_action ~433

Creates an Agentforce Action (GenAiFunction) — step 2 of the agent setup sequence. Call this once per capability (once per flow, once per Apex class). IMPORTANT by type: For Flow — the flow must already exist as an Active AutoLaunchedFlow (use sf_create_flow with flowType='AutoLaunchedFlow' and status='Active' first). For ApexClass — the class must already exist AND have @InvocableMethod (use sf_create_apex_class first). The 'reference' is the exact API name of the flow or class. After ALL actions are created, call sf_create_agent_topic (passing all action API names in 'actions' array), then sf_create_agent_planner. Do not stop between steps.

NameTypeReqDescription
actionNamestringyesAction API name. Letters, numbers, underscores. Remember this name — you must pass it in the 'actions' array when calling sf_create_agent_topic.
agentNamestringParent agent API name — optional and informational only, NOT written to the action XML. Safe to omit.
descriptionstringyesWhat this action does — used by the AI to decide when to invoke it
inputsarrayInput parameter mappings
labelstringAction label. Defaults to actionName if omitted.
referencestringyesExact API name of the resource to invoke. For Flow: the flow API name (e.g. 'Get_Account_Details'). For ApexClass: the class name (e.g. 'AccountHelper'). For PromptTemplate: the template API name. Mu…
topicNamestringParent topic API name — optional and informational only, NOT written to the action XML. Safe to omit. You must still pass this action's API name (actionName) in the 'actions' array when calling sf_cr…
typestringyesAction type: 'Flow' (AutoLaunchedFlow only — must be Active), 'ApexClass' (must have @InvocableMethod), 'PromptTemplate', etc.

No output schema declared.

No examples provided.

sf_create_agent_planner ~311

Creates a GenAiPlanner that connects an Agentforce Agent (Bot) to its Topics — STEP 4 (FINAL) of the agent setup sequence. Without this step the agent cannot route ANY request regardless of how many topics and actions were created. Also known as: linking topics to agent, connecting topics, finishing agent setup, wiring topics, registering topics. CRITICAL: topicNames must be the COMPLETE list of all topics — this REPLACES any existing planner, so omitting a topic removes it from the agent. When adding a new topic to an existing agent, include ALL previous topic names plus the new one. Only AFTER this step succeeds should you report completion to the user.

NameTypeReqDescription
actionNamesarrayAction API names to attach directly to the planner rather than through a topic (e.g. a knowledge action). Most agents leave this empty and put actions in topics.
agentNamestringyesAgent API name — must exactly match the agentName used in sf_create_agent (no underscores).
descriptionstringPlanner description. Required by Salesforce — defaults to a generated description if omitted.
labelstringPlanner display label (defaults to agentName)
topicNamesarrayyesCOMPLETE list of topic API names to wire to this agent. WARNING: This REPLACES any existing planner — if you add a new topic to an existing agent, include ALL previous topic names plus the new one. O…

No output schema declared.

No examples provided.

sf_create_agent_topic ~332

Creates a Topic (GenAiPlugin) for an Agentforce Agent — step 3 of the agent setup sequence. Call this AFTER all actions have been created with sf_create_agent_action. CRITICAL: pass ALL action API names in the 'actions' array — omitting it creates a topic with no executable actions and the agent silently does nothing. agentName is informational only (not written to XML) — the actual agent→topic wiring happens in sf_create_agent_planner which you MUST call immediately after this step. Do not stop between steps.

NameTypeReqDescription
actionsarrayCRITICAL: Action API names (from sf_create_agent_action) to link to this topic. If you omit this or pass an empty array, the topic is created with NO executable actions — the agent will silently do n…
agentNamestringyesParent agent API name — informational only, NOT written to the topic XML. The actual agent→topic wiring happens in sf_create_agent_planner (required separate step).
descriptionstringyesWhat this topic covers
instructionsStep-by-step instructions for handling this topic. Pass as a single string or an array of strings (each becomes a separate instruction entry).
labelstringyesTopic label
scopestringyesScope of this topic — what kind of requests it handles
topicNamestringyesTopic API name, e.g. 'OrderManagement'. Letters, numbers, underscores. This is the name you must include in topicNames when calling sf_create_agent_planner.

No output schema declared.

No examples provided.

sf_create_apex_class ~212

Creates and deploys an Apex class to the Salesforce org using the Metadata API. Accepts the full Apex source code including the class declaration. Use for any type of Apex class: service classes, controllers, batch classes, schedulable classes, queueable classes, test utilities, etc. IMPORTANT — If this class will be used as an Agentforce agent action: it MUST contain a public static method annotated with @InvocableMethod. Classes without @InvocableMethod cannot be invoked by agents and will silently fail at runtime. Example minimum structure: public class MyClass { @InvocableMethod(label='Do Thing' description='Does the thing') public static List<String> doThing(List<String> input) { ... } }

NameTypeReqDescription
apiVersionstringAPI version for this class, e.g. '66.0'
classBodystringyesFull Apex class source code including the class declaration
classNamestringyesApex class name, e.g. 'AccountService'

No output schema declared.

No examples provided.

sf_create_apex_email_service ~221

Creates an Apex Email Service that processes inbound emails via an Apex class implementing Messaging.InboundEmailHandler. Useful for creating support cases from emails, parsing email content, or triggering workflows from inbound messages. The Apex class must exist before creating the service.

NameTypeReqDescription
apexClassNamestringyesApex class that implements Messaging.InboundEmailHandler
attachmentOptionstringWhich attachment types to process
authenticationFailureActionstringWhat to do on authentication failure
errorRoutingAddressstringError routing email address
functionExceptionActionstringWhat to do when an exception occurs
functionInactiveActionstringWhat to do when function is inactive
functionNamestringyesEmail service function name
isActivebooleanWhether this email service is active
isAuthenticationRequiredbooleanRequire sender authentication
isErrorRoutingEnabledbooleanRoute errors to an address
overLimitActionstringWhat to do when over API limits

No output schema declared.

No examples provided.

sf_create_apex_test_class ~144

Creates and deploys an Apex Test Class (annotated with @isTest). Provide the full test class source code. Optionally run the tests immediately after deployment. Test classes are required for Salesforce deployments to production (minimum 75% code coverage). Use for unit testing Apex classes, triggers, and business logic.

NameTypeReqDescription
apiVersionstringAPI version for this test class
classBodystringyesFull test class source code including @isTest annotation and class declaration
classNamestringyesTest class name, e.g. 'AccountServiceTest'
runAfterDeploybooleanImmediately run the tests after deploying

No output schema declared.

No examples provided.

sf_create_apex_trigger ~166

Creates and deploys an Apex Trigger on any Salesforce object. Specify the trigger events (before insert, after update, etc.) and the trigger body code. The trigger declaration (trigger Name on Object (events)) is auto-generated — just provide the code that goes inside the trigger body. Deployed via Metadata API SOAP deploy.

NameTypeReqDescription
apiVersionstringAPI version for this trigger
eventsarrayyesTrigger events, e.g. ['before insert', 'before update']
objectNamestringyesObject API name the trigger fires on, e.g. 'Account'
triggerBodystringyesFull trigger body code (the code between the trigger { })
triggerNamestringyesTrigger name, e.g. 'AccountTrigger'

No output schema declared.

No examples provided.

sf_create_approval_process ~301

Creates or updates a Salesforce Approval Process via the Metadata API. Define who can submit, approval steps with approvers, entry criteria, and what happens on approval or rejection.

NameTypeReqDescription
activebooleanActivate immediately (warning: cannot change steps after activation)
allowRecallbooleanAllow submitters to recall approval requests
allowedSubmittersarrayyesWho can submit: [{type:'owner'}] or [{type:'role', submitter:'SalesRep'}]
approvalStepsarrayyesOrdered list of approval steps
descriptionstringDescription of the approval process
emailTemplatestringEmail template for approval notifications, e.g. 'unfiled$public/ApprovalEmail'
entryFilterCriteriaarrayFilter criteria alternative to entryFormula
entryFormulastringFormula records must satisfy to enter this process
finalApprovalLockbooleanLock record after final approval
finalRejectionLockbooleanLock record after final rejection
labelstringyesHuman-readable label, e.g. 'Large Deal Approval Process'
objectNamestringyesObject API name, e.g. 'Opportunity' or 'Leave_Request__c'
processNamestringyesAPI name of the process, e.g. 'Large_Deal_Approval'
recordEditabilitystringWho can edit locked records during approval

No output schema declared.

No examples provided.

sf_create_assignment_rule ~126

Creates an Assignment Rule for Leads or Cases. Assignment rules automatically route new records to the appropriate owner (user or queue) based on matching criteria. Only one rule can be active at a time per object. Rule entries are evaluated top-to-bottom and the first match wins.

NameTypeReqDescription
activebooleanSet as the active assignment rule
labelstringyesDisplay label
objectNamestringyesObject to apply assignment rules to
ruleEntriesarrayyesOrdered list of assignment rule entries
ruleNamestringyesAssignment rule developer name

No output schema declared.

No examples provided.

sf_create_aura_app ~141

Generates an Aura Application bundle scaffold. Returns the .app file content with the specified access level, optional parent app extension (e.g. force:slds for SLDS styling), included components, and body content. Aura Apps are standalone Lightning applications accessible via /c/AppName.app URL.

NameTypeReqDescription
accessstringAccess level
appNamestringyesAura app name (PascalCase)
bodyContentstringBody markup content
descriptionstringDescription
extendsstringParent app to extend, e.g. 'force:slds'
includesarrayComponent names to include

No output schema declared.

No examples provided.

sf_create_aura_component ~194

Generates an Aura (Lightning Component Framework) component scaffold. Returns the complete bundle file contents: .cmp markup, JavaScript controller, CSS stylesheet, design resource, and metadata XML. Specify interfaces the component implements (e.g. force:appHostable for App Builder), attributes with types and defaults, and an optional Apex controller. Use sf_create_lwc for new development — Aura is for legacy migration scenarios.

NameTypeReqDescription
accessLevelstringAccess level
attributesarrayComponent attributes
componentNamestringyesAura component name (PascalCase)
controllerstringApex controller class name
descriptionstringDescription
implementsstringComma-separated interfaces, e.g. 'force:appHostable,flexipage:availableForAllPageTypes'
isExposedbooleanWhether the component is exposed in App Builder

No output schema declared.

No examples provided.

sf_create_aura_event ~108

Generates an Aura Event scaffold (.evt file content). Supports COMPONENT events (propagate up the component hierarchy) and APPLICATION events (broadcast to all subscribed components). Define event attributes with names and types. Components fire events with component.getEvent() and APPLICATION events with $A.get().

NameTypeReqDescription
attributesarrayEvent attributes
descriptionstringDescription
eventNamestringyesAura event name (PascalCase)
eventTypestringyesEvent type

No output schema declared.

No examples provided.

sf_create_auth_provider ~166

Creates an Auth Provider in Salesforce for SSO or social login via the Metadata API. Supports OpenID Connect, Facebook, Google, GitHub, Salesforce, and Custom providers. Provide the consumer key and secret from the external identity provider. Optionally specify an Apex registration handler class for custom user provisioning logic.

NameTypeReqDescription
consumerKeystringyesConsumer key / client ID
consumerSecretstringyesConsumer secret / client secret
customErrorUrlstringCustom error URL
defaultScopesstringDefault OAuth scopes
friendlyNamestringyesDisplay name
providerNamestringyesAuth provider API name
providerTypestringyesProvider type
registrationHandlerstringApex class name for registration handler

No output schema declared.

No examples provided.

sf_create_auto_response_rule ~122

Creates an Auto-Response Rule for Web-to-Lead or Web-to-Case. When a lead or case is created via a web form, this rule automatically sends a confirmation email using the specified template. Rule entries define which template to use based on criteria.

NameTypeReqDescription
activebooleanSet as the active auto-response rule
labelstringyesDisplay label
objectNamestringyesObject for auto-response rules
ruleEntriesarrayyesRule entries
ruleNamestringyesAuto-response rule developer name

No output schema declared.

No examples provided.

sf_create_bot_routing ~216

Configures an Einstein Bot to transfer conversations to a human agent queue when escalation conditions are met. Updates the BotVersion with a Transfer dialog. botName: the Bot API name (DeveloperName) transferToQueueName: the Queue API name to transfer escalated conversations to transferMessage: message shown to the customer during transfer (default: "Connecting you to an agent...") escalationConditions: array of { trigger, action } pairs. Triggers: agentRequested, noResponse, fallback. Actions: TransferToQueue. This tool finds the latest BotVersion for the specified bot and adds the transfer dialog. The bot must already exist (created via Setup or sf_create_agent).

NameTypeReqDescription
botNamestringyesEinstein Bot API name (DeveloperName of the BotVersion parent)
escalationConditionsarrayConditions that trigger transfer to human agent
transferMessagestringMessage shown to customer when transferring to agent
transferToQueueNamestringyesQueue DeveloperName to transfer conversation to

No output schema declared.

No examples provided.

sf_create_business_hours ~133

Creates Business Hours in Salesforce via the Metadata API. Define working hours for each day of the week, specify the time zone, and mark days as active or inactive. Business Hours are used with Entitlement Processes, Escalation Rules, and Holidays to calculate SLA milestones.

NameTypeReqDescription
daysarrayyesBusiness hours for each day
isActivebooleanWhether business hours are active
isDefaultbooleanWhether this is the default business hours
namestringyesBusiness hours name
timeZonestringyesTime zone, e.g. 'America/New_York'

No output schema declared.

No examples provided.

sf_create_business_process ~132

Creates a Business Process for Opportunity (Stage values), Lead (Status values), Case (Status values), or Solution (Status values). Business Processes define which picklist values are available for a given Record Type. Must be created before assigning to a Record Type.

NameTypeReqDescription
descriptionstringDescription
isActivebooleanWhether this process is active
labelstringyesDisplay label
objectNamestringyesObject the business process applies to
processNamestringyesBusiness process developer name
valuesarrayyesStage/status values included in this business process

No output schema declared.

No examples provided.

sf_create_calculation_matrix ~191

Creates a Calculation Matrix for rule-based lookups and calculations. Matrices map input combinations to output values — useful for pricing, eligibility, scoring, and decision tables. inputVariables: list of input variable names (columns used for lookups) outputVariables: list of output variable names (columns returned) rows: array of { inputs: {var: value}, outputs: {var: value} } defining the lookup table Example: a pricing matrix with inputs [ProductType, Region] and outputs [Price, Discount].

NameTypeReqDescription
descriptionstring
inputVariablesarrayyesInput column definitions
labelstringyes
matrixNamestringyesAPI name of the Calculation Matrix
outputVariablesarrayyesOutput column definitions
rowsarrayMatrix rows: array of {inputVarName: value, ..., outputVarName: value}

No output schema declared.

No examples provided.

sf_create_calculation_procedure ~167

Creates a Calculation Procedure that orchestrates multi-step calculations using Calculation Matrices, formulas, and logic steps. steps array — each step has: - name: step identifier - type: MatrixLookup (call a matrix), Formula (expression), Condition (branch), Assignment (set variable) - matrixName: required for MatrixLookup steps - expression: required for Formula/Condition steps - inputMap: maps procedure variables to step inputs - outputMap: maps step outputs back to procedure variables Use Calculation Procedures to build complex pricing engines, eligibility calculators, or multi-factor scoring systems.

NameTypeReqDescription
descriptionstring
labelstringyes
procedureNamestringyesAPI name of the Calculation Procedure
stepsarrayProcedure steps

No output schema declared.

No examples provided.

sf_create_chat_button ~291

Creates a Live Chat button (LiveChatButton) that can be embedded on websites to start chat sessions with agents. routingType: Choice (skills-based) or Queue (queue-based routing) queueName: the Queue to route chats to (for Queue routing) botName: an Einstein Bot to handle chats initially (optional) windowLanguage: display language for the chat window (e.g. "en_US", "fr", "de") inviteRenderer: name of a custom Visualforce page for chat invitations customAgentName: agent display name shown to website visitors optionsHasTimeoutAlert: show alert if no agent available within timeout period After creating, embed the chat button on a site with sf_create_embedded_service.

NameTypeReqDescription
botNamestringBot name for bot-first routing
buttonNamestringyesAPI name / DeveloperName of the chat button
customAgentNamestringAgent display name shown in chat window
descriptionstring
inviteRendererstringCustom invite Visualforce page/LWC component name
labelstringyes
optionsHasTimeoutAlertboolean
queueNamestringQueue DeveloperName for queue-based routing
routingTypestring
windowLanguagestringChat window language code, e.g. 'en', 'fr', 'de'

No output schema declared.

No examples provided.

sf_create_compact_layout ~156

Creates a Compact Layout for a Salesforce object. Compact Layouts define which fields appear in the highlights panel at the top of a record page (up to 10 fields), in Salesforce Mobile, and in related list cards. Use when you want to surface the most important fields at a glance.

NameTypeReqDescription
fieldsarrayyesField API names to show (max 10), e.g. ['Name', 'Status__c', 'Amount']
fullNamestringyesCompact layout developer name
labelstringyesDisplay label
objectNamestringyesObject API name to add the compact layout to
setAsDefaultbooleanSet this compact layout as the default for the object

No output schema declared.

No examples provided.

sf_create_connected_app ~448

Creates a Connected App in Salesforce to enable OAuth authentication for external applications. Connected Apps are required for any external system that wants to connect to Salesforce via OAuth 2.0. Specify callback URLs for the OAuth flow, OAuth scopes (api, web, full, offline_access, etc.), and contact email. Used for web apps, mobile apps, desktop apps, or server-to-server integrations.

NameTypeReqDescription
accessTokenValidityintegerAccess token validity in minutes
callbackUrlsarrayyesOAuth callback URLs, e.g. ['https://myapp.com/oauth/callback']
consumerKeystringCustom consumer key (auto-generated if not specified)
contactEmailstringyesContact email for the app
descriptionstringDescription
enableClientCredentialsFlowbooleanSets isClientCredentialEnabled/isAdminApproved on the deployed ConnectedApp (verified accepted by Metadata API 2026-07-31). NOTE: Salesforce still requires an admin to open Setup → App Manager → Edit…
fullNamestringyesConnected app API name, e.g. 'My_External_App'
labelstringyesDisplay label
refreshTokenValidityintegerRefresh token validity in minutes
scopesarrayyesOAuth scopes to request. Use 'chatbot_api' (deploys as the metadata literal 'Chatbot', verified against a live org 2026-07-31) for any external client calling a Salesforce bot/Agentforce agent — with…
startUrlstringDefault start URL after OAuth

No output schema declared.

No examples provided.

sf_create_connected_app_oauth_policy ~132

Updates the OAuth policies on an existing Connected App in Salesforce via the Metadata API. Configure the refresh token policy (infinite, specific duration, or expire on password change), single logout URL, session timeout, and IP relaxation settings. Use this to tighten or adjust security policies on deployed Connected Apps.

NameTypeReqDescription
connectedAppNamestringyesConnected App API name
ipRelaxationstringIP relaxation policy
refreshTokenPolicystringyesRefresh token policy
sessionTimeoutstringSession timeout value
singleLogoutUrlstringSingle logout URL

No output schema declared.

No examples provided.

sf_create_csp_setting ~145

Creates a Content Security Policy trusted site, allowing LWC components and Visualforce pages to load resources from external URLs. CSP settings are needed when your LWC uses external JavaScript libraries, fonts, images, or APIs. Specify which directives (connect-src, script-src, style-src, img-src, etc.) the URL is trusted for.

NameTypeReqDescription
cspDirectivesarrayyesCSP directives this URL is trusted for
descriptionstringDescription of why this URL is trusted
endpointUrlstringyesTrusted URL for CSP, e.g. 'https://cdn.example.com'
isActivebooleanWhether this setting is active

No output schema declared.

No examples provided.

sf_create_custom_application ~160

Creates a Lightning Application (App) in the Salesforce org via the Metadata API. Supports Standard and Console navigation types. Specify tabs to include, form factor (desktop or mobile), and optional utility bar components. The app appears in the App Launcher after creation.

NameTypeReqDescription
appNamestringyesApplication API name
descriptionstringDescription
formFactorstringForm factor: Large (desktop) or Small (mobile)
isNavAutoTempTabsDisabledbooleanDisable auto-temporary tabs in nav
labelstringyesDisplay label
navTypestringNavigation type
tabsarrayTab API names to include
utilityBararrayUtility bar items

No output schema declared.

No examples provided.

sf_create_custom_button ~165

Creates a custom button or link on a Salesforce object via the Metadata API (WebLink). Supports list buttons, detail page buttons, and mass action buttons. Content can be a URL, JavaScript, or a Visualforce page reference. Specify how the target opens (sidebar, new window, replace current page, etc.).

NameTypeReqDescription
buttonNamestringyesButton API name
buttonTypestringyesButton placement type
contentstringyesURL, JavaScript code, or Visualforce page name
contentSourcestringyesContent source type
labelstringyesDisplay label
objectNamestringyesObject API name, e.g. 'Account'
openTypestringyesHow to open the button target

No output schema declared.

No examples provided.

sf_create_custom_field ~431

Creates a new custom field on an existing Salesforce object. The field API name must end with '__c'. Supports all field types: Text, Number, Picklist, Lookup, etc.

NameTypeReqDescription
defaultValueboolean|stringDefault value for the field. Use true/false for Checkbox fields.
deleteConstraintstringDelete behaviour for Lookup fields: 'Cascade', 'Restrict', or 'SetNull'
descriptionstringOptional description for the field
externalIdbooleanWhether this field is an external ID
fieldNamestringyesAPI name of the field, e.g. 'Status__c'
labelstringyesDisplay label for the field, e.g. 'Status'
lengthintegerMax length. Text/TextArea: 1–255 (default 255). LongTextArea/Html (Text Area Long / Rich Text Area): 256–131072 (default 32768).
objectNamestringyesAPI name of the parent object, e.g. 'Account' or 'Invoice__c'
picklistValuesobjectPicklist configuration. Required for Picklist / MultiselectPicklist types.
precisionintegerTotal digits for Number/Currency/Percent (1–18)
referenceTostringTarget object API name for Lookup/MasterDetail, e.g. 'Account'
relationshipLabelstringLabel for the relationship on the related object
relationshipNamestringAPI name for the relationship (no spaces)
requiredbooleanWhether the field is required on page layouts
scaleintegerDecimal places for Number/Currency/Percent (0–17)
typestringyesSalesforce field type
uniquebooleanWhether values must be unique (Text, Number, Email)
visibleLinesintegerVisible lines. Required for LongTextArea and Html (Text Area Long / Rich Text Area) — default 10. Also used for MultiselectPicklist.

No output schema declared.

No examples provided.

sf_create_custom_label ~153

Creates or updates a Salesforce Custom Label. Custom Labels are text values accessible in Apex, Visualforce, LWC, and Flows, with support for translation. Use for internationalizable text strings, error messages, or UI labels.

NameTypeReqDescription
categoriesstringCategory for grouping labels
fullNamestringyesAPI name of the label, e.g. 'Welcome_Message'
languagestringLanguage code, e.g. 'en_US', 'fr', 'de'
protectedbooleanProtected labels are only accessible by the package that created them
shortDescriptionstringShort description of the label's purpose
valuestringyesThe label text value

No output schema declared.

No examples provided.