# sf_create_connected_app

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.

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

## Facts

- Tool: `sf_create_connected_app`
- 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_connected_app",
    "arguments": {}
  }
}
```

## Why sf_create_connected_app is rated Medium

Creating a Connected App is a reversible write operation that modifies Salesforce metadata/configuration. It does not delete data (not Destructive), does not move money (not Financial), and does not execute arbitrary code (not Execute—though it configures authentication, the tool itself creates configuration, not executes operations).

From the tool's own definition: "Tool description states it 'Creates a Connected App in Salesforce' — a write operation that modifies Salesforce configuration. The description explicitly indicates this creates OAuth integration infrastructure with configurable callback URLs and OAuth scopes."

## Use case

AI agents use sf_create_connected_app 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_connected_app": {
      "limits": [
        {
          "counter": "sf_create_connected_app_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
