# sf_create_holiday

Creates a Holiday record in Salesforce via the Metadata API. Holidays are used with Business Hours to exclude specific days from SLA calculations. Supports both one-time and recurring holidays (e.g. yearly). Optionally associate the holiday with specific Business Hours.

Agent View of the PolicyLayer registry record for `sf_create_holiday`. HTML page: https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-create-holiday

## Facts

- Tool: `sf_create_holiday`
- Server: Salesforce Metadata Mcp (`salesforce-metadata-mcp`) — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp.md
- Install: `npx -y salesforce-metadata-mcp`
- Homepage: https://github.com/semwalajay83-sem/salesforce-metadata-mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "sf_create_holiday",
    "arguments": {}
  }
}
```

## Why sf_create_holiday is rated Medium

This tool creates new Holiday records in Salesforce metadata. Holiday records are configuration data used to exclude days from SLA calculations in Business Hours. Creating holidays is a reversible write operation—records can be modified or deleted later. While it affects business logic (SLA calculations), it does not execute arbitrary code, delete data irreversibly, or move money.

From the tool's own definition: "Tool name 'sf_create_holiday' and description states it 'Creates a Holiday record in Salesforce via the Metadata API'. The verb 'Creates' indicates data creation, a reversible write operation."

## Use case

AI agents use sf_create_holiday to create or update resources in Salesforce Metadata Mcp, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Salesforce Metadata Mcp environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Salesforce Metadata Mcp:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "sf_create_holiday": {
      "limits": [
        {
          "counter": "sf_create_holiday_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Salesforce Metadata Mcp (212)

- `sf_bulk_delete_records` — Destructive — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-bulk-delete-records.md
- `sf_delete_record` — Destructive — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-delete-record.md
- `sf_delete_scratch_org` — Destructive — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-delete-scratch-org.md
- `sf_activate_omniscript` — Execute — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-activate-omniscript.md
- `sf_create_apex_class` — Execute — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-create-apex-class.md
- `sf_create_apex_test_class` — Execute — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-create-apex-test-class.md
- `sf_create_apex_trigger` — Execute — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-create-apex-trigger.md
- `sf_create_flow` — Execute — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-create-flow.md
- `sf_create_scheduled_job` — Execute — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-create-scheduled-job.md
- `sf_create_scratch_org` — Execute — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-create-scratch-org.md
- `sf_deactivate_flow` — Execute — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-deactivate-flow.md
- `sf_deploy_metadata` — Execute — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-deploy-metadata.md
- `sf_devops_promote_work_item` — Execute — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-devops-promote-work-item.md
- `sf_execute_anonymous_apex` — Execute — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-execute-anonymous-apex.md
- `sf_install_package` — Execute — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-install-package.md
- `sf_promote_devops_work_item` — Execute — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-promote-devops-work-item.md
- `sf_run_apex_tests` — Execute — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-run-apex-tests.md
- `sf_send_email` — Execute — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-send-email.md
- `sf_check_code_coverage` — Read — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-check-code-coverage.md
- `sf_check_deploy_status` — Read — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-check-deploy-status.md
- `sf_check_devops_commit_status` — Read — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-check-devops-commit-status.md
- `sf_detect_devops_merge_conflict` — Read — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-detect-devops-merge-conflict.md
- `sf_explore_slds_blueprints` — Read — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-explore-slds-blueprints.md
- `sf_export_omnistudio_component` — Read — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-export-omnistudio-component.md
- `sf_export_records` — Read — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-export-records.md
- `sf_get_apex_test_results` — Read — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-get-apex-test-results.md
- `sf_get_dataraptor` — Read — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-get-dataraptor.md
- `sf_get_deployment_history` — Read — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-get-deployment-history.md
- `sf_get_event_logs` — Read — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-get-event-logs.md
- `sf_get_field_history` — Read — https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp/sf-get-field-history.md
- …and 182 more: https://policylayer.com/tools/io-github-semwalajay83-sem-salesforce-metadata-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=io-github-semwalajay83-sem-salesforce-metadata-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-github-semwalajay83-sem-salesforce-metadata-mcp
