---
title: "Salesforce Marketing Cloud Engagement MCP server"
description: "Give Claude 271 Salesforce Marketing Cloud Engagement actions through one MCP server. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/salesforce-marketing-cloud-engagement
updated: 2026-10-23
---

Connectors · Email & messaging

# Salesforce Marketing Cloud Engagement MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Salesforce Marketing Cloud Engagement and the rest of your systems. It gives your agent 271 Salesforce Marketing Cloud Engagement actions (130 reads, 103 writes and 38 that wait for a confirmation) and holds the Salesforce Marketing Cloud Engagement credential itself, so the agent never does. It paces Salesforce Marketing Cloud Engagement's limits and records every call.

[Connect Salesforce Marketing Cloud Engagement free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

`claude mcp add --transport http actionlake https://connect.actionlake.com/mcp`

the first call

```
do {
  action: "salesforce_marketing_cloud.assets.list",
  intent: "check which Salesforce Marketing Cloud Engagement account is connected"
}
# List assets · read · 1 upstream call
```

- 271 actions in one signed file
- 130 read look, never change
- 103 write create and update
- 38 wait for a yes destructive, confirmed first

Set up

## Connect Salesforce Marketing Cloud Engagement in three steps.

1. 01
   ### Add actionlake to Claude.
   Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
   `https://connect.actionlake.com/mcp`
2. 02
   ### Connect Salesforce Marketing Cloud Engagement.
   OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in. actionlake stores what you paste write-only, sealed under your tenant's key.
   - `client_id` Client ID of a Marketing Cloud installed package's API Integration component (Setup > Apps > Installed Packages >…
   - `client_secret` Client secret of the same API Integration component
   - `account_id` MID of the business unit to act in (shown under the account name, top right of Marketing Cloud)
   - `tenant_host` Where your Salesforce Marketing Cloud Engagement lives: your tenant host
   ```
   account { op: "connections.requirements", service: "salesforce_marketing_cloud" }
   # free: exactly what to paste, and what is found for you
   ```
3. 03
   ### Make the first call. Check before a write.
   Ask in plain words; Claude picks the action. Before anything changes, `check` validates the call and prices it, for free.
   ```
   do    { action: "salesforce_marketing_cloud.assets.list" }
   # list assets · read · 1 upstream call
   check { action: "salesforce_marketing_cloud.transactional_email.send", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

Salesforce Marketing Cloud Engagement at a glance

**Sign-in**

OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in.

**You provide**

`client_id` `client_secret` `account_id`

**Setup fields**

`tenant_host`

**Limits we pace to**

2,500 calls a minute, per connection

**API covered**

Marketing Cloud Engagement REST API (tenant-specific endpoints, OAuth 2.0 installed packages), at your Salesforce Marketing Cloud Engagement instance's API base URL, which you enter when connecting

**Built from**

Salesforce Marketing Cloud Engagement's documentation, read 23 October 2026[developer.salesforce.com](https://developer.salesforce.com/docs/marketing/marketing-cloud/references/mc_rest_overview) [GitHub](https://github.com/salesforce-marketingcloud/postman) [developer.salesforce.com](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/access-token-s2s.html)

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

108 of 130 reads, for up to 5 minutes; a write clears what it affects

**Shared entities**

2, so ask can line Salesforce Marketing Cloud Engagement up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in Salesforce Marketing Cloud Engagement.

271 actions in 55 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

- **130** read look, never change
- **103** write create and update
- **38** destructive wait for a confirmation

1. ### Journeys
   37
   16 read · 14 write · 7 destructive
   List journeys · Get journey · Create journey · Update journey version
2. ### Automations
   12
   3 read · 5 write · 4 destructive
   List automations · Create automation · Get automation · Run automation once
3. ### Data events
   12
   0 read · 12 write · 0 destructive
   Increment data extension column by data extension ID (asynchronous) · Increment data extension column by data extension key (asynchronous) · Increment data extension column by data extension ID · Increment data extension column by data extension key
4. ### SMS
   11
   4 read · 5 write · 2 destructive
   Send SMS to numbers · Create SMS keyword · Create SMS opt-in message · Queue mobile-originated message
5. ### Transactional email
   11
   5 read · 4 write · 2 destructive
   List Email send definitions · Send transactional Email · Create Email send definition · Get Email send definition
6. ### Transactional SMS
   11
   5 read · 4 write · 2 destructive
   Send transactional SMS · List SMS send definitions · Create SMS send definition · List unsent transactional SMS
7. ### Push messages
   10
   3 read · 6 write · 1 destructive
   Broadcast push message · Create push message · Send push message to contacts · Send push message to list
8. ### Assets
   9
   5 read · 3 write · 1 destructive
   List assets · Get asset · Delete asset · Query assets (advanced)

**47 more areas · 158 actions**

- Contacts **9**
- Data extension rows **9**
- Journey history **9**
- Event definitions **8**
- Ens callbacks **7**
- Events **6**
- File transfers **6**
- Queries **6**
- Campaigns **5**
- Categories **5**
- Domain verification **5**
- Ens subscriptions **5**
- Push locations **5**
- Attribute set definitions **4**
- Campaign assets **4**
- Definition templates **4**
- Imports **4**
- Journey activities **4**
- Simulations **4**
- Transactional journeys **4**
- Journey categories **3**
- Platform **3**
- Sales cloud events **3**
- System overview **3**
- Triggered sends **3**
- Abn tests **2**
- Attribute groups **2**
- Custom activities **2**
- Dashboard config **2**
- Goal statistics **2**
- Journey logs **2**
- Scripts **2**
- Trigger stats **2**
- Address **1**
- Attributes **1**
- Audit events **1**
- Automation folders **1**
- Contact schemas **1**
- Definition logs **1**
- Developer logs **1**
- Engine settings **1**
- FTP locations **1**
- Journey builder **1**
- Recommendation types **1**
- Recommendations **1**
- Security events **1**
- Wait statistics **1**

Top actions

## The Salesforce Marketing Cloud Engagement API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 50 of Salesforce Marketing Cloud Engagement's 50 action names are shared with at least one other connector, so an agent learns them once.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `salesforce_marketing_cloud.assets.list` List assets | List assets. | read | `content.file.list` 77 connectors |
| `salesforce_marketing_cloud.categories.list` List content folders | List content folders. | read | `content.folder.list` 62 connectors |
| `salesforce_marketing_cloud.transactional_email.definitions.list` List Email send definitions | List Email send definitions. | read | `comm.email_template.list` 40 connectors |
| `salesforce_marketing_cloud.transactional_email.send` Send transactional Email | Send transactional Email. | write | `comm.email.send` 32 connectors |
| `salesforce_marketing_cloud.transactional_sms.send` Send transactional SMS | Send transactional SMS. | write | `comm.sms.send` 26 connectors |
| `salesforce_marketing_cloud.assets.get` Get asset | Get asset. | read | `content.file.get` 74 connectors |
| `salesforce_marketing_cloud.automations.list` List automations | List automations. | read | `automation.workflow.list` 51 connectors |
| `salesforce_marketing_cloud.platform.token_context.get` Get token context | Get token context. | read | `identity.current_user.get` 307 connectors |
| `salesforce_marketing_cloud.campaigns.list` List campaigns | List campaigns. | read | `comm.campaign.list` 41 connectors |
| `salesforce_marketing_cloud.categories.create` Create content folder | Create content folder. | write | `content.folder.create` 62 connectors |
| `salesforce_marketing_cloud.campaigns.create` Create campaign | Create campaign. | write | `comm.campaign.create` 38 connectors |
| `salesforce_marketing_cloud.assets.delete` Delete asset | Delete asset. | destructive | `content.file.delete` 68 connectors |

Try it

## Prompts to paste into Claude.

Each one names the Salesforce Marketing Cloud Engagement actions it will call, so you know what it reads and what it changes before you send it.

1. Read read
   Which Salesforce Marketing Cloud Engagement files changed this week, and who changed them?
   calls `salesforce_marketing_cloud.assets.list`
2. Write write
   Send transactional Email in Salesforce Marketing Cloud Engagement. Show me exactly what you will send before you save it.
   calls `salesforce_marketing_cloud.transactional_email.send`

Governance for Salesforce Marketing Cloud Engagement

## Destructive actions wait for a yes.

38 Salesforce Marketing Cloud Engagement actions are destructive. The first 10:

- Delete asset `salesforce_marketing_cloud.assets.delete`
- Delete Email send definition `salesforce_marketing_cloud.transactional_email.definitions.delete`
- Delete campaign `salesforce_marketing_cloud.campaigns.delete`
- Delete content folder `salesforce_marketing_cloud.categories.delete`
- Run automation once `salesforce_marketing_cloud.automations.run_once`
- Delete automation `salesforce_marketing_cloud.automations.delete`
- Delete ENS callback `salesforce_marketing_cloud.ens_callbacks.delete`
- Delete journey `salesforce_marketing_cloud.journeys.delete`
- Remove contacts from journey `salesforce_marketing_cloud.journeys.contact_exit`
- Trigger automations `salesforce_marketing_cloud.automations.trigger`

A destructive action runs only with `confirm: true`. Under the `human` policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

do salesforce_marketing_cloud.assets.delete confirm_policy: **human**

Delete asset?

**intent:** the user asked me to delete asset

run suspended · waiting for a named person · key _salesforce-marketing-cloud-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "salesforce-marketing-cloud-agent",
  allowed_actions: ["salesforce_marketing_cloud.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "salesforce_marketing_cloud.assets.delete", approver: "lead@example.com" },
    { match: "salesforce_marketing_cloud.transactional_email.definitions.delete", approver: "lead@example.com" },
    { match: "salesforce_marketing_cloud.campaigns.delete", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to Salesforce Marketing Cloud Engagement only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What Salesforce Marketing Cloud Engagement costs on actionlake.

Every Salesforce Marketing Cloud Engagement action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call Salesforce Marketing Cloud Engagement refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

- 1 upstream call per action all 271 Salesforce Marketing Cloud Engagement actions
- 271 actions page each page of a long list is one call
- 108 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every Salesforce Marketing Cloud Engagement action.

271 actions by area: the id your agent calls, what it does, and its effect.

**Journeys 37**

- `salesforce_marketing_cloud.journeys.audit` Get journey audit log read
- `salesforce_marketing_cloud.journeys.audit_by_key` Get journey audit log by key read
- `salesforce_marketing_cloud.journeys.audit_search` Search journey audit logs read
- `salesforce_marketing_cloud.journeys.campaign.update` Associate journey with campaign write
- `salesforce_marketing_cloud.journeys.contact_exit` Remove contacts from journey destructive
- `salesforce_marketing_cloud.journeys.contact_exit_status` Get contact exit status read
- `salesforce_marketing_cloud.journeys.contact_membership` List journeys a contact is in read
- `salesforce_marketing_cloud.journeys.create` Create journey write
- `salesforce_marketing_cloud.journeys.delete` Delete journey destructive
- `salesforce_marketing_cloud.journeys.delete_by_key` Delete journey by key destructive
- `salesforce_marketing_cloud.journeys.get` Get journey read
- `salesforce_marketing_cloud.journeys.get_by_key` Get journey by key read
- `salesforce_marketing_cloud.journeys.list` List journeys read
- `salesforce_marketing_cloud.journeys.pause` Pause journey write
- `salesforce_marketing_cloud.journeys.pause_by_key` Pause journey by key write
- `salesforce_marketing_cloud.journeys.priority.update` Set journey priorities write
- `salesforce_marketing_cloud.journeys.publish` Publish journey write
- `salesforce_marketing_cloud.journeys.publish_by_key` Publish journey by key write
- `salesforce_marketing_cloud.journeys.publish_status` Get journey publish status read
- `salesforce_marketing_cloud.journeys.resume` Resume journey write
- `salesforce_marketing_cloud.journeys.resume_by_key` Resume journey by key write
- `salesforce_marketing_cloud.journeys.status` Get journey run status read
- `salesforce_marketing_cloud.journeys.status_by_key` Get journey run status by key read
- `salesforce_marketing_cloud.journeys.stop` Stop journey destructive
- `salesforce_marketing_cloud.journeys.stop_async` Stop journey asynchronously destructive
- `salesforce_marketing_cloud.journeys.stop_async_by_key` Stop journey asynchronously by key destructive
- `salesforce_marketing_cloud.journeys.stop_by_key` Stop journey by key destructive
- `salesforce_marketing_cloud.journeys.summary` Get journey summary read
- `salesforce_marketing_cloud.journeys.update` Update journey version write
- `salesforce_marketing_cloud.journeys.update_by_id` Update journey by ID write
- `salesforce_marketing_cloud.journeys.update_by_key` Update journey by key write
- `salesforce_marketing_cloud.journeys.validate` Validate journey write
- `salesforce_marketing_cloud.journeys.validate_by_key` Validate journey by key write
- `salesforce_marketing_cloud.journeys.validate_status` Get journey validation status read
- `salesforce_marketing_cloud.journeys.version_contacts` List journey version contacts by type read
- `salesforce_marketing_cloud.journeys.version_contacts_by_status` List journey version contacts by type and status read
- `salesforce_marketing_cloud.journeys.version_counts` Get journey version contact counts read

**Automations 12**

- `salesforce_marketing_cloud.automations.create` Create automation write
- `salesforce_marketing_cloud.automations.delete` Delete automation destructive
- `salesforce_marketing_cloud.automations.file_trigger.update` Activate or deactivate file drop trigger write
- `salesforce_marketing_cloud.automations.file_trigger.update_by_key` Activate or deactivate file drop trigger by key write
- `salesforce_marketing_cloud.automations.get` Get automation read
- `salesforce_marketing_cloud.automations.list` List automations read
- `salesforce_marketing_cloud.automations.run_once` Run automation once destructive
- `salesforce_marketing_cloud.automations.run_once_by_key` Run automation once by key destructive
- `salesforce_marketing_cloud.automations.trigger` Trigger automations destructive
- `salesforce_marketing_cloud.automations.trigger.update` Activate or deactivate automation trigger write
- `salesforce_marketing_cloud.automations.trigger_status` Get automation trigger status read
- `salesforce_marketing_cloud.automations.update` Update automation write

**Data events 12**

- `salesforce_marketing_cloud.data_events.async.increment_column_by_id` Increment data extension column by data extension ID (asynchronous) write
- `salesforce_marketing_cloud.data_events.async.increment_column_by_key` Increment data extension column by data extension key (asynchronous) write
- `salesforce_marketing_cloud.data_events.async.upsert_row_by_id` Upsert one data extension row by data extension ID (asynchronous) write
- `salesforce_marketing_cloud.data_events.async.upsert_row_by_key` Upsert one data extension row by data extension key (asynchronous) write
- `salesforce_marketing_cloud.data_events.async.upsert_rowset_by_id` Upsert data extension rows by data extension ID (asynchronous) write
- `salesforce_marketing_cloud.data_events.async.upsert_rowset_by_key` Upsert data extension rows by data extension key (asynchronous) write
- `salesforce_marketing_cloud.data_events.sync.increment_column_by_id` Increment data extension column by data extension ID write
- `salesforce_marketing_cloud.data_events.sync.increment_column_by_key` Increment data extension column by data extension key write
- `salesforce_marketing_cloud.data_events.sync.upsert_row_by_id` Upsert one data extension row by data extension ID write
- `salesforce_marketing_cloud.data_events.sync.upsert_row_by_key` Upsert one data extension row by data extension key write
- `salesforce_marketing_cloud.data_events.sync.upsert_rowset_by_id` Upsert data extension rows by data extension ID write
- `salesforce_marketing_cloud.data_events.sync.upsert_rowset_by_key` Upsert data extension rows by data extension key write

**SMS 11**

- `salesforce_marketing_cloud.sms.contact_deliveries` Get SMS send status read
- `salesforce_marketing_cloud.sms.contact_history` Get SMS history for a number read
- `salesforce_marketing_cloud.sms.keywords.create` Create SMS keyword write
- `salesforce_marketing_cloud.sms.keywords.delete` Delete SMS keyword destructive
- `salesforce_marketing_cloud.sms.keywords.delete_by_code` Delete SMS keyword by code destructive
- `salesforce_marketing_cloud.sms.list_deliveries` Get SMS list send status read
- `salesforce_marketing_cloud.sms.optin_messages.create` Create SMS opt-in message write
- `salesforce_marketing_cloud.sms.queue_mo` Queue mobile-originated message write
- `salesforce_marketing_cloud.sms.send_to_contacts` Send SMS to numbers write
- `salesforce_marketing_cloud.sms.send_to_list` Send SMS to list write
- `salesforce_marketing_cloud.sms.subscriptions.status` Get SMS subscription status read

**Transactional email 11**

- `salesforce_marketing_cloud.transactional_email.definitions.create` Create Email send definition write
- `salesforce_marketing_cloud.transactional_email.definitions.delete` Delete Email send definition destructive
- `salesforce_marketing_cloud.transactional_email.definitions.get` Get Email send definition read
- `salesforce_marketing_cloud.transactional_email.definitions.list` List Email send definitions read
- `salesforce_marketing_cloud.transactional_email.definitions.update` Update Email send definition write
- `salesforce_marketing_cloud.transactional_email.messages.get` Get transactional Email status read
- `salesforce_marketing_cloud.transactional_email.messages.not_sent` List unsent transactional Email read
- `salesforce_marketing_cloud.transactional_email.queue.delete` Delete queued Email messages destructive
- `salesforce_marketing_cloud.transactional_email.queue.get` Get Email definition queue metrics read
- `salesforce_marketing_cloud.transactional_email.send` Send transactional Email write
- `salesforce_marketing_cloud.transactional_email.send_batch` Send transactional Email to many write

**Transactional SMS 11**

- `salesforce_marketing_cloud.transactional_sms.definitions.create` Create SMS send definition write
- `salesforce_marketing_cloud.transactional_sms.definitions.delete` Delete SMS send definition destructive
- `salesforce_marketing_cloud.transactional_sms.definitions.get` Get SMS send definition read
- `salesforce_marketing_cloud.transactional_sms.definitions.list` List SMS send definitions read
- `salesforce_marketing_cloud.transactional_sms.definitions.update` Update SMS send definition write
- `salesforce_marketing_cloud.transactional_sms.messages.get` Get transactional SMS status read
- `salesforce_marketing_cloud.transactional_sms.messages.not_sent` List unsent transactional SMS read
- `salesforce_marketing_cloud.transactional_sms.queue.delete` Delete queued SMS messages destructive
- `salesforce_marketing_cloud.transactional_sms.queue.get` Get SMS definition queue metrics read
- `salesforce_marketing_cloud.transactional_sms.send` Send transactional SMS write
- `salesforce_marketing_cloud.transactional_sms.send_batch` Send transactional SMS to many write

**Push messages 10**

- `salesforce_marketing_cloud.push_messages.contact_deliveries` Get push send status (contacts) read
- `salesforce_marketing_cloud.push_messages.create` Create push message write
- `salesforce_marketing_cloud.push_messages.delete` Delete push message destructive
- `salesforce_marketing_cloud.push_messages.get` Get push message read
- `salesforce_marketing_cloud.push_messages.list_deliveries` Get push send status (list) read
- `salesforce_marketing_cloud.push_messages.send_to_app` Broadcast push message write
- `salesforce_marketing_cloud.push_messages.send_to_contacts` Send push message to contacts write
- `salesforce_marketing_cloud.push_messages.send_to_list` Send push message to list write
- `salesforce_marketing_cloud.push_messages.send_to_tags` Send push message to tags write
- `salesforce_marketing_cloud.push_messages.update` Update push message write

**Assets 9**

- `salesforce_marketing_cloud.assets.create` Create asset write
- `salesforce_marketing_cloud.assets.delete` Delete asset destructive
- `salesforce_marketing_cloud.assets.get` Get asset read
- `salesforce_marketing_cloud.assets.list` List assets read
- `salesforce_marketing_cloud.assets.patch` Update asset fields write
- `salesforce_marketing_cloud.assets.query` Query assets (advanced) read
- `salesforce_marketing_cloud.assets.salutations.get` Get email header and footer read
- `salesforce_marketing_cloud.assets.salutations.list` Get default header and footer read
- `salesforce_marketing_cloud.assets.update` Replace asset write

**Contacts 9**

- `salesforce_marketing_cloud.contacts.create` Create contact write
- `salesforce_marketing_cloud.contacts.delete_by_ids` Delete contacts by ID destructive
- `salesforce_marketing_cloud.contacts.delete_by_keys` Delete contacts by key destructive
- `salesforce_marketing_cloud.contacts.delete_by_list` Delete contacts in a list or data extension destructive
- `salesforce_marketing_cloud.contacts.delete_requests.list` List contact delete requests read
- `salesforce_marketing_cloud.contacts.delete_requests.summary` Summarise contact delete requests read
- `salesforce_marketing_cloud.contacts.delete_status.get` Get contact delete status read
- `salesforce_marketing_cloud.contacts.search_by_email` Find contact keys by email address read
- `salesforce_marketing_cloud.contacts.update` Update contact write

**Data extension rows 9**

- `salesforce_marketing_cloud.data_extension_rows.async_insert_by_id` Insert data extension rows asynchronously by data extension ID write
- `salesforce_marketing_cloud.data_extension_rows.async_insert_by_key` Insert data extension rows asynchronously by data extension key write
- `salesforce_marketing_cloud.data_extension_rows.async_results` Get asynchronous row request results read
- `salesforce_marketing_cloud.data_extension_rows.async_status` Get asynchronous row request status read
- `salesforce_marketing_cloud.data_extension_rows.async_upsert_by_id` Upsert data extension rows asynchronously by data extension ID write
- `salesforce_marketing_cloud.data_extension_rows.async_upsert_by_key` Upsert data extension rows asynchronously by data extension key write
- `salesforce_marketing_cloud.data_extension_rows.list_by_id` List data extension rows by ID read
- `salesforce_marketing_cloud.data_extension_rows.list_by_key` List data extension rows by key read
- `salesforce_marketing_cloud.data_extension_rows.list_by_token` List data extension rows by request token read

**Journey history 9**

- `salesforce_marketing_cloud.journey_history.by_contact_key` Get journey history for contacts read
- `salesforce_marketing_cloud.journey_history.download` Download journey history read
- `salesforce_marketing_cloud.journey_history.estimate` Estimate journey history export read
- `salesforce_marketing_cloud.journey_history.filter` Filter journey history read
- `salesforce_marketing_cloud.journey_history.freshness` Get journey history freshness read
- `salesforce_marketing_cloud.journey_history.list` List journey history entries read
- `salesforce_marketing_cloud.journey_history.search` Search journey history read
- `salesforce_marketing_cloud.journey_history.summary` Summarise journey history read
- `salesforce_marketing_cloud.journey_history.time_series` Get journey history time series read

**Event definitions 8**

- `salesforce_marketing_cloud.event_definitions.create` Create event definition write
- `salesforce_marketing_cloud.event_definitions.delete` Delete event definition destructive
- `salesforce_marketing_cloud.event_definitions.delete_by_key` Delete event definition by key destructive
- `salesforce_marketing_cloud.event_definitions.get` Get event definition read
- `salesforce_marketing_cloud.event_definitions.get_by_key` Get event definition by key read
- `salesforce_marketing_cloud.event_definitions.list` List event definitions read
- `salesforce_marketing_cloud.event_definitions.update` Update event definition write
- `salesforce_marketing_cloud.event_definitions.update_by_key` Update event definition by key write

**Ens callbacks 7**

- `salesforce_marketing_cloud.ens_callbacks.create` Create ENS callback write
- `salesforce_marketing_cloud.ens_callbacks.delete` Delete ENS callback destructive
- `salesforce_marketing_cloud.ens_callbacks.get` Get ENS callback read
- `salesforce_marketing_cloud.ens_callbacks.list` List ENS callbacks read
- `salesforce_marketing_cloud.ens_callbacks.regenerate_secret` Regenerate ENS signature key write
- `salesforce_marketing_cloud.ens_callbacks.update` Update ENS callbacks write
- `salesforce_marketing_cloud.ens_callbacks.verify` Verify ENS callback write

**Events 6**

- `salesforce_marketing_cloud.events.async_status` Get bulk entry event status read
- `salesforce_marketing_cloud.events.fire` Fire journey entry event write
- `salesforce_marketing_cloud.events.fire_async` Fire journey entry events in bulk write
- `salesforce_marketing_cloud.events.trigger_test.create` Create test entry event write
- `salesforce_marketing_cloud.events.trigger_test.delete` Delete test entry event destructive
- `salesforce_marketing_cloud.events.trigger_test.update` Update test entry event write

**File transfers 6**

- `salesforce_marketing_cloud.file_transfers.create` Create file transfer activity write
- `salesforce_marketing_cloud.file_transfers.delete` Delete file transfer activity destructive
- `salesforce_marketing_cloud.file_transfers.get` Get file transfer activity read
- `salesforce_marketing_cloud.file_transfers.list` List file transfer activities read
- `salesforce_marketing_cloud.file_transfers.start` Start file transfer activity write
- `salesforce_marketing_cloud.file_transfers.update` Update file transfer activity write

**Queries 6**

- `salesforce_marketing_cloud.queries.create` Create SQL query activity write
- `salesforce_marketing_cloud.queries.delete` Delete SQL query activity destructive
- `salesforce_marketing_cloud.queries.get` Get SQL query activity read
- `salesforce_marketing_cloud.queries.list` List SQL query activities read
- `salesforce_marketing_cloud.queries.start` Run SQL query activity write
- `salesforce_marketing_cloud.queries.update` Update SQL query activity write

**Campaigns 5**

- `salesforce_marketing_cloud.campaigns.create` Create campaign write
- `salesforce_marketing_cloud.campaigns.delete` Delete campaign destructive
- `salesforce_marketing_cloud.campaigns.get` Get campaign read
- `salesforce_marketing_cloud.campaigns.list` List campaigns read
- `salesforce_marketing_cloud.campaigns.update` Update campaign write

**Categories 5**

- `salesforce_marketing_cloud.categories.create` Create content folder write
- `salesforce_marketing_cloud.categories.delete` Delete content folder destructive
- `salesforce_marketing_cloud.categories.get` Get content folder read
- `salesforce_marketing_cloud.categories.list` List content folders read
- `salesforce_marketing_cloud.categories.update` Update content folder write

**Domain verification 5**

- `salesforce_marketing_cloud.domain_verification.bulk_insert` Add from-addresses in bulk write
- `salesforce_marketing_cloud.domain_verification.create` Add from-address for verification write
- `salesforce_marketing_cloud.domain_verification.delete` Delete from-addresses destructive
- `salesforce_marketing_cloud.domain_verification.list` List verified from-addresses read
- `salesforce_marketing_cloud.domain_verification.update` Update from-addresses write

**Ens subscriptions 5**

- `salesforce_marketing_cloud.ens_subscriptions.create` Create ENS subscription write
- `salesforce_marketing_cloud.ens_subscriptions.delete` Delete ENS subscription destructive
- `salesforce_marketing_cloud.ens_subscriptions.get` Get ENS subscription read
- `salesforce_marketing_cloud.ens_subscriptions.list_by_callback` List ENS subscriptions of a callback read
- `salesforce_marketing_cloud.ens_subscriptions.update` Update ENS subscriptions write

**Push locations 5**

- `salesforce_marketing_cloud.push_locations.create` Create MobilePush location write
- `salesforce_marketing_cloud.push_locations.delete` Delete MobilePush location destructive
- `salesforce_marketing_cloud.push_locations.get` Get MobilePush location read
- `salesforce_marketing_cloud.push_locations.list` List MobilePush locations read
- `salesforce_marketing_cloud.push_locations.update` Update MobilePush location write

**Attribute set definitions 4**

- `salesforce_marketing_cloud.attribute_set_definitions.get` Get attribute set definition read
- `salesforce_marketing_cloud.attribute_set_definitions.get_by_key` Get attribute set definition by key read
- `salesforce_marketing_cloud.attribute_set_definitions.get_by_name` Get attribute set definition by name read
- `salesforce_marketing_cloud.attribute_set_definitions.list` List attribute set definitions read

**Campaign assets 4**

- `salesforce_marketing_cloud.campaign_assets.create` Associate assets with campaign write
- `salesforce_marketing_cloud.campaign_assets.delete` Remove campaign asset destructive
- `salesforce_marketing_cloud.campaign_assets.get` Get campaign asset read
- `salesforce_marketing_cloud.campaign_assets.list` List campaign assets read

**Definition templates 4**

- `salesforce_marketing_cloud.definition_templates.create` Create journey template write
- `salesforce_marketing_cloud.definition_templates.get` Get journey template read
- `salesforce_marketing_cloud.definition_templates.list` List journey templates read
- `salesforce_marketing_cloud.definition_templates.update` Update journey template write

**Imports 4**

- `salesforce_marketing_cloud.imports.create` Queue data extension file import write
- `salesforce_marketing_cloud.imports.summary` Get import status read
- `salesforce_marketing_cloud.imports.validation_results` Get import validation results read
- `salesforce_marketing_cloud.imports.validation_summary` Get import validation summary read

**Journey activities 4**

- `salesforce_marketing_cloud.journey_activities.summary` Get journey activity summary read
- `salesforce_marketing_cloud.journey_activities.time_series` Get journey activity time series read
- `salesforce_marketing_cloud.journey_activities.wait_expire_summary` Get wait activity expiry summary read
- `salesforce_marketing_cloud.journey_activities.wait_expire_time_series` Get wait activity expiry time series read

**Simulations 4**

- `salesforce_marketing_cloud.simulations.contacts` List simulation contacts read
- `salesforce_marketing_cloud.simulations.create` Create journey simulation write
- `salesforce_marketing_cloud.simulations.delete` Delete journey simulation destructive
- `salesforce_marketing_cloud.simulations.get` Get journey simulation read

**Transactional journeys 4**

- `salesforce_marketing_cloud.transactional_journeys.clear_queue` Clear transactional journey queue destructive
- `salesforce_marketing_cloud.transactional_journeys.create` Create transactional journey write
- `salesforce_marketing_cloud.transactional_journeys.pause` Pause transactional journey write
- `salesforce_marketing_cloud.transactional_journeys.resume` Resume transactional journey write

**Journey categories 3**

- `salesforce_marketing_cloud.journey_categories.counts` Get journey folder counts read
- `salesforce_marketing_cloud.journey_categories.delete` Delete journey folder destructive
- `salesforce_marketing_cloud.journey_categories.update` Update journey folder write

**Platform 3**

- `salesforce_marketing_cloud.platform.endpoints.get` Get API endpoint read
- `salesforce_marketing_cloud.platform.endpoints.list` List API endpoints read
- `salesforce_marketing_cloud.platform.token_context.get` Get token context read

**Sales cloud events 3**

- `salesforce_marketing_cloud.sales_cloud_events.cdc` List Sales Cloud CDC events read
- `salesforce_marketing_cloud.sales_cloud_events.list` List Sales Cloud entry events read
- `salesforce_marketing_cloud.sales_cloud_events.usage` Get Sales Cloud event usage read

**System overview 3**

- `salesforce_marketing_cloud.system_overview.activities` Get system overview activities read
- `salesforce_marketing_cloud.system_overview.get` Get Journey Builder system overview read
- `salesforce_marketing_cloud.system_overview.time_series` Get system overview time series read

**Triggered sends 3**

- `salesforce_marketing_cloud.triggered_sends.delivery_record` Get triggered send status read
- `salesforce_marketing_cloud.triggered_sends.send` Send triggered email write
- `salesforce_marketing_cloud.triggered_sends.tracking_subscription_type` Set triggered send tracking subscription type write

**Abn tests 2**

- `salesforce_marketing_cloud.abn_tests.get` Get path optimizer test read
- `salesforce_marketing_cloud.abn_tests.update` Update path optimizer test write

**Attribute groups 2**

- `salesforce_marketing_cloud.attribute_groups.get` Get attribute group read
- `salesforce_marketing_cloud.attribute_groups.list` List attribute groups read

**Custom activities 2**

- `salesforce_marketing_cloud.custom_activities.execute` Execute custom activity write
- `salesforce_marketing_cloud.custom_activities.test_setup` Test custom activity setup write

**Dashboard config 2**

- `salesforce_marketing_cloud.dashboard_config.get` Get Journey Builder dashboard settings read
- `salesforce_marketing_cloud.dashboard_config.update` Update Journey Builder dashboard settings write

**Goal statistics 2**

- `salesforce_marketing_cloud.goal_statistics.clear` Clear journey goal statistics destructive
- `salesforce_marketing_cloud.goal_statistics.get` Get journey goal statistics read

**Journey logs 2**

- `salesforce_marketing_cloud.journey_logs.activity_via_kafka` Check activity log source read
- `salesforce_marketing_cloud.journey_logs.definition_via_kafka` Check definition log source read

**Scripts 2**

- `salesforce_marketing_cloud.scripts.list` List script activities read
- `salesforce_marketing_cloud.scripts.start` Start script activity write

**Trigger stats 2**

- `salesforce_marketing_cloud.trigger_stats.get` Get entry event statistics read
- `salesforce_marketing_cloud.trigger_stats.get_for_journey` Get entry event statistics for a journey read

**Address 1**

- `salesforce_marketing_cloud.address.validate_email` Validate email address read

**Attributes 1**

- `salesforce_marketing_cloud.attributes.search` Search contact attributes read

**Audit events 1**

- `salesforce_marketing_cloud.audit_events.list` List audit events read

**Automation folders 1**

- `salesforce_marketing_cloud.automation_folders.list` List Automation Studio folders read

**Contact schemas 1**

- `salesforce_marketing_cloud.contact_schemas.list` List contact schemas read

**Definition logs 1**

- `salesforce_marketing_cloud.definition_logs.search` Search journey definition logs read

**Developer logs 1**

- `salesforce_marketing_cloud.developer_logs.list` List Journey Builder developer logs read

**Engine settings 1**

- `salesforce_marketing_cloud.engine_settings.get` Get Journey Builder engine settings read

**FTP locations 1**

- `salesforce_marketing_cloud.ftp_locations.list` List FTP locations read

**Journey builder 1**

- `salesforce_marketing_cloud.journey_builder.discovery` Get Journey Builder discovery document read

**Recommendation types 1**

- `salesforce_marketing_cloud.recommendation_types.list` List recommendation types read

**Recommendations 1**

- `salesforce_marketing_cloud.recommendations.get` Get journey recommendation read

**Security events 1**

- `salesforce_marketing_cloud.security_events.list` List security events read

**Wait statistics 1**

- `salesforce_marketing_cloud.wait_statistics.get` Get journey wait statistics read

Questions

## The Salesforce Marketing Cloud Engagement MCP server, answered.

**Is there a Salesforce Marketing Cloud Engagement MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 271 Salesforce Marketing Cloud Engagement actions across journeys, automations, data events and SMS, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Salesforce Marketing Cloud Engagement.

**What do I need to connect Salesforce Marketing Cloud Engagement?**

Client ID of a Marketing Cloud installed package's API Integration component (Setup > Apps > Installed Packages >…, Client secret of the same API Integration component and MID of the business unit to act in (shown under the account name, top right of Marketing Cloud). Plus your tenant host. The free call account { op: "connections.requirements", service: "salesforce_marketing_cloud" } lists exactly what to paste.

**Can an AI agent delete or change things in Salesforce Marketing Cloud Engagement?**

Only if its key allows it, and only with an explicit confirmation. 38 Salesforce Marketing Cloud Engagement actions are destructive, including delete asset, delete Email send definition and delete campaign. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

**Will an AI agent use up my Salesforce Marketing Cloud Engagement API limit?**

actionlake paces every call to the limits in the Salesforce Marketing Cloud Engagement service file: 2,500 calls a minute per connection. Repeated reads are answered from cache (108 Salesforce Marketing Cloud Engagement actions can be), which never reaches Salesforce Marketing Cloud Engagement.

**What does a Salesforce Marketing Cloud Engagement action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (271 Salesforce Marketing Cloud Engagement actions page). Cache hits, searches, dry runs and calls Salesforce Marketing Cloud Engagement refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

**Which Salesforce Marketing Cloud Engagement API does it cover?**

The Marketing Cloud Engagement REST API (tenant-specific endpoints, OAuth 2.0 installed packages) at your Salesforce Marketing Cloud Engagement instance's API base URL, which you enter when connecting. It is built from Salesforce Marketing Cloud Engagement's documentation as read on 23 October 2026. 271 actions in 55 areas, each one in the signed service file (version 1.0.0).

**Does actionlake keep my Salesforce Marketing Cloud Engagement data, and where?**

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Salesforce Marketing Cloud Engagement credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

**Which AI clients can use it?**

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

## More connectors like Salesforce Marketing Cloud Engagement

Shares the most action names with

- [Customer.io 32](https://actionlake.com/connectors/customer-io)
- [Bird 25](https://actionlake.com/connectors/bird)
- [Elastic Email 22](https://actionlake.com/connectors/elastic-email)
- [Mailtrap 18](https://actionlake.com/connectors/mailtrap)
- [Loops 15](https://actionlake.com/connectors/loops)
- [Postmark 14](https://actionlake.com/connectors/postmark)

Joins with, on shared entities

- [Canvas LMS 2](https://actionlake.com/connectors/canvas-lms)
- [Box 2](https://actionlake.com/connectors/box)
- [Bynder 2](https://actionlake.com/connectors/bynder)
- [Dropbox 2](https://actionlake.com/connectors/dropbox)
- [Zoho WorkDrive 2](https://actionlake.com/connectors/zoho-workdrive)
- [LlamaCloud 2](https://actionlake.com/connectors/llamacloud)

Browse

- [All Email & messaging connectors](https://actionlake.com/connectors/category/email-and-messaging)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by Salesforce Marketing Cloud Engagement; the name is the vendor's own. Counts are from the Salesforce Marketing Cloud Engagement service file, version 1.0.0.

## Give your agent Salesforce Marketing Cloud Engagement today.

[Connect Salesforce Marketing Cloud Engagement free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/salesforce-marketing-cloud-engagement
More: https://actionlake.com/llms.txt
